This commit was manufactured by cvs2svn to create tag
'rel19_lastmerge'.

llvm-svn: 32570
diff --git a/java/Makefile b/java/Makefile
deleted file mode 100755
index ca59bb0..0000000
--- a/java/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- ./Makefile ------------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := .
-
-DIRS := lib tools runtime
-EXTRA_DIST := Makefile.test
-
-include $(LEVEL)/Makefile.common
diff --git a/java/Makefile.common.in b/java/Makefile.common.in
deleted file mode 100644
index 041bf54..0000000
--- a/java/Makefile.common.in
+++ /dev/null
@@ -1,43 +0,0 @@
-#===-- Makefile.common - Common make rules for LLVM -------*- makefile -*---====
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-#===-------------------------------------------------------------------------===
-
-PROJECT_NAME = @PACKAGE_NAME@
-PROJ_VERSION = @PACKAGE_VERSION@
-
-# Set this variable to the top of the LLVM source tree.
-LLVM_SRC_ROOT = @LLVM_SRC@
-
-# Set this variable to the top level directory where LLVM was built
-# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
-LLVM_OBJ_ROOT = @LLVM_OBJ@
-
-# Set the directory root of this project's source files
-PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
-
-# Set the root directory of this project's object files
-PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
-
-# Set the root directory of this project's install prefix
-PROJ_INSTALL_ROOT := @prefix@
-
-# Include LLVM's Master Makefile.
-include $(LLVM_OBJ_ROOT)/Makefile.common
-
-# GNU classpath variables
-CLASSPATH_JAVA_LIBRARY_PATH=@CLASSPATH_JAVA_LIBRARY_PATH@
-CLASSPATH_NATIVE_LIBRARY_PATH=@CLASSPATH_NATIVE_LIBRARY_PATH@
-CLASSPATH_NATIVE_LIBS=@CLASSPATH_NATIVE_LIBS@
-
-# Additional utilities
-JAVA=@JAVA@
-JAVAC=@JAVAC@
-JAVAH=@JAVAH@
-
-# Include local build rules.
-include $(PROJ_SRC_ROOT)/Makefile.rules
diff --git a/java/Makefile.rules b/java/Makefile.rules
deleted file mode 100644
index 5eb82a2..0000000
--- a/java/Makefile.rules
+++ /dev/null
@@ -1,11 +0,0 @@
-##==-- Makefile.rules - Common make rules for Java -------*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-CLASS2LLVM := $(ToolDir)/class2llvm$(EXEEXT)
-CLASSDUMP  := $(ToolDir)/classdump$(EXEEXT)
diff --git a/java/TODO b/java/TODO
deleted file mode 100644
index 8e13c66..0000000
--- a/java/TODO
+++ /dev/null
@@ -1,16 +0,0 @@
-* Integrate GNU classpath to the build system:
-    This should involve unpacking it, and building the native parts
-    using llvm-gcc and the java sources using a java compiler.
-
-* Add exception support.
-
-* Implement the multinewarray opcode.
-
-* Build java/lang/String's out of the args passed to main and pass
-  them to the class's main function we are invoking.
-
-* Add garbage collection.
-
-* Implement monitorenter/monitorexit opcods.
-
-* Implement jsr/ret opcodes.
diff --git a/java/autoconf/AutoRegen.sh b/java/autoconf/AutoRegen.sh
deleted file mode 100755
index 0a5a0b2..0000000
--- a/java/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-test -d autoconf && test -f autoconf/configure.ac && cd autoconf
-test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.59"
-fi
-aclocal-1.9 --version | egrep '1\.9\.4' > /dev/null
-if test $? -ne 0 ; then
-  die "Your aclocal was not detected as being 1.9.4"
-fi
-autoheader --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoheader was not detected as being 2.59"
-fi
-libtool --version | grep '1.5.14' > /dev/null
-if test $? -ne 0 ; then
-  die "Your libtool was not detected as being 1.5.14"
-fi
-echo ""
-echo "### NOTE: ############################################################"
-echo "### If you get *any* warnings from autoconf below other than warnings"
-echo "### about 'AC_CONFIG_SUBDIRS: you should use literals', you MUST fix"
-echo "### the scripts in the m4 directory because there are future forward"
-echo "### compatibility or platform support issues at risk. Please do NOT"
-echo "### commit any configure.ac or configure script that was generated "
-echo "### with warnings present."
-echo "######################################################################"
-echo ""
-echo "Regenerating aclocal.m4 with aclocal"
-save=`pwd`
-cd ../../..
-m4dir=`pwd`/autoconf/m4
-cd $save
-aclocal --force -I $m4dir || die "aclocal failed"
-echo "Regenerating configure with autoconf 2.5x"
-autoconf --force --warnings=all -o ../configure configure.ac || die "autoconf failed"
diff --git a/java/autoconf/configure.ac b/java/autoconf/configure.ac
deleted file mode 100644
index 0ca829a..0000000
--- a/java/autoconf/configure.ac
+++ /dev/null
@@ -1,117 +0,0 @@
-dnl **************************************************************************
-dnl * Initialize
-dnl **************************************************************************
-AC_INIT([[Java]], [[0.0]], [llvmbugs@cs.uiuc.edu])
-
-dnl Tell autoconf that the auxilliary files are actually located in
-dnl the LLVM autoconf directory, not here.
-AC_CONFIG_AUX_DIR([../../autoconf])
-
-dnl Tell autoconf that this is an LLVM project being configured
-dnl This provides the --with-llvmsrc and --with-llvmobj options
-LLVM_CONFIG_PROJECT
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR([Makefile.common.in])
-
-dnl Configure a common Makefile
-AC_CONFIG_FILES(Makefile.common)
-
-dnl Configure project makefiles
-dnl List every Makefile that exists within your source tree
-AC_CONFIG_MAKEFILE([Makefile])
-AC_CONFIG_MAKEFILE([lib/Makefile])
-AC_CONFIG_MAKEFILE([lib/ClassFile/Makefile])
-AC_CONFIG_MAKEFILE([test/Makefile])
-AC_CONFIG_MAKEFILE([test/Makefile.test])
-AC_CONFIG_MAKEFILE([test/Programs/SingleSource/UnitTests/Makefile])
-AC_CONFIG_MAKEFILE([test/Programs/SingleSource/Makefile])
-AC_CONFIG_MAKEFILE([test/Programs/SingleSource/Makefile.singlesrc])
-AC_CONFIG_MAKEFILE([test/Programs/Makefile])
-AC_CONFIG_MAKEFILE([test/Regression/ClassFile/Makefile])
-AC_CONFIG_MAKEFILE([test/Regression/Makefile])
-AC_CONFIG_MAKEFILE([tools/Makefile])
-AC_CONFIG_MAKEFILE([tools/classdump/Makefile])
-
-dnl **************************************************************************
-dnl * Determine which system we are building on
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Check for programs.
-dnl **************************************************************************
-AC_ARG_VAR(JAVA, [The Java Virtual Machine (used for testing)])
-AC_CHECK_PROG(JAVA, java, java)
-AC_ARG_VAR(JAVAC, [The java compiler (used for testing)])
-AC_CHECK_PROG(JAVAC, javac, javac)
-AC_ARG_VAR(JAVAH, [The java JNI header generator (used for testing)])
-AC_CHECK_PROG(JAVAH, javah, javah)
-
-if test -z "$JAVA"
-then
-  AC_MSG_WARN([A Java Virtual Machine is required for the test suite, but it was not found])
-fi
-
-if test -z "$JAVAC"
-then
-  AC_MSG_WARN([A Java compiler is required for the test suite, but it was not found])
-fi
-
-if test -z "$JAVAC"
-then
-  AC_MSG_WARN([A Java JNI header generator is required for the test suite, but it was not found])
-fi
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(Makefile.common.in)
-
-dnl **************************************************************************
-dnl * Set the location of various third-party software packages
-dnl **************************************************************************
-AC_ARG_WITH([classpathdir],
-  AS_HELP_STRING([--with-classpathdir],
-                 [location of GNU classpath install dir (default /usr/local)]),
-                 [ac_cv_classpathdir=$withval],
-                 [ac_cv_classpathdir=/usr/local])
-
-CLASSPATH_JAVA_LIBRARY_PATH=$ac_cv_classpathdir/share/classpath
-AC_SUBST(CLASSPATH_JAVA_LIBRARY_PATH)
-
-CLASSPATH_NATIVE_LIBRARY_PATH=$ac_cv_classpathdir/lib/classpath
-AC_SUBST(CLASSPATH_NATIVE_LIBRARY_PATH)
-
-CLASSPATH_NATIVE_LIBS="gtkpeer javaawt javaio javalang javalangreflect javanet javanio javautil"
-AC_SUBST(CLASSPATH_NATIVE_LIBS)
-
-dnl **************************************************************************
-dnl * Check for libraries.
-dnl **************************************************************************
-AC_MSG_CHECKING([for GNU classpath libraries])
-if test ! -f "$CLASSPATH_JAVA_LIBRARY_PATH/java/lang/Object.class"
-then
-  AC_MSG_RESULT([no])
-  AC_MSG_ERROR([A flat installation of GNU classpath is required])
-else
-  AC_MSG_RESULT([$CLASSPATH_JAVA_LIBRARY_PATH])
-fi
-
-dnl **************************************************************************
-dnl * Checks for header files.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for typedefs, structures, and compiler characteristics.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Checks for library functions.
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Enable various compile-time options
-dnl **************************************************************************
-
-dnl **************************************************************************
-dnl * Create the output files
-dnl **************************************************************************
-AC_OUTPUT
diff --git a/java/class b/java/class
deleted file mode 100644
index 9f0bf9f..0000000
--- a/java/class
+++ /dev/null
@@ -1,65 +0,0 @@
-# Java Configuration File For llvmc
-
-##########################################################
-# Language definitions
-##########################################################
-  lang.name=Java
-  lang.opt1=-simplifycfg -mem2reg -instcombine
-  lang.opt2=
-  lang.opt3=
-  lang.opt4=
-  lang.opt5=
-#  lang.libs=@LLVM_OBJ_ROOT@/projects/Java/Debug/lib
-
-##########################################################
-# Pre-processor definitions
-##########################################################
-
-  # Java doesn't have a preprocessor but the following
-  # allows the -E option to be supported
-  preprocessor.command=cp %in% %out%
-  preprocessor.required=false
-
-##########################################################
-# Translator definitions
-##########################################################
-
-  # To compile java class files, we just run the
-  # class2llvm compiler with the correct classpath.
-  translator.command=class2llvm \
-      %in% %force% -o %out% %time% %stats% %args%
-
-  # class2llvm doesn't preprocess but we set this to true
-  # so that we don't run the cp command by default.
-  translator.preprocesses=true
-
-  # The translator is required to run.
-  translator.required=true
-
-  # class2llvm outputs llvm bytecode
-  translator.output=bytecode
-
-##########################################################
-# Optimizer definitions
-##########################################################
-  
-  # For optimization, we use the LLVM "opt" program
-  optimizer.command=opt \
-    %in% %force% -o %out% %opt% %time% %stats% %args%
-
-  optimizer.required = true
-
-  # opt doesn't translate
-  optimizer.translates=false
-
-  # opt doesn't preprocess
-  optimizer.preprocesses=false
-
-  # opt produces bytecode
-  optimizer.output=bytecode
-
-##########################################################
-# Assembler definitions
-##########################################################
-  assembler.command=llc \
-      %in% %force% -o %out% %target% %time% %stats% %args%
diff --git a/java/configure b/java/configure
deleted file mode 100755
index dba2bec..0000000
--- a/java/configure
+++ /dev/null
@@ -1,2599 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for Java 0.0.
-#
-# Report bugs to <llvmbugs@cs.uiuc.edu>.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='Java'
-PACKAGE_TARNAME='-java-'
-PACKAGE_VERSION='0.0'
-PACKAGE_STRING='Java 0.0'
-PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu'
-
-ac_unique_file="Makefile.common.in"
-ac_unique_file="Makefile.common.in"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ JAVA JAVAC JAVAH CLASSPATH_JAVA_LIBRARY_PATH CLASSPATH_NATIVE_LIBRARY_PATH CLASSPATH_NATIVE_LIBS LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_JAVA_set=${JAVA+set}
-ac_env_JAVA_value=$JAVA
-ac_cv_env_JAVA_set=${JAVA+set}
-ac_cv_env_JAVA_value=$JAVA
-ac_env_JAVAC_set=${JAVAC+set}
-ac_env_JAVAC_value=$JAVAC
-ac_cv_env_JAVAC_set=${JAVAC+set}
-ac_cv_env_JAVAC_value=$JAVAC
-ac_env_JAVAH_set=${JAVAH+set}
-ac_env_JAVAH_value=$JAVAH
-ac_cv_env_JAVAH_set=${JAVAH+set}
-ac_cv_env_JAVAH_value=$JAVAH
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures Java 0.0 to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of Java 0.0:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvmsrc          Location of LLVM Source Code
-  --with-llvmobj          Location of LLVM Object Code
-  --with-classpathdir     location of GNU classpath install dir (default
-                          /usr/local)
-
-Some influential environment variables:
-  JAVA        The Java Virtual Machine (used for testing)
-  JAVAC       The java compiler (used for testing)
-  JAVAH       The java JNI header generator (used for testing)
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to <llvmbugs@cs.uiuc.edu>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd "$ac_popdir"
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-Java configure 0.0
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by Java $as_me 0.0, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in ../../autoconf $srcdir/../../autoconf; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in ../../autoconf $srcdir/../../autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in ../../autoconf $srcdir/../../autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  llvm_src="$withval"
-else
-  llvm_src=`cd ${srcdir}/../..; pwd`
-fi;
-  LLVM_SRC=$llvm_src
-
-
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  llvm_obj="$withval"
-else
-  llvm_obj=`cd ../..; pwd`
-fi;
-  LLVM_OBJ=$llvm_obj
-
-            ac_config_commands="$ac_config_commands setup"
-
-
-
-
-
-          ac_config_files="$ac_config_files Makefile.common"
-
-
-          ac_config_commands="$ac_config_commands Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/ClassFile/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Makefile.test"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/SingleSource/UnitTests/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/SingleSource/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/SingleSource/Makefile.singlesrc"
-
-
-          ac_config_commands="$ac_config_commands test/Programs/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Regression/ClassFile/Makefile"
-
-
-          ac_config_commands="$ac_config_commands test/Regression/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/classdump/Makefile"
-
-
-
-
-
-# Extract the first word of "java", so it can be a program name with args.
-set dummy java; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_JAVA+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$JAVA"; then
-  ac_cv_prog_JAVA="$JAVA" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_JAVA="java"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-JAVA=$ac_cv_prog_JAVA
-if test -n "$JAVA"; then
-  echo "$as_me:$LINENO: result: $JAVA" >&5
-echo "${ECHO_T}$JAVA" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-# Extract the first word of "javac", so it can be a program name with args.
-set dummy javac; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_JAVAC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$JAVAC"; then
-  ac_cv_prog_JAVAC="$JAVAC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_JAVAC="javac"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-JAVAC=$ac_cv_prog_JAVAC
-if test -n "$JAVAC"; then
-  echo "$as_me:$LINENO: result: $JAVAC" >&5
-echo "${ECHO_T}$JAVAC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-# Extract the first word of "javah", so it can be a program name with args.
-set dummy javah; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_JAVAH+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test -n "$JAVAH"; then
-  ac_cv_prog_JAVAH="$JAVAH" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_JAVAH="javah"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-
-fi
-fi
-JAVAH=$ac_cv_prog_JAVAH
-if test -n "$JAVAH"; then
-  echo "$as_me:$LINENO: result: $JAVAH" >&5
-echo "${ECHO_T}$JAVAH" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-
-if test -z "$JAVA"
-then
-  { echo "$as_me:$LINENO: WARNING: A Java Virtual Machine is required for the test suite, but it was not found" >&5
-echo "$as_me: WARNING: A Java Virtual Machine is required for the test suite, but it was not found" >&2;}
-fi
-
-if test -z "$JAVAC"
-then
-  { echo "$as_me:$LINENO: WARNING: A Java compiler is required for the test suite, but it was not found" >&5
-echo "$as_me: WARNING: A Java compiler is required for the test suite, but it was not found" >&2;}
-fi
-
-if test -z "$JAVAC"
-then
-  { echo "$as_me:$LINENO: WARNING: A Java JNI header generator is required for the test suite, but it was not found" >&5
-echo "$as_me: WARNING: A Java JNI header generator is required for the test suite, but it was not found" >&2;}
-fi
-
-
-
-
-# Check whether --with-classpathdir or --without-classpathdir was given.
-if test "${with_classpathdir+set}" = set; then
-  withval="$with_classpathdir"
-  ac_cv_classpathdir=$withval
-else
-  ac_cv_classpathdir=/usr/local
-fi;
-
-CLASSPATH_JAVA_LIBRARY_PATH=$ac_cv_classpathdir/share/classpath
-
-
-CLASSPATH_NATIVE_LIBRARY_PATH=$ac_cv_classpathdir/lib/classpath
-
-
-CLASSPATH_NATIVE_LIBS="gtkpeer javaawt javaio javalang javalangreflect javanet javanio javautil"
-
-
-echo "$as_me:$LINENO: checking for GNU classpath libraries" >&5
-echo $ECHO_N "checking for GNU classpath libraries... $ECHO_C" >&6
-if test ! -f "$CLASSPATH_JAVA_LIBRARY_PATH/java/lang/Object.class"
-then
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-  { { echo "$as_me:$LINENO: error: A flat installation of GNU classpath is required" >&5
-echo "$as_me: error: A flat installation of GNU classpath is required" >&2;}
-   { (exit 1); exit 1; }; }
-else
-  echo "$as_me:$LINENO: result: $CLASSPATH_JAVA_LIBRARY_PATH" >&5
-echo "${ECHO_T}$CLASSPATH_JAVA_LIBRARY_PATH" >&6
-fi
-
-
-
-
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by Java $as_me 0.0, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-Java config.status 0.0
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-llvm_src="${LLVM_SRC}"
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
-  "setup" ) CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
-  "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-  "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-  "lib/ClassFile/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/ClassFile/Makefile" ;;
-  "test/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile" ;;
-  "test/Makefile.test" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Makefile.test" ;;
-  "test/Programs/SingleSource/UnitTests/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/SingleSource/UnitTests/Makefile" ;;
-  "test/Programs/SingleSource/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/SingleSource/Makefile" ;;
-  "test/Programs/SingleSource/Makefile.singlesrc" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/SingleSource/Makefile.singlesrc" ;;
-  "test/Programs/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Programs/Makefile" ;;
-  "test/Regression/ClassFile/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Regression/ClassFile/Makefile" ;;
-  "test/Regression/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS test/Regression/Makefile" ;;
-  "tools/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
-  "tools/classdump/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/classdump/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@LLVM_SRC@,$LLVM_SRC,;t t
-s,@LLVM_OBJ@,$LLVM_OBJ,;t t
-s,@JAVA@,$JAVA,;t t
-s,@JAVAC@,$JAVAC,;t t
-s,@JAVAH@,$JAVAH,;t t
-s,@CLASSPATH_JAVA_LIBRARY_PATH@,$CLASSPATH_JAVA_LIBRARY_PATH,;t t
-s,@CLASSPATH_NATIVE_LIBRARY_PATH@,$CLASSPATH_NATIVE_LIBRARY_PATH,;t t
-s,@CLASSPATH_NATIVE_LIBS@,$CLASSPATH_NATIVE_LIBS,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    lib/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/ClassFile/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/ClassFile/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/ClassFile/Makefile lib/ClassFile/Makefile ;;
-    test/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
-    test/Makefile.test ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Makefile.test`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Makefile.test test/Makefile.test ;;
-    test/Programs/SingleSource/UnitTests/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/SingleSource/UnitTests/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/SingleSource/UnitTests/Makefile test/Programs/SingleSource/UnitTests/Makefile ;;
-    test/Programs/SingleSource/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/SingleSource/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/SingleSource/Makefile test/Programs/SingleSource/Makefile ;;
-    test/Programs/SingleSource/Makefile.singlesrc ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/SingleSource/Makefile.singlesrc`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/SingleSource/Makefile.singlesrc test/Programs/SingleSource/Makefile.singlesrc ;;
-    test/Programs/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Programs/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Programs/Makefile test/Programs/Makefile ;;
-    test/Regression/ClassFile/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Regression/ClassFile/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Regression/ClassFile/Makefile test/Regression/ClassFile/Makefile ;;
-    test/Regression/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Regression/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Regression/Makefile test/Regression/Makefile ;;
-    tools/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname tools/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/tools/Makefile tools/Makefile ;;
-    tools/classdump/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname tools/classdump/Makefile`
-   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/tools/classdump/Makefile tools/classdump/Makefile ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/java/docs/TODO b/java/docs/TODO
deleted file mode 100644
index efb9a36..0000000
--- a/java/docs/TODO
+++ /dev/null
@@ -1,5 +0,0 @@
-* Exceptions.
-
-* Add GC hooks into the GC runtime.
-
-* Syncronization.
diff --git a/java/docs/java-frontend.txt b/java/docs/java-frontend.txt
deleted file mode 100644
index 279da29..0000000
--- a/java/docs/java-frontend.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-The Java frontend translates Java bytecode (.class files) into LLVM
-bytecode. This happens in two passes: a basic block building pass,
-which creates and associates LLVM basic blocks to Java bytecode blocks
-and a compilation pass, which builds the LLVM bytecode for the given
-Java bytecode (in a sense: fill in the LLVM basic blocks with
-instructions).
-
-Creating BasicBlocks
---------------------
-
-A pre-pass over the bytecode is performed that creates LLVM
-BasicBlocks and associates them with their corresponding Java basic
-block. This pass provides for a way to get the LLVM BasicBlock given a
-bytecode index. It also provides a way to get the Java bytecode bounds
-of the Java basic block given an LLVM BasicBlock.
-
-Modelling the operand stack
----------------------------
-
-When compiling java bytecode to llvm we need to model the Java operand
-stack, as this is the Java computation model. Some complication arises
-though because longs and doubles are considered to take two slots in
-the Java operand stack.
-
-In this frontend we don't use two slots on the operand stack for longs
-or doubles. This simplyfies code generation for most instructions, but
-untyped stack manipulation ones. There we need to know what is that
-type of the poped items to figure out the final configuration of the
-stack.
-
-The class2llvm compiler keeps a compile time stack of alloca's, which
-loosly represent the slots of the java operand stack. These alloca's
-are lazily created in the basic block they are first introduced. The
-state of the stack is saved at the end of each basic block for its
-successors to use it. Obviously the entry blocks gets an empty stack
-as input.
-
-The type model is the obvious for the primitive types (int to int,
-float to float, etc). For reference types the alloca is always of type
-java.lang.Object*.
-
-Local variables
----------------
-
-Similarly to the operand stack, the compiler keeps track of the local
-variable slots. Again we use a single slot for doubles and longs. A
-vector of sized to the max number of locals in the function is
-initialized when a function is compiled and the alloca's are lazily
-created on first use.
-
-Compilation
------------
-
-In order to compile a Java method to an LLVM function we use a work
-list of BasicBlocks to work through each basic block of the
-function. This is required because for each java basic block we
-compile we need to know the configuration of the operand stack and the
-locals. This is knows iff at least one predecessor of this block is
-compiled.
-
-So the work list is initialize with the entry basic block which has
-known entry operand stack and locals. The operand stack is empty and
-the locals contain the incoming arguments. When this basic block is
-compiled the operand stack and locals are associated with all its
-successors. For each successor this information is new (the operand
-stack or locals was unknown) we add it to the work list.
-
-The above guarantees that all reachable java basic blocks are going to
-be compiled.
diff --git a/java/docs/object-layout.txt b/java/docs/object-layout.txt
deleted file mode 100644
index 07e1e79..0000000
--- a/java/docs/object-layout.txt
+++ /dev/null
@@ -1,109 +0,0 @@
-Object layout for Java objects
-------------------------------
-
-Each Java object will have the following basic layout:
-
-struct llvm_java_object_base {
-  struct llvm_java_object_header header;
-  struct llvm_java_object_vtable* vtable;
-};
-
-Additional fields go to the end of the struct.
-
-
-
-The 'llvm_java_object_header' is not defined yet.
-
-struct llvm_java_object_header {
-  // gc info, hash info, locking
-};
-
-
-
-The vtable holds a nested struct of a 'llvm_java_object_typeinfo'
-object. All methods are added after the nested struct and calls to
-them are made by fetching the correct function pointer from the vtable
-at runtime.
-
-struct llvm_java_object_vtable {
-  struct java_object_typeinfo typeinfo;
-};
-
-
-
-For each class we keep track of its depth and an array of vtables to
-all its superclasses. The depth of a class is the number of
-superclasses it has. So java.lang.Object has depth 0, class A (extends
-java.lang.Object) has depth 1 and so on. We also keep an array of
-pointers to interface vtables. Each interface (vtable) gets a unique
-number and it is indexed to this array. This mostly empty array is
-filled up to the last interface implemented (the interface with the
-largest index in this array). Since interfaces cannot implement other
-interfaces (they can only extend) the lastIface and interfaces are
-used to differentiate between class typeinfo's and interface
-typeinfo's. More specifically if interfaces == -1 then this typeinfo
-is for an interface and the lastIface field is the unique number of
-this interface in the objects interfaces array. The field lastIface is
-the max index of all implemented interfaces. For a class that doesn't
-implement any it is -1. An additional field describes the elementSize
-of an array. This allows us to implement System.arraycopy().
-
-struct llvm_java_object_typeinfo {
-  jint depth;
-  struct llvm_java_object_vtable** vtables;
-  jint lastIface;
-  union {
-    struct llvm_java_object_vtable** interfaces;
-    jint interfaceFlag;
-  };
-  jint elementSize;
-};
-
-The structure of llvm_java_object_typeinfo allows constant time
-dynamic type checks:
-
-int isInstanceOf(struct llvm_java_object_base* obj,
-                 struct llvm_java_object_vtable* clazz) {
-  struct llvm_java_object_vtable* objClazz = obj->vtable;
-  if (objClazz == clazz)
-    return 1;
-  // we are checking against a class' typeinfo
-  if (clazz->typeinfo.interfaceFlag != -1)
-    return objClazz->typeinfo.depth > clazz->typeinfo.depth &&
-           objClazz->typeinfo.vtables[clazz->typeinfo.depth] == clazz;
-  // otherwise we are checking against an interface's typeinfo
-  else
-    return objClazz->typeinfo.lastIface >= clazz->typeinfo.lastIface &&
-           objClazz->typeinfo.interfaces[clazz->typeinfo.lastIface];
-}
-
-Object Layout for Java Arrays
------------------------------
-
-Java primitive arrays inherit from java.lang.Object so they will at
-minimum have a nested java.lang.Object struct as their first element.
-
-struct javaIntArray {
-  struct java_lang_Object;
-  int length;
-  int array[0];
-};
-
-The typeinfo struct inside this class' vtable will be filled in the
-same way as if this was a proper class. This will allow isInstanceOf
-to work transparently for primitive java arrays.
-
-For reference type arrays we use the same struct for all types. The
-only difference is the vtable (actually the vtables are identical but
-they have different typeinfo structs to reflect the hierarchy of the
-contained elements):
-
-struct javaObjectArray {
-  struct java_lang_Object;
-  int length;
-  java_lang_Object array[0];
-};
-
-The typeinfo struct will reflect a hierarchy of array types as if B[]
-derives from A[] if B derives from A. This will allow isInstanceOf to
-work transparently for object arrays as well.
diff --git a/java/include/llvm/Java/Bytecode.h b/java/include/llvm/Java/Bytecode.h
deleted file mode 100644
index 2661575..0000000
--- a/java/include/llvm/Java/Bytecode.h
+++ /dev/null
@@ -1,276 +0,0 @@
-//===-- Bytecode.h - Java bytecode constants --------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode constants.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_BYTECODE_H
-#define LLVM_JAVA_BYTECODE_H
-
-#include <llvm/Support/DataTypes.h>
-
-namespace llvm { namespace Java {
-
-    enum JType {
-      BOOLEAN = 4,
-      CHAR = 5,
-      FLOAT = 6,
-      DOUBLE = 7,
-      BYTE = 8,
-      SHORT = 9,
-      INT = 10,
-      LONG = 11,
-    };
-
-    enum Opcode {
-      NOP = 0x00,
-      ACONST_NULL = 0x01,
-      ICONST_M1 = 0x02,
-      ICONST_0 = 0x03,
-      ICONST_1 = 0x04,
-      ICONST_2 = 0x05,
-      ICONST_3 = 0x06,
-      ICONST_4 = 0x07,
-      ICONST_5 = 0x08,
-      LCONST_0 = 0x09,
-      LCONST_1 = 0x0A,
-      FCONST_0 = 0x0B,
-      FCONST_1 = 0x0C,
-      FCONST_2 = 0x0D,
-      DCONST_0 = 0x0E,
-      DCONST_1 = 0x0F,
-      BIPUSH = 0x10,
-      SIPUSH = 0x11,
-      LDC = 0x12,
-      LDC_W = 0x13,
-      LDC2_W = 0x14,
-      ILOAD = 0x15,
-      LLOAD = 0x16,
-      FLOAD = 0x17,
-      DLOAD = 0x18,
-      ALOAD = 0x19,
-      ILOAD_0 = 0x1A,
-      ILOAD_1 = 0x1B,
-      ILOAD_2 = 0x1C,
-      ILOAD_3 = 0x1D,
-      LLOAD_0 = 0x1E,
-      LLOAD_1 = 0x1F,
-      LLOAD_2 = 0x20,
-      LLOAD_3 = 0x21,
-      FLOAD_0 = 0x22,
-      FLOAD_1 = 0x23,
-      FLOAD_2 = 0x24,
-      FLOAD_3 = 0x25,
-      DLOAD_0 = 0x26,
-      DLOAD_1 = 0x27,
-      DLOAD_2 = 0x28,
-      DLOAD_3 = 0x29,
-      ALOAD_0 = 0x2A,
-      ALOAD_1 = 0x2B,
-      ALOAD_2 = 0x2C,
-      ALOAD_3 = 0x2D,
-      IALOAD = 0x2E,
-      LALOAD = 0x2F,
-      FALOAD = 0x30,
-      DALOAD = 0x31,
-      AALOAD = 0x32,
-      BALOAD = 0x33,
-      CALOAD = 0x34,
-      SALOAD = 0x35,
-      ISTORE = 0x36,
-      LSTORE = 0x37,
-      FSTORE = 0x38,
-      DSTORE = 0x39,
-      ASTORE = 0x3A,
-      ISTORE_0 = 0x3B,
-      ISTORE_1 = 0x3C,
-      ISTORE_2 = 0x3D,
-      ISTORE_3 = 0x3E,
-      LSTORE_0 = 0x3F,
-      LSTORE_1 = 0x40,
-      LSTORE_2 = 0x41,
-      LSTORE_3 = 0x42,
-      FSTORE_0 = 0x43,
-      FSTORE_1 = 0x44,
-      FSTORE_2 = 0x45,
-      FSTORE_3 = 0x46,
-      DSTORE_0 = 0x47,
-      DSTORE_1 = 0x48,
-      DSTORE_2 = 0x49,
-      DSTORE_3 = 0x4A,
-      ASTORE_0 = 0x4B,
-      ASTORE_1 = 0x4C,
-      ASTORE_2 = 0x4D,
-      ASTORE_3 = 0x4E,
-      IASTORE = 0x4F,
-      LASTORE = 0x50,
-      FASTORE = 0x51,
-      DASTORE = 0x52,
-      AASTORE = 0x53,
-      BASTORE = 0x54,
-      CASTORE = 0x55,
-      SASTORE = 0x56,
-      POP = 0x57,
-      POP2 = 0x58,
-      DUP = 0x59,
-      DUP_X1 = 0x5A,
-      DUP_X2 = 0x5B,
-      DUP2 = 0x5C,
-      DUP2_X1 = 0x5D,
-      DUP2_X2 = 0x5E,
-      SWAP = 0x5F,
-      IADD = 0x60,
-      LADD = 0x61,
-      FADD = 0x62,
-      DADD = 0x63,
-      ISUB = 0x64,
-      LSUB = 0x65,
-      FSUB = 0x66,
-      DSUB = 0x67,
-      IMUL = 0x68,
-      LMUL = 0x69,
-      FMUL = 0x6A,
-      DMUL = 0x6B,
-      IDIV = 0x6C,
-      LDIV = 0x6D,
-      FDIV = 0x6E,
-      DDIV = 0x6F,
-      IREM = 0x70,
-      LREM = 0x71,
-      FREM = 0x72,
-      DREM = 0x73,
-      INEG = 0x74,
-      LNEG = 0x75,
-      FNEG = 0x76,
-      DNEG = 0x77,
-      ISHL = 0x78,
-      LSHL = 0x79,
-      ISHR = 0x7A,
-      LSHR = 0x7B,
-      IUSHR = 0x7C,
-      LUSHR = 0x7D,
-      IAND = 0x7E,
-      LAND = 0x7F,
-      IOR = 0x80,
-      LOR = 0x81,
-      IXOR = 0x82,
-      LXOR = 0x83,
-      IINC = 0x84,
-      I2L = 0x85,
-      I2F = 0x86,
-      I2D = 0x87,
-      L2I = 0x88,
-      L2F = 0x89,
-      L2D = 0x8A,
-      F2I = 0x8B,
-      F2L = 0x8C,
-      F2D = 0x8D,
-      D2I = 0x8E,
-      D2L = 0x8F,
-      D2F = 0x90,
-      I2B = 0x91,
-      I2C = 0x92,
-      I2S = 0x93,
-      LCMP = 0x94,
-      FCMPL = 0x95,
-      FCMPG = 0x96,
-      DCMPL = 0x97,
-      DCMPG = 0x98,
-      IFEQ = 0x99,
-      IFNE = 0x9A,
-      IFLT = 0x9B,
-      IFGE = 0x9C,
-      IFGT = 0x9D,
-      IFLE = 0x9E,
-      IF_ICMPEQ = 0x9F,
-      IF_ICMPNE = 0xA0,
-      IF_ICMPLT = 0xA1,
-      IF_ICMPGE = 0xA2,
-      IF_ICMPGT = 0xA3,
-      IF_ICMPLE = 0xA4,
-      IF_IACMPEQ = 0xA5,
-      IF_IACMPNE = 0xA6,
-      GOTO = 0xA7,
-      JSR = 0xA8,
-      RET = 0xA9,
-      TABLESWITCH = 0xAA,
-      LOOKUPSWITCH = 0xAB,
-      IRETURN = 0xAC,
-      LRETURN = 0xAD,
-      FRETURN = 0xAE,
-      DRETURN = 0xAF,
-      ARETURN = 0xB0,
-      RETURN = 0xB1,
-      GETSTATIC = 0xB2,
-      PUTSTATIC = 0xB3,
-      GETFIELD = 0xB4,
-      PUTFIELD = 0xB5,
-      INVOKEVIRTUAL = 0xB6,
-      INVOKESPECIAL = 0xB7,
-      INVOKESTATIC = 0xB8,
-      INVOKEINTERFACE = 0xB9,
-      XXXUNUSEDXXX = 0xBA,
-      NEW = 0xBB,
-      NEWARRAY = 0xBC,
-      ANEWARRAY = 0xBD,
-      ARRAYLENGTH = 0xBE,
-      ATHROW = 0xBF,
-      CHECKCAST = 0xC0,
-      INSTANCEOF = 0xC1,
-      MONITORENTER = 0xC2,
-      MONITOREXIT = 0xC3,
-      WIDE = 0xC4,
-      MULTIANEWARRAY = 0xC5,
-      IFNULL = 0xC6,
-      IFNONNULL = 0xC7,
-      GOTO_W = 0xC8,
-      JSR_W = 0xC9,
-      BREAKPOINT = 0xCA,
-      IMPDEP1 = 0xFE,
-      IMPDEP2 = 0xFF,
-    };
-
-  inline int readSByte(const uint8_t* code, unsigned& i) {
-    return ((int8_t*)code)[++i];
-  }
-
-  inline unsigned readUByte(const uint8_t* code, unsigned& i) {
-    return code[++i];
-  }
-
-  inline int readSShort(const uint8_t* code, unsigned& i) {
-    int val = readSByte(code, i) << 8;
-    return val | readUByte(code, i);
-  }
-
-  inline unsigned readUShort(const uint8_t* code, unsigned& i) {
-    unsigned val = readUByte(code, i) << 8;
-    return val | readUByte(code, i);
-  }
-
-  inline int readSInt(const uint8_t* code, unsigned& i) {
-    int val = readUShort(code, i) << 16;
-    return val | readUShort(code, i);
-  }
-
-  inline unsigned readUInt(const uint8_t* code, unsigned& i) {
-    return readSInt(code, i);
-  }
-
-  inline void skipPadBytes(unsigned& i) {
-    ++i;
-    unsigned lastTwoBits = i & 0x3;
-    i += (4 - lastTwoBits) & 0x3;
-    --i;
-  }
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_BYTECODE_H
diff --git a/java/include/llvm/Java/BytecodeParser.h b/java/include/llvm/Java/BytecodeParser.h
deleted file mode 100644
index 352d168..0000000
--- a/java/include/llvm/Java/BytecodeParser.h
+++ /dev/null
@@ -1,948 +0,0 @@
-//===-- BytecodeParser.h - Java bytecode parser -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode parser baseclass: a class that
-// helps writing Java bytecode parsers.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_BYTECODEPARSER_H
-#define LLVM_JAVA_BYTECODEPARSER_H
-
-#include <llvm/Java/Bytecode.h>
-
-namespace llvm { namespace Java {
-
-  /// @brief This class provides a base class that eases bytecode
-  /// parsing.
-  ///
-  /// By default all the do_* methods do nothing. A subclass can
-  /// override at will to provide specific behaviour.
-  template <typename SubClass>
-  class BytecodeParser {
-  protected:
-    typedef std::vector<std::pair<int, unsigned> > SwitchCases;
-
-  private:
-    SwitchCases switchCases_;
-
-  protected:
-#define THIS ((SubClass*)this)
-
-    /// @brief parse code pointed to by \c code beginning at \c start
-    /// bytecode and ending at \c end bytecode
-    ///
-    /// This function parses the code pointed to by \c code and calls
-    /// the subclass's do_<bytecode> method appropriately. When this
-    /// function returns all code in [start, end) is parsed.
-    void parse(const uint8_t* code, unsigned start, unsigned end) {
-      for (unsigned i = start; i < end; ++i) {
-        unsigned curBC = i;
-        bool wide = code[i] == WIDE;
-        i += wide;
-        THIS->pre_inst(curBC);
-        switch (code[i]) {
-        case ACONST_NULL:
-          THIS->do_aconst_null();
-          break;
-        case ICONST_M1:
-        case ICONST_0:
-        case ICONST_1:
-        case ICONST_2:
-        case ICONST_3:
-        case ICONST_4:
-        case ICONST_5:
-          THIS->do_iconst(code[i]-ICONST_0);
-          break;
-        case LCONST_0:
-        case LCONST_1:
-          THIS->do_lconst(code[i]-LCONST_0);
-          break;
-        case FCONST_0:
-        case FCONST_1:
-        case FCONST_2:
-          THIS->do_fconst(code[i]-FCONST_0);
-          break;
-        case DCONST_0:
-        case DCONST_1:
-          THIS->do_dconst(code[i]-DCONST_0);
-          break;
-        case BIPUSH:
-          THIS->do_iconst(readSByte(code, i));
-          break;
-        case SIPUSH:
-          THIS->do_iconst(readSShort(code, i));
-          break;
-        case LDC:
-          THIS->do_ldc(readUByte(code, i));
-          break;
-        case LDC_W:
-          THIS->do_ldc(readUShort(code, i));
-          break;
-        case LDC2_W:
-          THIS->do_ldc2(readUShort(code, i));
-          break;
-        case ILOAD:
-          THIS->do_iload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case LLOAD:
-          THIS->do_lload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case FLOAD:
-          THIS->do_fload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case DLOAD:
-          THIS->do_dload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ALOAD:
-          THIS->do_aload(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ILOAD_0:
-        case ILOAD_1:
-        case ILOAD_2:
-        case ILOAD_3:
-          THIS->do_iload(code[i]-ILOAD_0);
-          break;
-        case LLOAD_0:
-        case LLOAD_1:
-        case LLOAD_2:
-        case LLOAD_3:
-          THIS->do_lload(code[i]-LLOAD_0);
-          break;
-        case FLOAD_0:
-        case FLOAD_1:
-        case FLOAD_2:
-        case FLOAD_3:
-          THIS->do_fload(code[i]-FLOAD_0);
-          break;
-        case DLOAD_0:
-        case DLOAD_1:
-        case DLOAD_2:
-        case DLOAD_3:
-          THIS->do_dload(code[i]-DLOAD_0);
-          break;
-        case ALOAD_0:
-        case ALOAD_1:
-        case ALOAD_2:
-        case ALOAD_3:
-          THIS->do_aload(code[i]-ALOAD_0);
-          break;
-        case IALOAD:
-          THIS->do_iaload();
-          break;
-        case LALOAD:
-          THIS->do_laload();
-          break;
-        case FALOAD:
-          THIS->do_faload();
-          break;
-        case DALOAD:
-          THIS->do_daload();
-          break;
-        case AALOAD:
-          THIS->do_aaload();
-          break;
-        case BALOAD:
-          THIS->do_baload();
-          break;
-        case CALOAD:
-          THIS->do_caload();
-          break;
-        case SALOAD:
-          THIS->do_saload();
-          break;
-        case ISTORE:
-          THIS->do_istore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case LSTORE:
-          THIS->do_lstore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case FSTORE:
-          THIS->do_fstore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case DSTORE:
-          THIS->do_dstore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ASTORE:
-          THIS->do_astore(wide ? readUShort(code, i) : readUByte(code, i));
-          break;
-        case ISTORE_0:
-        case ISTORE_1:
-        case ISTORE_2:
-        case ISTORE_3:
-          THIS->do_istore(code[i]-ISTORE_0);
-          break;
-        case LSTORE_0:
-        case LSTORE_1:
-        case LSTORE_2:
-        case LSTORE_3:
-          THIS->do_lstore(code[i]-LSTORE_0);
-          break;
-        case FSTORE_0:
-        case FSTORE_1:
-        case FSTORE_2:
-        case FSTORE_3:
-          THIS->do_fstore(code[i]-FSTORE_0);
-          break;
-        case DSTORE_0:
-        case DSTORE_1:
-        case DSTORE_2:
-        case DSTORE_3:
-          THIS->do_dstore(code[i]-DSTORE_0);
-          break;
-        case ASTORE_0:
-        case ASTORE_1:
-        case ASTORE_2:
-        case ASTORE_3:
-          THIS->do_astore(code[i]-ASTORE_0);
-          break;
-        case IASTORE:
-          THIS->do_iastore();
-          break;
-        case LASTORE:
-          THIS->do_lastore();
-          break;
-        case FASTORE:
-          THIS->do_fastore();
-          break;
-        case DASTORE:
-          THIS->do_dastore();
-          break;
-        case AASTORE:
-          THIS->do_aastore();
-          break;
-        case BASTORE:
-          THIS->do_bastore();
-          break;
-        case CASTORE:
-          THIS->do_castore();
-          break;
-        case SASTORE:
-          THIS->do_sastore();
-          break;
-        case POP:
-          THIS->do_pop();
-          break;
-        case POP2:
-          THIS->do_pop2();
-          break;
-        case DUP:
-          THIS->do_dup();
-          break;
-        case DUP_X1:
-          THIS->do_dup_x1();
-          break;
-        case DUP_X2:
-          THIS->do_dup_x2();
-          break;
-        case DUP2:
-          THIS->do_dup2();
-          break;
-        case DUP2_X1:
-          THIS->do_dup2_x1();
-          break;
-        case DUP2_X2:
-          THIS->do_dup2_x2();
-          break;
-        case SWAP:
-          THIS->do_swap();
-          break;
-        case IADD:
-          THIS->do_iadd();
-          break;
-        case LADD:
-          THIS->do_ladd();
-          break;
-        case FADD:
-          THIS->do_fadd();
-          break;
-        case DADD:
-          THIS->do_dadd();
-          break;
-        case ISUB:
-          THIS->do_isub();
-          break;
-        case LSUB:
-          THIS->do_lsub();
-          break;
-        case FSUB:
-          THIS->do_fsub();
-          break;
-        case DSUB:
-          THIS->do_dsub();
-          break;
-        case IMUL:
-          THIS->do_imul();
-          break;
-        case LMUL:
-          THIS->do_lmul();
-          break;
-        case FMUL:
-          THIS->do_fmul();
-          break;
-        case DMUL:
-          THIS->do_dmul();
-          break;
-        case IDIV:
-          THIS->do_idiv();
-          break;
-        case LDIV:
-          THIS->do_ldiv();
-          break;
-        case FDIV:
-          THIS->do_fdiv();
-          break;
-        case DDIV:
-          THIS->do_ddiv();
-          break;
-        case IREM:
-          THIS->do_irem();
-          break;
-        case LREM:
-          THIS->do_lrem();
-          break;
-        case FREM:
-          THIS->do_frem();
-          break;
-        case DREM:
-          THIS->do_drem();
-          break;
-        case INEG:
-          THIS->do_ineg();
-          break;
-        case LNEG:
-          THIS->do_lneg();
-          break;
-        case FNEG:
-          THIS->do_fneg();
-          break;
-        case DNEG:
-          THIS->do_dneg();
-          break;
-        case ISHL:
-          THIS->do_ishl();
-          break;
-        case LSHL:
-          THIS->do_lshl();
-          break;
-        case ISHR:
-          THIS->do_ishr();
-          break;
-        case LSHR:
-          THIS->do_lshr();
-          break;
-        case IUSHR:
-          THIS->do_iushr();
-          break;
-        case LUSHR:
-          THIS->do_lushr();
-          break;
-        case IAND:
-          THIS->do_iand();
-          break;
-        case LAND:
-          THIS->do_land();
-          break;
-        case IOR:
-          THIS->do_ior();
-          break;
-        case LOR:
-          THIS->do_lor();
-          break;
-        case IXOR:
-          THIS->do_ixor();
-          break;
-        case LXOR:
-          THIS->do_lxor();
-          break;
-        case IINC: {
-          unsigned index = wide ? readUShort(code, i) : readUByte(code, i);
-          int amount = wide ? readSShort(code, i) : readSByte(code, i);
-          THIS->do_iinc(index, amount);
-          break;
-        }
-        case I2L:
-          THIS->do_i2l();
-          break;
-        case I2F:
-          THIS->do_i2f();
-          break;
-        case I2D:
-          THIS->do_i2d();
-          break;
-        case L2I:
-          THIS->do_l2i();
-          break;
-        case L2F:
-          THIS->do_l2f();
-          break;
-        case L2D:
-          THIS->do_l2d();
-          break;
-        case F2I:
-          THIS->do_f2i();
-          break;
-        case F2L:
-          THIS->do_f2l();
-          break;
-        case F2D:
-          THIS->do_f2d();
-          break;
-        case D2I:
-          THIS->do_d2i();
-          break;
-        case D2L:
-          THIS->do_d2l();
-          break;
-        case D2F:
-          THIS->do_d2f();
-          break;
-        case I2B:
-          THIS->do_i2b();
-          break;
-        case I2C:
-          THIS->do_i2c();
-          break;
-        case I2S:
-          THIS->do_i2s();
-          break;
-        case LCMP:
-          THIS->do_lcmp();
-          break;
-        case FCMPL:
-          THIS->do_fcmpl();
-          break;
-        case FCMPG:
-          THIS->do_fcmpg();
-          break;
-        case DCMPL:
-          THIS->do_dcmpl();
-          break;
-        case DCMPG:
-          THIS->do_dcmpg();
-          break;
-        case IFEQ: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifeq(t, i + 1);
-          break;
-        }
-        case IFNE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifne(t, i + 1);
-          break;
-        }
-        case IFLT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_iflt(t, i + 1);
-          break;
-        }
-        case IFGE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifge(t, i + 1);
-          break;
-        }
-        case IFGT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifgt(t, i + 1);
-          break;
-        }
-        case IFLE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifle(t, i + 1);
-          break;
-        }
-        case IF_ICMPEQ: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpeq(t, i + 1);
-          break;
-        }
-        case IF_ICMPNE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpne(t, i + 1);
-          break;
-        }
-        case IF_ICMPLT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmplt(t, i + 1);
-          break;
-        }
-        case IF_ICMPGE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpge(t, i + 1);
-          break;
-        }
-        case IF_ICMPGT: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmpgt(t, i + 1);
-          break;
-        }
-        case IF_ICMPLE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_icmple(t, i + 1);
-          break;
-        }
-        case IF_IACMPEQ: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_acmpeq(t, i + 1);
-          break;
-        }
-        case IF_IACMPNE: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_if_acmpne(t, i + 1);
-          break;
-        }
-        case GOTO:
-          THIS->do_goto(curBC + readSShort(code, i));
-          break;
-        case JSR: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_jsr(t, i + 1);
-          break;
-        }
-        case RET:
-          THIS->do_ret(readUByte(code, i));
-          break;
-        case TABLESWITCH: {
-          switchCases_.clear();
-          skipPadBytes(i);
-          int def = readSInt(code, i);
-          int low = readSInt(code, i);
-          int high = readSInt(code, i);
-          switchCases_.reserve(high - low + 1);
-          while (low <= high)
-            switchCases_.push_back(
-              std::make_pair(low++, curBC + readSInt(code, i)));
-          THIS->do_tableswitch(curBC + def, switchCases_);
-          break;
-        }
-        case LOOKUPSWITCH: {
-          switchCases_.clear();
-          skipPadBytes(i);
-          int def = readSInt(code, i);
-          int pairCount = readSInt(code, i);
-          switchCases_.reserve(pairCount);
-          while (pairCount--) {
-            int value = readSInt(code, i);
-            switchCases_.push_back(
-              std::make_pair(value, curBC + readSInt(code, i)));
-          }
-          THIS->do_lookupswitch(curBC + def, switchCases_);
-          break;
-        }
-        case IRETURN:
-          THIS->do_ireturn();
-          break;
-        case LRETURN:
-          THIS->do_lreturn();
-          break;
-        case FRETURN:
-          THIS->do_freturn();
-          break;
-        case DRETURN:
-          THIS->do_dreturn();
-          break;
-        case ARETURN:
-          THIS->do_areturn();
-          break;
-        case RETURN:
-          THIS->do_return();
-          break;
-        case GETSTATIC:
-          THIS->do_getstatic(readUShort(code, i));
-          break;
-        case PUTSTATIC:
-          THIS->do_putstatic(readUShort(code, i));
-          break;
-        case GETFIELD:
-          THIS->do_getfield(readUShort(code, i));
-          break;
-        case PUTFIELD:
-          THIS->do_putfield(readUShort(code, i));
-          break;
-        case INVOKEVIRTUAL:
-          THIS->do_invokevirtual(readUShort(code, i));
-          break;
-        case INVOKESPECIAL:
-          THIS->do_invokespecial(readUShort(code, i));
-          break;
-        case INVOKESTATIC:
-          THIS->do_invokestatic(readUShort(code, i));
-          break;
-        case INVOKEINTERFACE: {
-          THIS->do_invokeinterface(readUShort(code, i));
-          unsigned count = readUByte(code, i);
-          unsigned zero = readUByte(code, i);
-          break;
-        }
-        case XXXUNUSEDXXX:
-          // FIXME: must throw something
-          break;
-        case NEW:
-          THIS->do_new(readUShort(code, i));
-          break;
-        case NEWARRAY:
-          THIS->do_newarray(static_cast<JType>(readUByte(code, i)));
-          break;
-        case ANEWARRAY:
-          THIS->do_anewarray(readUShort(code, i));
-          break;
-        case ARRAYLENGTH:
-          THIS->do_arraylength();
-          break;
-        case ATHROW:
-          THIS->do_athrow();
-          break;
-        case CHECKCAST:
-          THIS->do_checkcast(readUShort(code, i));
-          break;
-        case INSTANCEOF:
-          THIS->do_instanceof(readUShort(code, i));
-          break;
-        case MONITORENTER:
-          THIS->do_monitorenter();
-          break;
-        case MONITOREXIT:
-          THIS->do_monitorexit();
-          break;
-        case WIDE:
-          // FIXME: must throw something
-          break;
-        case MULTIANEWARRAY: {
-          unsigned index = readUShort(code, i);
-          unsigned dims = readUByte(code, i);
-          THIS->do_multianewarray(index, dims);
-          break;
-        }
-        case IFNULL: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifnull(t, i + 1);
-          break;
-        }
-        case IFNONNULL: {
-          unsigned t = curBC + readSShort(code, i);
-          THIS->do_ifnonnull(t, i + 1);
-          break;
-        }
-        case GOTO_W:
-          THIS->do_goto(curBC + readSInt(code, i));
-          break;
-        case JSR_W: {
-          unsigned t = curBC + readSInt(code, i);
-          THIS->do_jsr(t, i + 1);
-          break;
-        }
-        case BREAKPOINT:
-        case IMPDEP1:
-        case IMPDEP2:
-        case NOP:
-          break;
-        default:
-          // FIXME: must throw something
-          break;
-        }
-      }
-    }
-
-#undef THIS
-
-    /// @brief called before every bytecode
-    void pre_inst(unsigned bcI) { }
-    /// @brief called on ACONST_NULL
-    void do_aconst_null() { }
-    /// @brief called on ICONST_<n>, SIPUSH and BIPUSH
-    void do_iconst(int value) { }
-    /// @brief called on LCONST_<n>
-    void do_lconst(long long value) { }
-    /// @brief called on FCONST_<n>
-    void do_fconst(float value) { }
-    /// @brief called on DCONST_<n>
-    void do_dconst(double value) { }
-    /// @brief called on LDC and LDC_W
-    void do_ldc(unsigned index) { }
-    /// @brief called on LDC2_W
-    void do_ldc2(unsigned index) { }
-    /// @brief called on ILOAD and ILOAD_<n>
-    void do_iload(unsigned index) { }
-    /// @brief called on LLOAD and LLOAD_<n>
-    void do_lload(unsigned index) { }
-    /// @brief called on FLOAD and FLOAD_<n>
-    void do_fload(unsigned index) { }
-    /// @brief called on DLOAD and DLOAD_<n>
-    void do_dload(unsigned index) { }
-    /// @brief called on ALOAD and ALOAD_<n>
-    void do_aload(unsigned index) { }
-    /// @brief called on IALOAD
-    void do_iaload() { }
-    /// @brief called on LALOAD
-    void do_laload() { }
-    /// @brief called on FALOAD
-    void do_faload() { }
-    /// @brief called on DALOAD
-    void do_daload() { }
-    /// @brief called on AALOAD
-    void do_aaload() { }
-    /// @brief called on BALOAD
-    void do_baload() { }
-    /// @brief called on CALOAD
-    void do_caload() { }
-    /// @brief called on SALOAD
-    void do_saload() { }
-    /// @brief called on ISTORE and ISTORE_<n>
-    void do_istore(unsigned index) { }
-    /// @brief called on LSTORE and LSTORE_<n>
-    void do_lstore(unsigned index) { }
-    /// @brief called on FSTORE and FSTORE_<n>
-    void do_fstore(unsigned index) { }
-    /// @brief called on DSTORE and DSTORE_<n>
-    void do_dstore(unsigned index) { }
-    /// @brief called on ASTORE and ASTORE_<n>
-    void do_astore(unsigned index) { }
-    /// @brief called on IASTORE
-    void do_iastore() { }
-    /// @brief called on LASTORE
-    void do_lastore() { }
-    /// @brief called on FASTORE
-    void do_fastore() { }
-    /// @brief called on DASTORE
-    void do_dastore() { }
-    /// @brief called on AASTORE
-    void do_aastore() { }
-    /// @brief called on BASTORE
-    void do_bastore() { }
-    /// @brief called on CASTORE
-    void do_castore() { }
-    /// @brief called on SASTORE
-    void do_sastore() { }
-    /// @brief called on POP
-    void do_pop() { }
-    /// @brief called on POP2
-    void do_pop2() { }
-    /// @brief called on DUP
-    void do_dup() { }
-    /// @brief called on DUP_X1
-    void do_dup_x1() { }
-    /// @brief called on DUP_X2
-    void do_dup_x2() { }
-    /// @brief called on DUP2
-    void do_dup2() { }
-    /// @brief called on DUP2_X1
-    void do_dup2_x1() { }
-    /// @brief called on DUP2_X2
-    void do_dup2_x2() { }
-    /// @brief called on SWAP
-    void do_swap() { }
-    /// @brief called on IADD
-    void do_iadd() { }
-    /// @brief called on LADD
-    void do_ladd() { }
-    /// @brief called on FADD
-    void do_fadd() { }
-    /// @brief called on DADD
-    void do_dadd() { }
-    /// @brief called on ISUB
-    void do_isub() { }
-    /// @brief called on LSUB
-    void do_lsub() { }
-    /// @brief called on FSUB
-    void do_fsub() { }
-    /// @brief called on DSUB
-    void do_dsub() { }
-    /// @brief called on IMUL
-    void do_imul() { }
-    /// @brief called on LMUL
-    void do_lmul() { }
-    /// @brief called on FMUL
-    void do_fmul() { }
-    /// @brief called on DMUL
-    void do_dmul() { }
-    /// @brief called on IDIV
-    void do_idiv() { }
-    /// @brief called on LDIV
-    void do_ldiv() { }
-    /// @brief called on FDIV
-    void do_fdiv() { }
-    /// @brief called on DDIV
-    void do_ddiv() { }
-    /// @brief called on IREM
-    void do_irem() { }
-    /// @brief called on LREM
-    void do_lrem() { }
-    /// @brief called on FREM
-    void do_frem() { }
-    /// @brief called on DREM
-    void do_drem() { }
-    /// @brief called on INEG
-    void do_ineg() { }
-    /// @brief called on LNEG
-    void do_lneg() { }
-    /// @brief called on FNEG
-    void do_fneg() { }
-    /// @brief called on DNEG
-    void do_dneg() { }
-    /// @brief called on ISHL
-    void do_ishl() { }
-    /// @brief called on LSHL
-    void do_lshl() { }
-    /// @brief called on ISHR
-    void do_ishr() { }
-    /// @brief called on LSHR
-    void do_lshr() { }
-    /// @brief called on IUSHR
-    void do_iushr() { }
-    /// @brief called on LUSHR
-    void do_lushr() { }
-    /// @brief called on IAND
-    void do_iand() { }
-    /// @brief called on LAND
-    void do_land() { }
-    /// @brief called on IOR
-    void do_ior() { }
-    /// @brief called on LOR
-    void do_lor() { }
-    /// @brief called on IXOR
-    void do_ixor() { }
-    /// @brief called on LXOR
-    void do_lxor() { }
-    /// @brief called on IINC
-    void do_iinc(unsigned index, int amount) { }
-    /// @brief called on I2L
-    void do_i2l() { }
-    /// @brief called on I2F
-    void do_i2f() { }
-    /// @brief called on I2D
-    void do_i2d() { }
-    /// @brief called on L2I
-    void do_l2i() { }
-    /// @brief called on L2F
-    void do_l2f() { }
-    /// @brief called on L2D
-    void do_l2d() { }
-    /// @brief called on F2I
-    void do_f2i() { }
-    /// @brief called on F2L
-    void do_f2l() { }
-    /// @brief called on F2D
-    void do_f2d() { }
-    /// @brief called on D2I
-    void do_d2i() { }
-    /// @brief called on D2L
-    void do_d2l() { }
-    /// @brief called on D2F
-    void do_d2f() { }
-    /// @brief called on I2B
-    void do_i2b() { }
-    /// @brief called on I2C
-    void do_i2c() { }
-    /// @brief called on I2S
-    void do_i2s() { }
-    /// @brief called on LCMP
-    void do_lcmp() { }
-    /// @brief called on FCMPL
-    void do_fcmpl() { }
-    /// @brief called on DCMPL
-    void do_dcmpl() { }
-    /// @brief called on FCMPG
-    void do_fcmpg() { }
-    /// @brief called on DCMPG
-    void do_dcmpg() { }
-    /// @brief called on IFEQ
-    void do_ifeq(unsigned t, unsigned f) { }
-    /// @brief called on IFNE
-    void do_ifne(unsigned t, unsigned f) { }
-    /// @brief called on IFLT
-    void do_iflt(unsigned t, unsigned f) { }
-    /// @brief called on IFGE
-    void do_ifge(unsigned t, unsigned f) { }
-    /// @brief called on IFGT
-    void do_ifgt(unsigned t, unsigned f) { }
-    /// @brief called on IFLE
-    void do_ifle(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPEQ
-    void do_if_icmpeq(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPNE
-    void do_if_icmpne(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPLT
-    void do_if_icmplt(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPGE
-    void do_if_icmpge(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPGT
-    void do_if_icmpgt(unsigned t, unsigned f) { }
-    /// @brief called on IF_ICMPLE
-    void do_if_icmple(unsigned t, unsigned f) { }
-    /// @brief called on IF_ACMPEQ
-    void do_if_acmpeq(unsigned t, unsigned f) { }
-    /// @brief called on IF_ACMPNE
-    void do_if_acmpne(unsigned t, unsigned f) { }
-    /// @brief called on GOTO and GOTO_W
-    void do_goto(unsigned target) { }
-    /// @brief called on JSR and JSR_W
-    void do_jsr(unsigned target, unsigned retAddress) { }
-    /// @brief called on RET
-    void do_ret(unsigned index) { }
-    /// @brief called on TABLESWITCH
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) { }
-    /// @brief called on LOOKUPSWITCH
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) { }
-    /// @brief called on IRETURN
-    void do_ireturn() { }
-    /// @brief called on LRETURN
-    void do_lreturn() { }
-    /// @brief called on FRETURN
-    void do_freturn() { }
-    /// @brief called on DRETURN
-    void do_dreturn() { }
-    /// @brief called on ARETURN
-    void do_areturn() { }
-    /// @brief called on RETURN
-    void do_return() { }
-    /// @brief called on GETSTATIC
-    void do_getstatic(unsigned index) { }
-    /// @brief called on PUTSTATIC
-    void do_putstatic(unsigned index) { }
-    /// @brief called on GETFIELD
-    void do_getfield(unsigned index) { }
-    /// @brief called on PUTFIELD
-    void do_putfield(unsigned index) { }
-    /// @brief called on INVOKEVIRTUAL
-    void do_invokevirtual(unsigned index) { }
-    /// @brief called on INVOKESPECIAL
-    void do_invokespecial(unsigned index) { }
-    /// @brief called on INVOKESTATIC
-    void do_invokestatic(unsigned index) { }
-    /// @brief called on INVOKEINTERFACE
-    void do_invokeinterface(unsigned index) { }
-    /// @brief called on NEW
-    void do_new(unsigned index) { }
-    /// @brief called on NEWARRAY
-    void do_newarray(JType type) { }
-    /// @brief called on ANEWARRAY
-    void do_anewarray(unsigned index) { }
-    /// @brief called on ARRAYLENGTH
-    void do_arraylength() { }
-    /// @brief called on ATHROW
-    void do_athrow() { }
-    /// @brief called on CHECKCAST
-    void do_checkcast(unsigned index) { }
-    /// @brief called on INSTANCEOF
-    void do_instanceof(unsigned index) { }
-    /// @brief called on MONITORENTER
-    void do_monitorenter() { }
-    /// @brief called on MONITOREXIT
-    void do_monitorexit() { }
-    /// @brief called on MULTIANEWARRAY
-    void do_multianewarray(unsigned index, unsigned dims) { }
-    /// @brief called on IFNULL
-    void do_ifnull(unsigned t, unsigned f) { }
-    /// @brief called on IFNONNULL
-    void do_ifnonnull(unsigned t, unsigned f) { }
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_BYTECODEPARSER_H
diff --git a/java/include/llvm/Java/ClassFile.h b/java/include/llvm/Java/ClassFile.h
deleted file mode 100644
index 83ab6ae..0000000
--- a/java/include/llvm/Java/ClassFile.h
+++ /dev/null
@@ -1,524 +0,0 @@
-//===-- ClassFile.h - ClassFile support library -----------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the ClassFile and subordinate
-// classes, which represent a parsed class file.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_CLASSFILE_H
-#define LLVM_JAVA_CLASSFILE_H
-
-#include <llvm/System/Path.h>
-
-#include <iosfwd>
-#include <stdexcept>
-#include <vector>
-
-#include <llvm/Support/DataTypes.h>
-
-namespace llvm { namespace Java {
-
-  // Forward declarations
-  class Attribute;
-  class ConstantValueAttribute;
-  class CodeAttribute;
-  class ExceptionsAttribute;
-  class Constant;
-  class ConstantClass;
-  class ConstantFieldRef;
-  class ConstantInterfaceMethodRef;
-  class ConstantMemberRef;
-  class ConstantMethodRef;
-  class ConstantNameAndType;
-  class ConstantUtf8;
-  class ClassFile;
-  class Field;
-  class Method;
-
-  enum AccessFlag {
-    ACC_PUBLIC       = 0x0001,
-    ACC_PRIVATE      = 0x0002,
-    ACC_PROTECTED    = 0x0004,
-    ACC_STATIC       = 0x0008,
-    ACC_FINAL        = 0x0010,
-    ACC_SUPER        = 0x0020,
-    ACC_SYNCHRONIZED = 0x0020,
-    ACC_VOLATILE     = 0x0040,
-    ACC_TRANSIENT    = 0x0080,
-    ACC_NATIVE       = 0x0100,
-    ACC_INTERFACE    = 0x0200,
-    ACC_ABSTRACT     = 0x0400,
-    ACC_STRICT       = 0x0800,
-  };
-
-  typedef std::vector<Constant*> ConstantPool;
-  typedef std::vector<Field*> Fields;
-  typedef std::vector<Method*> Methods;
-  typedef std::vector<Attribute*> Attributes;
-
-  Attribute* getAttribute(const Attributes& attrs,
-                          const std::string& name);
-
-  class ClassFile {
-    static const ClassFile* readClassFile(std::istream& is);
-    static std::vector<llvm::sys::Path> getClassPath();
-    static sys::Path getFileForClass(const std::string& classname);
-
-  public:
-    static const ClassFile* get(const std::string& classname);
-
-    ~ClassFile();
-
-    uint16_t getMinorVersion() const { return minorV_; }
-    uint16_t getMajorVersion() const { return majorV_; }
-
-    unsigned getNumConstants() const { return cPool_.size(); }
-    Constant* getConstant(unsigned index) const { return cPool_[index]; }
-    ConstantClass* getConstantClass(unsigned index) const;
-    ConstantMemberRef* getConstantMemberRef(unsigned index) const;
-    ConstantFieldRef* getConstantFieldRef(unsigned index) const;
-    ConstantMethodRef* getConstantMethodRef(unsigned index) const;
-    ConstantInterfaceMethodRef*
-    getConstantInterfaceMethodRef(unsigned index) const;
-    ConstantNameAndType* getConstantNameAndType(unsigned index) const;
-    ConstantUtf8* getConstantUtf8(unsigned index) const;
-
-    bool isPublic() const { return accessFlags_ & ACC_PUBLIC; }
-    bool isFinal() const { return accessFlags_ & ACC_FINAL; }
-    bool isSuper() const { return accessFlags_ & ACC_SUPER; }
-    bool isInterface() const { return accessFlags_ & ACC_INTERFACE; }
-    bool isAbstract() const { return accessFlags_ & ACC_ABSTRACT; }
-
-    unsigned getThisClassIndex() const { return thisClassIdx_; }
-    ConstantClass* getThisClass() const {
-      return getConstantClass(thisClassIdx_);
-    }
-    unsigned getSuperClassIndex() const { return superClassIdx_; }
-    ConstantClass* getSuperClass() const {
-      return superClassIdx_ ? getConstantClass(superClassIdx_) : NULL;
-    }
-
-    unsigned getNumInterfaces() const { return interfaces_.size(); }
-    unsigned getInterfaceIndex(unsigned i) const { return interfaces_[i]; }
-    ConstantClass* getInterface(unsigned i) const {
-      return getConstantClass(getInterfaceIndex(i));
-    }
-
-    const Fields& getFields() const { return fields_; }
-
-    const Methods& getMethods() const { return methods_; }
-
-    const Attributes& getAttributes() const { return attributes_; }
-
-    bool isNativeMethodOverloaded(const Method& method) const;
-
-    std::ostream& dump(std::ostream& os) const;
-
-  private:
-    uint16_t majorV_;
-    uint16_t minorV_;
-    ConstantPool cPool_;
-    uint16_t accessFlags_;
-    uint16_t thisClassIdx_;
-    uint16_t superClassIdx_;
-    std::vector<uint16_t> interfaces_;
-    Fields fields_;
-    Methods methods_;
-    Attributes attributes_;
-
-    ClassFile(std::istream& is);
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const ClassFile& c) {
-    return c.dump(os);
-  }
-
-  class Constant {
-  protected:
-    const ClassFile* parent_;
-
-    Constant(const ClassFile* cf)
-      : parent_(cf) { }
-
-  public:
-    enum Tag {
-      CLASS = 7,
-      FIELD_REF = 9,
-      METHOD_REF = 10,
-      INTERFACE_METHOD_REF = 11,
-      STRING = 8,
-      INTEGER = 3,
-      FLOAT = 4,
-      LONG = 5,
-      DOUBLE = 6,
-      NAME_AND_TYPE = 12,
-      UTF8 = 1
-    };
-
-    static Constant* readConstant(const ClassFile* cf, std::istream& is);
-
-    virtual bool isSingleSlot() { return true; }
-    bool isDoubleSlot() { return !isSingleSlot(); }
-    const ClassFile* getParent() { return parent_; }
-
-    virtual ~Constant();
-
-    virtual std::ostream& dump(std::ostream& os) const = 0;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Constant& c) {
-    return c.dump(os);
-  }
-
-  class ConstantClass : public Constant {
-    uint16_t nameIdx_;
-  public:
-    ConstantClass(const ClassFile* cf, std::istream& is);
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const {
-      return parent_->getConstantUtf8(nameIdx_);
-    }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantMemberRef : public Constant {
-  protected:
-    uint16_t classIdx_;
-    uint16_t nameAndTypeIdx_;
-    ConstantMemberRef(const ClassFile* cf, std::istream& is);
-
-  public:
-    unsigned getClassIndex() const { return classIdx_; }
-    ConstantClass* getClass() const {
-      return parent_->getConstantClass(classIdx_);
-    }
-    unsigned getNameAndTypeIndex() const { return nameAndTypeIdx_; }
-    ConstantNameAndType* getNameAndType() const {
-      return parent_->getConstantNameAndType(nameAndTypeIdx_);
-    }
-  };
-
-  class ConstantFieldRef : public ConstantMemberRef {
-  public:
-    ConstantFieldRef(const ClassFile* cf, std::istream& is)
-      : ConstantMemberRef(cf, is) { }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantMethodRef : public ConstantMemberRef {
-  public:
-    ConstantMethodRef(const ClassFile* cf, std::istream& is)
-      : ConstantMemberRef(cf, is) { }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantInterfaceMethodRef : public ConstantMemberRef {
-  public:
-    ConstantInterfaceMethodRef(const ClassFile* cf, std::istream& is)
-      : ConstantMemberRef(cf, is) { }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantString : public Constant {
-    uint16_t stringIdx_;
-  public:
-    ConstantString(const ClassFile* cf, std::istream& is);
-    unsigned getStringIndex() const { return stringIdx_; }
-    ConstantUtf8* getValue() const {
-      return parent_->getConstantUtf8(stringIdx_);
-    }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantInteger : public Constant {
-    int32_t value_;
-  public:
-    ConstantInteger(const ClassFile* cf, std::istream& is);
-    int32_t getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantFloat : public Constant {
-    float value_;
-  public:
-    ConstantFloat(const ClassFile* cf, std::istream& is);
-    float getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantLong : public Constant {
-    int64_t value_;
-  public:
-    ConstantLong(const ClassFile* cf, std::istream& is);
-    virtual bool isSingleSlot() { return false; }
-    int64_t getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantDouble : public Constant {
-    double value_;
-  public:
-    ConstantDouble(const ClassFile* cf, std::istream& is);
-    virtual bool isSingleSlot() { return false; }
-    double getValue() const { return value_; }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantNameAndType : public Constant {
-    uint16_t nameIdx_;
-    uint16_t descriptorIdx_;
-  public:
-    ConstantNameAndType(const ClassFile* cf, std::istream& is);
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const {
-      return parent_->getConstantUtf8(nameIdx_);
-    }
-    unsigned getDescriptorIndex() const { return descriptorIdx_; }
-    ConstantUtf8* getDescriptor() const {
-      return parent_->getConstantUtf8(descriptorIdx_);
-    }
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ConstantUtf8 : public Constant {
-    std::string utf8_;
-  public:
-    ConstantUtf8(const ClassFile* cf, std::istream& is);
-    const std::string& str() const { return utf8_; }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class Member {
-  protected:
-    const ClassFile* parent_;
-    uint16_t accessFlags_;
-    uint16_t nameIdx_;
-    uint16_t descriptorIdx_;
-    Attributes attributes_;
-
-    Member(const ClassFile* parent, std::istream& is);
-    ~Member();
-
-public:
-    bool isPublic() const { return accessFlags_ & ACC_PUBLIC; }
-    bool isPrivate() const { return accessFlags_ & ACC_PRIVATE; }
-    bool isProtected() const { return accessFlags_ & ACC_PROTECTED; }
-    bool isStatic() const { return accessFlags_ & ACC_STATIC; }
-    bool isFinal() const { return accessFlags_ & ACC_FINAL; }
-
-    const ClassFile* getParent() const { return parent_; }
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const { return parent_->getConstantUtf8(nameIdx_); }
-    unsigned getDescriptorIndex() const { return descriptorIdx_; }
-    ConstantUtf8* getDescriptor() const {
-      return parent_->getConstantUtf8(descriptorIdx_);
-    }
-    const Attributes& getAttributes() const { return attributes_; }
-  };
-
-  class Field : public Member {
-  private:
-    Field(const ClassFile* parent, std::istream& is);
-
-  public:
-    static Field* readField(const ClassFile* parent, std::istream& is) {
-      return new Field(parent, is);
-    }
-
-    ~Field();
-
-    bool isVolatile() const { return accessFlags_ & ACC_VOLATILE; }
-    bool isTransient() const { return accessFlags_ & ACC_TRANSIENT; }
-
-    ConstantValueAttribute* getConstantValueAttribute() const;
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Field& f) {
-    return f.dump(os);
-  }
-
-  class Method : public Member {
-    Method(const ClassFile* parent, std::istream& is);
-
-  public:
-    static Method* readMethod(const ClassFile* parent, std::istream& is) {
-      return new Method(parent, is);
-    }
-
-    ~Method();
-
-    bool isSynchronized() const { return accessFlags_ & ACC_SYNCHRONIZED; }
-    bool isNative() const { return accessFlags_ & ACC_NATIVE; }
-    bool isAbstract() const { return accessFlags_ & ACC_ABSTRACT; }
-    bool isStrict() const { return accessFlags_ & ACC_STRICT; }
-
-    CodeAttribute* getCodeAttribute() const;
-    ExceptionsAttribute* getExceptionsAttribute() const;
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Method& m) {
-    return m.dump(os);
-  }
-
-  class Attribute {
-  protected:
-    const ClassFile* parent_;
-    uint16_t nameIdx_;
-
-    Attribute(const ClassFile* cf, uint16_t nameIdx, std::istream& is);
-
-  public:
-    static Attribute* readAttribute(const ClassFile* cf, std::istream& is);
-
-    virtual ~Attribute();
-
-    unsigned getNameIndex() const { return nameIdx_; }
-    ConstantUtf8* getName() const { return parent_->getConstantUtf8(nameIdx_); }
-
-    virtual std::ostream& dump(std::ostream& os) const;
-
-    static const std::string CONSTANT_VALUE;
-    static const std::string CODE;
-    static const std::string EXCEPTIONS;
-    static const std::string INNER_CLASSES;
-    static const std::string SYNTHETIC;
-    static const std::string SOURCE_FILE;
-    static const std::string LINE_NUMBER_TABLE;
-    static const std::string LOCAL_VARIABLE_TABLE;
-    static const std::string DEPRECATED;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os, const Attribute& a) {
-    return a.dump(os);
-  }
-
-  class ConstantValueAttribute : public Attribute {
-    uint16_t valueIdx_;
-  public:
-    ConstantValueAttribute(const ClassFile* cf,
-                           uint16_t nameIdx,
-                           std::istream& is);
-
-    unsigned getValueIndex() const { return valueIdx_; }
-    Constant* getValue() const { return parent_->getConstant(valueIdx_); }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class CodeAttribute : public Attribute {
-  public:
-    class Exception {
-      const ClassFile* parent_;
-      uint16_t startPc_;
-      uint16_t endPc_;
-      uint16_t handlerPc_;
-      uint16_t catchTypeIdx_;
-
-    public:
-      Exception(const ClassFile* cf, std::istream& is);
-
-      uint16_t getStartPc() const { return startPc_; }
-      uint16_t getEndPc() const { return endPc_; }
-      uint16_t getHandlerPc() const { return handlerPc_; }
-      uint16_t getCatchTypeIndex() const { return catchTypeIdx_; }
-      ConstantClass* getCatchType() const {
-        return catchTypeIdx_ ? NULL : parent_->getConstantClass(catchTypeIdx_);
-      }
-
-      std::ostream& dump(std::ostream& os) const;
-    };
-
-    typedef std::vector<Exception*> Exceptions;
-
-  private:
-    uint16_t maxStack_;
-    uint16_t maxLocals_;
-    uint32_t codeSize_;
-    uint8_t* code_;
-    Exceptions exceptions_;
-    Attributes attributes_;
-
-  public:
-    CodeAttribute(const ClassFile* cf, uint16_t nameIdx, std::istream& is);
-    ~CodeAttribute();
-    uint16_t getMaxStack() const { return maxStack_; }
-    uint16_t getMaxLocals() const { return maxLocals_; }
-    const uint8_t* getCode() const { return code_; }
-    uint32_t getCodeSize() const { return codeSize_; }
-    const Exceptions& getExceptions() const { return exceptions_; }
-    const Attributes& getAttributes() const { return attributes_; }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  inline std::ostream& operator<<(std::ostream& os,
-                                  const CodeAttribute::Exception& e) {
-    return e.dump(os);
-  }
-
-  class ExceptionsAttribute : public Attribute {
-  private:
-    uint16_t nameIdx_;
-    std::vector<uint16_t> exceptions_;
-
-  public:
-    ExceptionsAttribute(const ClassFile* cf,
-                        uint16_t nameIdx,
-                        std::istream& is);
-
-    unsigned getNumExceptions() const { return exceptions_.size(); }
-    unsigned getExceptionIndex(unsigned i) const { return exceptions_[i]; }
-    ConstantClass* getException(unsigned i) const {
-      return parent_->getConstantClass(getExceptionIndex(i));
-    }
-
-    std::ostream& dump(std::ostream& os) const;
-  };
-
-  class ClassFileParseError : public std::exception {
-    std::string msg_;
-  public:
-    explicit ClassFileParseError(const std::string& msg) : msg_(msg) { }
-    virtual ~ClassFileParseError() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-  class ClassFileSemanticError : public std::exception {
-    std::string msg_;
-  public:
-    explicit ClassFileSemanticError(const std::string& msg) : msg_(msg) { }
-    virtual ~ClassFileSemanticError() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-  class ClassNotFoundException : public std::exception {
-    std::string msg_;
-  public:
-    explicit ClassNotFoundException(const std::string& msg) : msg_(msg) { }
-    virtual ~ClassNotFoundException() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-  class InvocationTargetException : public std::exception {
-    std::string msg_;
-  public:
-    explicit InvocationTargetException(const std::string& msg) : msg_(msg) { }
-    virtual ~InvocationTargetException() throw();
-    virtual const char* what() const throw() { return msg_.c_str(); }
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_CLASSFILE_H
diff --git a/java/include/llvm/Java/Compiler.h b/java/include/llvm/Java/Compiler.h
deleted file mode 100644
index 03416d6..0000000
--- a/java/include/llvm/Java/Compiler.h
+++ /dev/null
@@ -1,26 +0,0 @@
-//===-- Compiler.h - Java bytecode compiler ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode to LLVM bytecode compiler.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_COMPILER_H
-#define LLVM_JAVA_COMPILER_H
-
-#include <llvm/Module.h>
-#include <memory>
-
-namespace llvm { namespace Java {
-
-  std::auto_ptr<Module> compile(const std::string& className);
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_COMPILER_H
diff --git a/java/include/llvm/Java/jni.h b/java/include/llvm/Java/jni.h
deleted file mode 100644
index af3094c..0000000
--- a/java/include/llvm/Java/jni.h
+++ /dev/null
@@ -1,1425 +0,0 @@
-/* jni.h
-   Copyright (C) 2001, 2004  Free Software Foundation, Inc.
-
-This file is part of GNU Classpath.
-
-GNU Classpath is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU Classpath is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
-
-Linking this library statically or dynamically with other modules is
-making a combined work based on this library.  Thus, the terms and
-conditions of the GNU General Public License cover the whole
-combination.
-
-As a special exception, the copyright holders of this library give you
-permission to link this library with independent modules to produce an
-executable, regardless of the license terms of these independent
-modules, and to copy and distribute the resulting executable under
-terms of your choice, provided that you also meet, for each linked
-independent module, the terms and conditions of the license of that
-module.  An independent module is a module which is not derived from
-or based on this library.  If you modify this library, you may extend
-this exception to your version of the library, but you are not
-obligated to do so.  If you do not wish to do so, delete this
-exception statement from your version. */
-
-/* This file is based on jni.h from libgcj */
-
-#ifndef __CLASSPATH_JNI_H__
-#define __CLASSPATH_JNI_H__
-
-#include <stdarg.h>
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-/* Define some defaults */
-#define JNICALL
-#define JNIEXPORT
-
-typedef unsigned char jboolean;
-typedef signed char jbyte;
-typedef unsigned short jchar;
-typedef short jshort;
-typedef int jint;
-typedef long long jlong;
-typedef float jfloat;
-typedef double jdouble;
-
-typedef jint jsize;
-
-#ifdef __cplusplus
-}
-#endif
-
-/* Define VM internal types */
-struct llvm_java_object_base;
-typedef struct llvm_java_object_base* jobject;
-typedef unsigned jfieldID;
-typedef unsigned jmethodID;
-
-#ifdef __cplusplus
-
-class _jobject {};
-class _jclass : public _jobject {};
-class _jthrowable : public _jobject {};
-class _jstring : public _jobject {};
-class _jarray : public _jobject {};
-class _jbooleanArray : public _jarray {};
-class _jbyteArray : public _jarray {};
-class _jcharArray : public _jarray {};
-class _jshortArray : public _jarray {};
-class _jintArray : public _jarray {};
-class _jlongArray : public _jarray {};
-class _jfloatArray : public _jarray {};
-class _jdoubleArray : public _jarray {};
-class _jobjectArray : public _jarray {};
-
-typedef _jobject *jobject;
-typedef _jclass *jclass;
-typedef _jthrowable *jthrowable;
-typedef _jstring *jstring;
-typedef _jarray *jarray;
-typedef _jbooleanArray *jbooleanArray;
-typedef _jbyteArray *jbyteArray;
-typedef _jcharArray *jcharArray;
-typedef _jshortArray *jshortArray;
-typedef _jintArray *jintArray;
-typedef _jlongArray *jlongArray;
-typedef _jfloatArray *jfloatArray;
-typedef _jdoubleArray *jdoubleArray;
-typedef _jobjectArray *jobjectArray;
-
-typedef struct _Jv_JNIEnv JNIEnv;
-typedef struct _Jv_JavaVM JavaVM;
-
-#else /* __cplusplus */
-
-
-typedef jobject jclass;
-typedef jobject jstring;
-typedef jobject jarray;
-typedef jobject jthrowable;
-typedef jobject jobjectArray;
-typedef jobject jbyteArray;
-typedef jobject jshortArray;
-typedef jobject jintArray;
-typedef jobject jlongArray;
-typedef jobject jbooleanArray;
-typedef jobject jcharArray;
-typedef jobject jfloatArray;
-typedef jobject jdoubleArray;
-
-/* Dummy defines.  */
-typedef const struct JNINativeInterface *JNIEnv;
-typedef const struct JNIInvokeInterface *JavaVM;
-
-#endif /* __cplusplus */
-
-#define _Jv_va_list va_list
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif /* __cplusplus */
-
-typedef union jvalue
-{
-  jboolean z;
-  jbyte    b;
-  jchar    c;
-  jshort   s;
-  jint     i;
-  jlong    j;
-  jfloat   f;
-  jdouble  d;
-  jobject  l;
-} jvalue;
-
-/* Used for jboolean type  */
-#define JNI_TRUE  1
-#define JNI_FALSE 0
-
-/* Used when releasing array elements.  */
-#define JNI_COMMIT 1
-#define JNI_ABORT  2
-
-/* FIXME: Could be wrong */
-typedef jobject jweak;
-
-/* Version numbers.  */
-#define JNI_VERSION_1_1 0x00010001 /* JNI version 1.1 */
-#define JNI_VERSION_1_2 0x00010002 /* JNI version 1.2 */
-#define JNI_VERSION_1_4 0x00010004 /* JNI version 1.4 */
-
-/* Error codes */
-#define JNI_OK            0
-#define JNI_ERR          (-1)
-#define JNI_EDETACHED    (-2)
-#define JNI_EVERSION     (-3)
-
-/* These functions might be defined in libraries which we load; the
-   JNI implementation calls them at the appropriate times.  */
-JNIEXPORT jint JNICALL JNI_OnLoad (JavaVM *, void *);
-JNIEXPORT void JNICALL JNI_OnUnload (JavaVM *, void *);
-
-/* These functions are called by user code to start using the
-   invocation API.  */
-JNIEXPORT jint JNICALL JNI_GetDefaultJavaVMInitArgs (void *);
-JNIEXPORT jint JNICALL JNI_CreateJavaVM (JavaVM **, void **, void *);
-JNIEXPORT jint JNICALL JNI_GetCreatedJavaVMs(JavaVM **, jsize, jsize *);
-
-
-/* This structure is used when registering native methods.  */
-typedef struct
-{
-  char *name;
-  char *signature;
-  void *fnPtr;
-} JNINativeMethod;
-
-struct JNINativeInterface
-{
-  void *reserved0;					       /* 0 */
-  void *reserved1;					       /* 1 */
-  void *reserved2;					       /* 2 */
-  void *reserved3;					       /* 3 */
-
-  jint     (JNICALL *GetVersion)                   (JNIEnv *);                               /* 4 */
-  jclass   (JNICALL *DefineClass)                  (JNIEnv *, const char *, jobject, const jbyte *, jsize); /* 5 */
-  jclass   (JNICALL *FindClass)                    (JNIEnv *, const char *);                 /* 6 */
-
-  jmethodID (JNICALL *FromReflectedMethod)	   (JNIEnv *, jobject);                      /* 7 */
-  jfieldID  (JNICALL *FromReflectedField)	   (JNIEnv *, jobject);                      /* 8 */
-  jobject   (JNICALL *ToReflectedMethod)	   (JNIEnv *, jclass, jmethodID, jboolean);  /* 9 */
-
-  jclass   (JNICALL *GetSuperclass)                (JNIEnv *, jclass);                       /* 10 */
-  jboolean (JNICALL *IsAssignableFrom)             (JNIEnv *, jclass, jclass);               /* 11 */
-
-  jobject  (JNICALL *ToReflectedField)		   (JNIEnv *, jclass, jfieldID, jboolean);   /* 12 */
-
-  jint     (JNICALL *Throw)                        (JNIEnv *, jthrowable);                   /* 13 */
-  jint     (JNICALL *ThrowNew)                     (JNIEnv *, jclass, const char *);         /* 14 */
-  jthrowable (JNICALL *ExceptionOccurred)          (JNIEnv *);                               /* 15 */
-  void     (JNICALL *ExceptionDescribe)            (JNIEnv *);                               /* 16 */
-  void     (JNICALL *ExceptionClear)               (JNIEnv *);                               /* 17 */
-  void     (JNICALL *FatalError)                   (JNIEnv *, const char *);                 /* 18 */
-
-  jint     (JNICALL *PushLocalFrame)		   (JNIEnv *, jint);                         /* 19 */
-  jobject  (JNICALL *PopLocalFrame)		   (JNIEnv *, jobject);                      /* 20 */
-
-  jobject  (JNICALL *NewGlobalRef)                 (JNIEnv *, jobject);                      /* 21 */
-  void     (JNICALL *DeleteGlobalRef)              (JNIEnv *, jobject);                      /* 22 */
-  void     (JNICALL *DeleteLocalRef)               (JNIEnv *, jobject);                      /* 23 */
-  jboolean (JNICALL *IsSameObject)                 (JNIEnv *, jobject, jobject);             /* 24 */
-
-  jobject  (JNICALL *NewLocalRef)		   (JNIEnv *, jobject);                      /* 25 */
-  jint     (JNICALL *EnsureLocalCapacity)	   (JNIEnv *, jint);                         /* 26 */
-
-  jobject  (JNICALL *AllocObject)                  (JNIEnv *, jclass);                       /* 27 */
-  jobject (JNICALL *NewObject)			   (JNIEnv *, jclass, jmethodID, ...);       /* 28 */
-  jobject (JNICALL *NewObjectV)			   (JNIEnv *, jclass, jmethodID, _Jv_va_list); /* 29 */
-  jobject (JNICALL *NewObjectA)			   (JNIEnv *, jclass, jmethodID, jvalue *);  /* 30 */
-
-  jclass   (JNICALL *GetObjectClass)               (JNIEnv *, jobject);                      /* 31 */
-  jboolean (JNICALL *IsInstanceOf)                 (JNIEnv *, jobject, jclass);              /* 32 */
-  jmethodID (JNICALL *GetMethodID)                 (JNIEnv *, jclass, const char *, const char *); /* 33 */
-
-  jobject	(JNICALL *CallObjectMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 34 */
-  jobject	(JNICALL *CallObjectMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 35 */
-  jobject	(JNICALL *CallObjectMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 36 */
-  jboolean	(JNICALL *CallBooleanMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 37 */
-  jboolean	(JNICALL *CallBooleanMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 38 */
-  jboolean	(JNICALL *CallBooleanMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 39 */
-  jbyte	(JNICALL *CallByteMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 40 */
-  jbyte	(JNICALL *CallByteMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 41 */
-  jbyte	(JNICALL *CallByteMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 42 */
-  jchar	(JNICALL *CallCharMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 43 */
-  jchar	(JNICALL *CallCharMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 44 */
-  jchar	(JNICALL *CallCharMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 45 */
-  jshort	(JNICALL *CallShortMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 46 */
-  jshort	(JNICALL *CallShortMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 47 */
-  jshort	(JNICALL *CallShortMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 48 */
-  jint		(JNICALL *CallIntMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 49 */
-  jint		(JNICALL *CallIntMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 50 */
-  jint		(JNICALL *CallIntMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 51 */
-  jlong	(JNICALL *CallLongMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 52 */
-  jlong	(JNICALL *CallLongMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 53 */
-  jlong	(JNICALL *CallLongMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 54 */
-  jfloat	(JNICALL *CallFloatMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 55 */
-  jfloat	(JNICALL *CallFloatMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 56 */
-  jfloat	(JNICALL *CallFloatMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 57 */
-  jdouble	(JNICALL *CallDoubleMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 58 */
-  jdouble	(JNICALL *CallDoubleMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 59 */
-  jdouble	(JNICALL *CallDoubleMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 60 */
-  void	(JNICALL *CallVoidMethod)	   (JNIEnv *, jobject, jmethodID, ...);         /* 61 */
-  void	(JNICALL *CallVoidMethodV)	   (JNIEnv *, jobject, jmethodID, _Jv_va_list); /* 62 */
-  void	(JNICALL *CallVoidMethodA)	   (JNIEnv *, jobject, jmethodID, jvalue *);    /* 63 */
-
-  jobject   (JNICALL *CallNonvirtualObjectMethod)  (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 64 */
-  jobject   (JNICALL *CallNonvirtualObjectMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 65 */
-  jobject   (JNICALL *CallNonvirtualObjectMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 66 */
-  jboolean  (JNICALL *CallNonvirtualBooleanMethod) (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 67 */
-  jboolean  (JNICALL *CallNonvirtualBooleanMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list); /* 68 */
-  jboolean  (JNICALL *CallNonvirtualBooleanMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);    /* 69 */
-  jbyte     (JNICALL *CallNonvirtualByteMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 70 */
-  jbyte     (JNICALL *CallNonvirtualByteMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 71 */
-  jbyte     (JNICALL *CallNonvirtualByteMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 72 */
-  jchar     (JNICALL *CallNonvirtualCharMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 73 */
-  jchar     (JNICALL *CallNonvirtualCharMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 74 */
-  jchar     (JNICALL *CallNonvirtualCharMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 75 */
-  jshort    (JNICALL *CallNonvirtualShortMethod)   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 76 */
-  jshort    (JNICALL *CallNonvirtualShortMethodV)  (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 77 */
-  jshort    (JNICALL *CallNonvirtualShortMethodA)  (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 78 */
-  jint	    (JNICALL *CallNonvirtualIntMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 79 */
-  jint	    (JNICALL *CallNonvirtualIntMethodV)	   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 80 */
-  jint	    (JNICALL *CallNonvirtualIntMethodA)	   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 81 */
-  jlong     (JNICALL *CallNonvirtualLongMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 82 */
-  jlong     (JNICALL *CallNonvirtualLongMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 83 */
-  jlong     (JNICALL *CallNonvirtualLongMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 84 */
-  jfloat    (JNICALL *CallNonvirtualFloatMethod)   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 85 */
-  jfloat    (JNICALL *CallNonvirtualFloatMethodV)  (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 86 */
-  jfloat    (JNICALL *CallNonvirtualFloatMethodA)  (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 87 */
-  jdouble   (JNICALL *CallNonvirtualDoubleMethod)  (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 88 */
-  jdouble   (JNICALL *CallNonvirtualDoubleMethodV) (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 89 */
-  jdouble   (JNICALL *CallNonvirtualDoubleMethodA) (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 90 */
-  void      (JNICALL *CallNonvirtualVoidMethod)	   (JNIEnv *, jobject, jclass, jmethodID, ...);          /* 91 */
-  void      (JNICALL *CallNonvirtualVoidMethodV)   (JNIEnv *, jobject, jclass, jmethodID, _Jv_va_list);  /* 92 */
-  void      (JNICALL *CallNonvirtualVoidMethodA)   (JNIEnv *, jobject, jclass, jmethodID, jvalue *);     /* 93 */
-
-  jfieldID      (JNICALL *GetFieldID)              (JNIEnv *, jclass, const char *, const char *);  /* 94 */
-
-  jobject  (JNICALL *GetObjectField)               (JNIEnv *, jobject, jfieldID);                   /* 95 */
-  jboolean (JNICALL *GetBooleanField)              (JNIEnv *, jobject, jfieldID);                   /* 96 */
-  jbyte    (JNICALL *GetByteField)                 (JNIEnv *, jobject, jfieldID);                   /* 97 */
-  jchar    (JNICALL *GetCharField)                 (JNIEnv *, jobject, jfieldID);                   /* 98 */
-  jshort   (JNICALL *GetShortField)                (JNIEnv *, jobject, jfieldID);                   /* 99 */
-  jint     (JNICALL *GetIntField)                  (JNIEnv *, jobject, jfieldID);                   /* 100 */
-  jlong    (JNICALL *GetLongField)                 (JNIEnv *, jobject, jfieldID);                   /* 101 */
-  jfloat   (JNICALL *GetFloatField)                (JNIEnv *, jobject, jfieldID);                   /* 102 */
-  jdouble  (JNICALL *GetDoubleField)               (JNIEnv *, jobject, jfieldID);                   /* 103 */
-
-  void		(JNICALL *SetObjectField)	   (JNIEnv *, jobject, jfieldID, jobject);          /* 104 */
-  void		(JNICALL *SetBooleanField)	   (JNIEnv *, jobject, jfieldID, jboolean);         /* 105 */
-  void		(JNICALL *SetByteField)		   (JNIEnv *, jobject, jfieldID, jbyte);            /* 106 */
-  void		(JNICALL *SetCharField)		   (JNIEnv *, jobject, jfieldID, jchar);            /* 107 */
-  void		(JNICALL *SetShortField)	   (JNIEnv *, jobject, jfieldID, jshort);           /* 108 */
-  void		(JNICALL *SetIntField)		   (JNIEnv *, jobject, jfieldID, jint);             /* 109 */
-  void		(JNICALL *SetLongField)		   (JNIEnv *, jobject, jfieldID, jlong);            /* 110 */
-  void		(JNICALL *SetFloatField)	   (JNIEnv *, jobject, jfieldID, jfloat);           /* 111 */
-  void		(JNICALL *SetDoubleField)	   (JNIEnv *, jobject, jfieldID, jdouble);          /* 112 */
-
-  jmethodID (JNICALL *GetStaticMethodID)           (JNIEnv *, jclass, const char *, const char *);  /* 113 */
-
-  jobject	(JNICALL *CallStaticObjectMethod)  (JNIEnv *, jclass, jmethodID, ...);              /* 114 */
-  jobject	(JNICALL *CallStaticObjectMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 115 */
-  jobject	(JNICALL *CallStaticObjectMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);         /* 116 */
-  jboolean	(JNICALL *CallStaticBooleanMethod) (JNIEnv *, jclass, jmethodID, ...);              /* 117 */
-  jboolean	(JNICALL *CallStaticBooleanMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);     /* 118 */
-  jboolean	(JNICALL *CallStaticBooleanMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);        /* 119 */
-  jbyte	(JNICALL *CallStaticByteMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 120 */
-  jbyte	(JNICALL *CallStaticByteMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 121 */
-  jbyte	(JNICALL *CallStaticByteMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 122 */
-  jchar	(JNICALL *CallStaticCharMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 123 */
-  jchar	(JNICALL *CallStaticCharMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 124 */
-  jchar	(JNICALL *CallStaticCharMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 125 */
-  jshort	(JNICALL *CallStaticShortMethod)   (JNIEnv *, jclass, jmethodID, ...);              /* 126 */
-  jshort	(JNICALL *CallStaticShortMethodV)  (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 127 */
-  jshort	(JNICALL *CallStaticShortMethodA)  (JNIEnv *, jclass, jmethodID, jvalue *);         /* 128 */
-  jint		(JNICALL *CallStaticIntMethod)	   (JNIEnv *, jclass, jmethodID, ...);              /* 129 */
-  jint		(JNICALL *CallStaticIntMethodV)    (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 130 */
-  jint		(JNICALL *CallStaticIntMethodA)    (JNIEnv *, jclass, jmethodID, jvalue *);         /* 131 */
-  jlong	(JNICALL *CallStaticLongMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 132 */
-  jlong	(JNICALL *CallStaticLongMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 133 */
-  jlong	(JNICALL *CallStaticLongMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 134 */
-  jfloat	(JNICALL *CallStaticFloatMethod)   (JNIEnv *, jclass, jmethodID, ...);              /* 135 */
-  jfloat	(JNICALL *CallStaticFloatMethodV)  (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 136 */
-  jfloat	(JNICALL *CallStaticFloatMethodA)  (JNIEnv *, jclass, jmethodID, jvalue *);         /* 137 */
-  jdouble	(JNICALL *CallStaticDoubleMethod)  (JNIEnv *, jclass, jmethodID, ...);              /* 138 */
-  jdouble	(JNICALL *CallStaticDoubleMethodV) (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 139 */
-  jdouble	(JNICALL *CallStaticDoubleMethodA) (JNIEnv *, jclass, jmethodID, jvalue *);         /* 140 */
-  void	(JNICALL *CallStaticVoidMethod)    (JNIEnv *, jclass, jmethodID, ...);              /* 141 */
-  void	(JNICALL *CallStaticVoidMethodV)   (JNIEnv *, jclass, jmethodID, _Jv_va_list);      /* 142 */
-  void	(JNICALL *CallStaticVoidMethodA)   (JNIEnv *, jclass, jmethodID, jvalue *);         /* 143 */
-
-  jfieldID      (JNICALL *GetStaticFieldID)        (JNIEnv *, jclass, const char *, const char *);  /* 144 */
-
-  jobject	(JNICALL *GetStaticObjectField)	   (JNIEnv *, jclass, jfieldID);                    /* 145 */
-  jboolean	(JNICALL *GetStaticBooleanField)   (JNIEnv *, jclass, jfieldID);                    /* 146 */
-  jbyte		(JNICALL *GetStaticByteField)	   (JNIEnv *, jclass, jfieldID);                    /* 147 */
-  jchar		(JNICALL *GetStaticCharField)	   (JNIEnv *, jclass, jfieldID);                    /* 148 */
-  jshort	(JNICALL *GetStaticShortField)	   (JNIEnv *, jclass, jfieldID);                    /* 149 */
-  jint		(JNICALL *GetStaticIntField)	   (JNIEnv *, jclass, jfieldID);                    /* 150 */
-  jlong		(JNICALL *GetStaticLongField)	   (JNIEnv *, jclass, jfieldID);                    /* 151 */
-  jfloat	(JNICALL *GetStaticFloatField)	   (JNIEnv *, jclass, jfieldID);                    /* 152 */
-  jdouble	(JNICALL *GetStaticDoubleField)	   (JNIEnv *, jclass, jfieldID);                    /* 153 */
-
-  void		(JNICALL *SetStaticObjectField)	   (JNIEnv *, jclass, jfieldID, jobject);           /* 154 */
-  void		(JNICALL *SetStaticBooleanField)   (JNIEnv *, jclass, jfieldID, jboolean);          /* 155 */
-  void		(JNICALL *SetStaticByteField)	   (JNIEnv *, jclass, jfieldID, jbyte);             /* 156 */
-  void		(JNICALL *SetStaticCharField)	   (JNIEnv *, jclass, jfieldID, jchar);             /* 157 */
-  void		(JNICALL *SetStaticShortField)	   (JNIEnv *, jclass, jfieldID, jshort);            /* 158 */
-  void		(JNICALL *SetStaticIntField)	   (JNIEnv *, jclass, jfieldID, jint);              /* 159 */
-  void		(JNICALL *SetStaticLongField)	   (JNIEnv *, jclass, jfieldID, jlong);             /* 160 */
-  void		(JNICALL *SetStaticFloatField)	   (JNIEnv *, jclass, jfieldID, jfloat);            /* 161 */
-  void		(JNICALL *SetStaticDoubleField)	   (JNIEnv *, jclass, jfieldID, jdouble);           /* 162 */
-
-  jstring  (JNICALL *NewString)                    (JNIEnv *, const jchar *, jsize);                /* 163 */
-  jsize    (JNICALL *GetStringLength)              (JNIEnv *, jstring);                             /* 164 */
-  const jchar * (JNICALL *GetStringChars)          (JNIEnv *, jstring, jboolean *);                 /* 165 */
-  void     (JNICALL *ReleaseStringChars)           (JNIEnv *, jstring, const jchar *);              /* 166 */
-  jstring  (JNICALL *NewStringUTF)                 (JNIEnv *, const char *);                        /* 167 */
-  jsize    (JNICALL *GetStringUTFLength)           (JNIEnv *, jstring);                             /* 168 */
-  const char * (JNICALL *GetStringUTFChars)       (JNIEnv *, jstring, jboolean *);                 /* 169 */
-  void     (JNICALL *ReleaseStringUTFChars)        (JNIEnv *, jstring, const char *);               /* 170 */
-  jsize    (JNICALL *GetArrayLength)               (JNIEnv *, jarray);                              /* 171 */
-  jobjectArray   (JNICALL *NewObjectArray)         (JNIEnv *, jsize, jclass, jobject);              /* 172 */
-  jobject  (JNICALL *GetObjectArrayElement)        (JNIEnv *, jobjectArray, jsize);                 /* 173 */
-  void     (JNICALL *SetObjectArrayElement)        (JNIEnv *, jobjectArray, jsize, jobject);        /* 174 */
-
-  jbooleanArray (JNICALL *NewBooleanArray)	   (JNIEnv *, jsize);                               /* 175 */
-  jbyteArray    (JNICALL *NewByteArray)		   (JNIEnv *, jsize);                               /* 176 */
-  jcharArray    (JNICALL *NewCharArray)		   (JNIEnv *, jsize);                               /* 177 */
-  jshortArray   (JNICALL *NewShortArray)	   (JNIEnv *, jsize);                               /* 178 */
-  jintArray     (JNICALL *NewIntArray)		   (JNIEnv *, jsize);                               /* 179 */
-  jlongArray    (JNICALL *NewLongArray)		   (JNIEnv *, jsize);                               /* 180 */
-  jfloatArray   (JNICALL *NewFloatArray)	   (JNIEnv *, jsize);                               /* 181 */
-  jdoubleArray  (JNICALL *NewDoubleArray)	   (JNIEnv *, jsize);                               /* 182 */
-
-  jboolean *	(JNICALL *GetBooleanArrayElements) (JNIEnv *, jbooleanArray, jboolean *);           /* 183 */
-  jbyte *	(JNICALL *GetByteArrayElements)	   (JNIEnv *, jbyteArray, jboolean *);              /* 184 */
-  jchar *	(JNICALL *GetCharArrayElements)	   (JNIEnv *, jcharArray, jboolean *);              /* 185 */
-  jshort *	(JNICALL *GetShortArrayElements)   (JNIEnv *, jshortArray, jboolean *);             /* 186 */
-  jint *	(JNICALL *GetIntArrayElements)	   (JNIEnv *, jintArray, jboolean *);               /* 187 */
-  jlong *	(JNICALL *GetLongArrayElements)	   (JNIEnv *, jlongArray, jboolean *);              /* 188 */
-  jfloat *	(JNICALL *GetFloatArrayElements)   (JNIEnv *, jfloatArray, jboolean *);             /* 189 */
-  jdouble *	(JNICALL *GetDoubleArrayElements)  (JNIEnv *, jdoubleArray, jboolean *);            /* 190 */
-
-  void		(JNICALL *ReleaseBooleanArrayElements) (JNIEnv *, jbooleanArray, jboolean *, jint); /* 191 */
-  void		(JNICALL *ReleaseByteArrayElements)    (JNIEnv *, jbyteArray, jbyte *, jint);       /* 192 */
-  void		(JNICALL *ReleaseCharArrayElements)    (JNIEnv *, jcharArray, jchar *, jint);       /* 193 */
-  void		(JNICALL *ReleaseShortArrayElements)   (JNIEnv *, jshortArray, jshort *, jint);     /* 194 */
-  void		(JNICALL *ReleaseIntArrayElements)     (JNIEnv *, jintArray, jint *, jint);         /* 195 */
-  void		(JNICALL *ReleaseLongArrayElements)    (JNIEnv *, jlongArray, jlong *, jint);       /* 196 */
-  void		(JNICALL *ReleaseFloatArrayElements)   (JNIEnv *, jfloatArray, jfloat *, jint);     /* 197 */
-  void		(JNICALL *ReleaseDoubleArrayElements)  (JNIEnv *, jdoubleArray, jdouble *, jint);   /* 198 */
-
-  void		(JNICALL *GetBooleanArrayRegion)   (JNIEnv *, jbooleanArray,jsize, jsize, jboolean *);  /* 199 */
-  void		(JNICALL *GetByteArrayRegion)	   (JNIEnv *, jbyteArray, jsize, jsize, jbyte *);       /* 200 */
-  void		(JNICALL *GetCharArrayRegion)	   (JNIEnv *, jcharArray, jsize, jsize, jchar *);       /* 201 */
-  void		(JNICALL *GetShortArrayRegion)	   (JNIEnv *, jshortArray, jsize, jsize, jshort *);     /* 202 */
-  void		(JNICALL *GetIntArrayRegion)	   (JNIEnv *, jintArray, jsize, jsize, jint *);         /* 203 */
-  void		(JNICALL *GetLongArrayRegion)	   (JNIEnv *, jlongArray, jsize, jsize, jlong *);       /* 204 */
-  void		(JNICALL *GetFloatArrayRegion)	   (JNIEnv *, jfloatArray, jsize, jsize, jfloat *);     /* 205 */
-  void		(JNICALL *GetDoubleArrayRegion)	   (JNIEnv *, jdoubleArray, jsize, jsize, jdouble *);   /* 206 */
-
-  void		(JNICALL *SetBooleanArrayRegion)   (JNIEnv *, jbooleanArray, jsize, jsize, jboolean *); /* 207 */
-  void		(JNICALL *SetByteArrayRegion)	   (JNIEnv *, jbyteArray, jsize, jsize, jbyte *);       /* 208 */
-  void		(JNICALL *SetCharArrayRegion)	   (JNIEnv *, jcharArray, jsize, jsize, jchar *);       /* 209 */
-  void		(JNICALL *SetShortArrayRegion)	   (JNIEnv *, jshortArray, jsize, jsize, jshort *);     /* 210 */
-  void		(JNICALL *SetIntArrayRegion)	   (JNIEnv *, jintArray, jsize, jsize, jint *);         /* 211 */
-  void		(JNICALL *SetLongArrayRegion)	   (JNIEnv *, jlongArray, jsize, jsize, jlong *);       /* 212 */
-  void		(JNICALL *SetFloatArrayRegion)	   (JNIEnv *, jfloatArray, jsize, jsize, jfloat *);     /* 213 */
-  void		(JNICALL *SetDoubleArrayRegion)	   (JNIEnv *, jdoubleArray, jsize, jsize, jdouble *);   /* 214 */
-
-  jint     (JNICALL *RegisterNatives)              (JNIEnv *, jclass, const JNINativeMethod *, jint);   /* 215 */
-  jint     (JNICALL *UnregisterNatives)            (JNIEnv *, jclass);                                  /* 216 */
-  jint     (JNICALL *MonitorEnter)                 (JNIEnv *, jobject);                                 /* 217 */
-  jint     (JNICALL *MonitorExit)                  (JNIEnv *, jobject);                                 /* 218 */
-  jint     (JNICALL *GetJavaVM)                    (JNIEnv *, JavaVM **);                               /* 219 */
-
-  /* ---- JNI 1.2 functions ---- */
-  void	   (JNICALL *GetStringRegion)	           (JNIEnv *, jstring, jsize, jsize, jchar *);          /* 220 */
-  void     (JNICALL *GetStringUTFRegion)	   (JNIEnv *, jstring, jsize, jsize, char *);           /* 221 */
-
-  void * (JNICALL *GetPrimitiveArrayCritical)      (JNIEnv *, jarray, jboolean *);                      /* 222 */
-  void   (JNICALL *ReleasePrimitiveArrayCritical)  (JNIEnv *, jarray, void *, jint);                    /* 223 */
-
-  const jchar * (JNICALL *GetStringCritical)       (JNIEnv *, jstring, jboolean *);                     /* 224 */
-  void          (JNICALL *ReleaseStringCritical)   (JNIEnv *, jstring, const jchar *);                  /* 225 */
-
-  jweak  (JNICALL *NewWeakGlobalRef)               (JNIEnv *, jobject);                                 /* 226 */
-  void   (JNICALL *DeleteWeakGlobalRef)            (JNIEnv *, jweak);                                   /* 227 */
-
-  jboolean	(JNICALL *ExceptionCheck)	   (JNIEnv *);                                          /* 228 */
-
-  /* ---- JNI 1.4 functions ---- */
-  jobject       (JNICALL *NewDirectByteBuffer)     (JNIEnv *, void *, jlong);                           /* 229 */
-  void *        (JNICALL *GetDirectBufferAddress)  (JNIEnv *, jobject);                                 /* 230 */
-  long          (JNICALL *GetDirectBufferCapacity) (JNIEnv *, jobject);                                 /* 231 */
-
-};
-
-#ifdef __cplusplus
-} /* Extern "C" */
-
-struct _Jv_JNIEnv
-{
-  /* The method table.  */
-  const struct JNINativeInterface *p;
-
-  jint GetVersion ()
-  { return p->GetVersion (this); }
-
-  jclass DefineClass (const char* char0, jobject obj0, const jbyte * val1, jsize val2)
-  { return p->DefineClass (this, char0, obj0, val1, val2); }
-
-  jclass FindClass (const char * val0)
-  { return p->FindClass (this, val0); }
-
-  jmethodID FromReflectedMethod (jobject obj0)
-  { return p->FromReflectedMethod (this, obj0); }
-
-  jfieldID FromReflectedField (jobject obj0)
-  { return p->FromReflectedField (this, obj0); }
-
-  jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
-  { return p->ToReflectedMethod (this, cl0, meth1, val2); }
-
-  jclass GetSuperclass (jclass cl0)
-  { return p->GetSuperclass (this, cl0); }
-
-  jboolean IsAssignableFrom (jclass cl0, jclass cl1)
-  { return p->IsAssignableFrom (this, cl0, cl1); }
-
-  jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
-  { return p->ToReflectedField (this, cl0, fld1, val2); }
-
-  jint Throw (jthrowable val0)
-  { return p->Throw (this, val0); }
-
-  jint ThrowNew (jclass cl0, const char * val1)
-  { return p->ThrowNew (this, cl0, val1); }
-
-  jthrowable ExceptionOccurred ()
-  { return p->ExceptionOccurred (this); }
-
-  void ExceptionDescribe ()
-  { p->ExceptionDescribe (this); }
-
-  void ExceptionClear ()
-  { p->ExceptionClear (this); }
-
-  void FatalError (const char * val0)
-  { p->FatalError (this, val0); }
-
-  jint PushLocalFrame (jint val0)
-  { return p->PushLocalFrame (this, val0); }
-
-  jobject PopLocalFrame (jobject obj0)
-  { return p->PopLocalFrame (this, obj0); }
-
-  jobject NewGlobalRef (jobject obj0)
-  { return p->NewGlobalRef (this, obj0); }
-
-  void DeleteGlobalRef (jobject obj0)
-  { p->DeleteGlobalRef (this, obj0); }
-
-  void DeleteLocalRef (jobject obj0)
-  { p->DeleteLocalRef (this, obj0); }
-
-  jboolean IsSameObject (jobject obj0, jobject obj1)
-  { return p->IsSameObject (this, obj0, obj1); }
-
-  jobject NewLocalRef (jobject obj0)
-  { return p->NewLocalRef (this, obj0); }
-
-  jint EnsureLocalCapacity (jint val0)
-  { return p->EnsureLocalCapacity (this, val0); }
-
-  jobject AllocObject (jclass cl0)
-  { return p->AllocObject (this, cl0); }
-
-  jobject NewObject (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jobject result = p->NewObjectV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject NewObjectV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->NewObjectV (this, cl0, meth1, val2); }
-
-  jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->NewObjectA (this, cl0, meth1, val2); }
-
-  jclass GetObjectClass (jobject obj0)
-  { return p->GetObjectClass (this, obj0); }
-
-  jboolean IsInstanceOf (jobject obj0, jclass cl1)
-  { return p->IsInstanceOf (this, obj0, cl1); }
-
-  jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetMethodID (this, cl0, val1, val2); }
-
-  jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject CallObjectMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallObjectMethodV (this, obj0, meth1, val2); }
-
-  jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallObjectMethodA (this, obj0, meth1, val2); }
-
-  jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
-
-  jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
-
-  jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jbyte CallByteMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallByteMethodV (this, obj0, meth1, val2); }
-
-  jbyte CallByteMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallByteMethodA (this, obj0, meth1, val2); }
-
-  jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jchar result = p->CallCharMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jchar CallCharMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallCharMethodV (this, obj0, meth1, val2); }
-
-  jchar CallCharMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallCharMethodA (this, obj0, meth1, val2); }
-
-  jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jshort result = p->CallShortMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jshort CallShortMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallShortMethodV (this, obj0, meth1, val2); }
-
-  jshort CallShortMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallShortMethodA (this, obj0, meth1, val2); }
-
-  jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jint result = p->CallIntMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jint CallIntMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallIntMethodV (this, obj0, meth1, val2); }
-
-  jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallIntMethodA (this, obj0, meth1, val2); }
-
-  jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jlong result = p->CallLongMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jlong CallLongMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallLongMethodV (this, obj0, meth1, val2); }
-
-  jlong CallLongMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallLongMethodA (this, obj0, meth1, val2); }
-
-  jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallFloatMethodV (this, obj0, meth1, val2); }
-
-  jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallFloatMethodA (this, obj0, meth1, val2); }
-
-  jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
-
-  jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
-
-  void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    p->CallVoidMethodV (this, obj0, meth1, args);
-    va_end (args);
-  }
-
-  void CallVoidMethodV (jobject obj0, jmethodID meth1, _Jv_va_list val2)
-  { p->CallVoidMethodV (this, obj0, meth1, val2); }
-
-  void CallVoidMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
-  { p->CallVoidMethodA (this, obj0, meth1, val2); }
-
-  jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
-
-  jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
-
-  jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
-
-  jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
-
-  jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
-
-  jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
-
-  jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
-
-  jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
-
-  jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
-
-  jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
-
-  jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
-
-  jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
-
-  jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
-
-  jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
-
-  jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
-
-  jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
-
-  jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-    return result;
-  }
-
-  jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
-
-  jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
-
-  void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth2);
-    p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
-    va_end (args);
-  }
-
-  void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, _Jv_va_list val3)
-  { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
-
-  void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, jvalue * val3)
-  { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
-
-  jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetFieldID (this, cl0, val1, val2); }
-
-  jobject GetObjectField (jobject obj0, jfieldID fld1)
-  { return p->GetObjectField (this, obj0, fld1); }
-
-  jboolean GetBooleanField (jobject obj0, jfieldID fld1)
-  { return p->GetBooleanField (this, obj0, fld1); }
-
-  jbyte GetByteField (jobject obj0, jfieldID fld1)
-  { return p->GetByteField (this, obj0, fld1); }
-
-  jchar GetCharField (jobject obj0, jfieldID fld1)
-  { return p->GetCharField (this, obj0, fld1); }
-
-  jshort GetShortField (jobject obj0, jfieldID fld1)
-  { return p->GetShortField (this, obj0, fld1); }
-
-  jint GetIntField (jobject obj0, jfieldID fld1)
-  { return p->GetIntField (this, obj0, fld1); }
-
-  jlong GetLongField (jobject obj0, jfieldID fld1)
-  { return p->GetLongField (this, obj0, fld1); }
-
-  jfloat GetFloatField (jobject obj0, jfieldID fld1)
-  { return p->GetFloatField (this, obj0, fld1); }
-
-  jdouble GetDoubleField (jobject obj0, jfieldID fld1)
-  { return p->GetDoubleField (this, obj0, fld1); }
-
-  void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
-  { p->SetObjectField (this, obj0, fld1, obj2); }
-
-  void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
-  { p->SetBooleanField (this, obj0, fld1, val2); }
-
-  void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
-  { p->SetByteField (this, obj0, fld1, val2); }
-
-  void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
-  { p->SetCharField (this, obj0, fld1, val2); }
-
-  void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
-  { p->SetShortField (this, obj0, fld1, val2); }
-
-  void SetIntField (jobject obj0, jfieldID fld1, jint val2)
-  { p->SetIntField (this, obj0, fld1, val2); }
-
-  void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
-  { p->SetLongField (this, obj0, fld1, val2); }
-
-  void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
-  { p->SetFloatField (this, obj0, fld1, val2); }
-
-  void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
-  { p->SetDoubleField (this, obj0, fld1, val2); }
-
-  jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetStaticMethodID (this, cl0, val1, val2); }
-
-  jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
-
-  jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
-
-  jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
-
-  jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
-
-  jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
-
-  jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
-
-  jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
-
-  jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
-
-  jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
-
-  jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
-
-  jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
-
-  jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
-
-  jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
-
-  jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
-
-  jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
-
-  jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
-
-  jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
-    va_end (args);
-    return result;
-  }
-
-  jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
-
-  jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
-
-  void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
-  {
-    _Jv_va_list args;
-    va_start (args, meth1);
-    p->CallStaticVoidMethodV (this, cl0, meth1, args);
-    va_end (args);
-  }
-
-  void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, _Jv_va_list val2)
-  { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
-
-  void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, jvalue * val2)
-  { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
-
-  jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
-  { return p->GetStaticFieldID (this, cl0, val1, val2); }
-
-  jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticObjectField (this, cl0, fld1); }
-
-  jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticBooleanField (this, cl0, fld1); }
-
-  jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticByteField (this, cl0, fld1); }
-
-  jchar GetStaticCharField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticCharField (this, cl0, fld1); }
-
-  jshort GetStaticShortField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticShortField (this, cl0, fld1); }
-
-  jint GetStaticIntField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticIntField (this, cl0, fld1); }
-
-  jlong GetStaticLongField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticLongField (this, cl0, fld1); }
-
-  jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticFloatField (this, cl0, fld1); }
-
-  jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
-  { return p->GetStaticDoubleField (this, cl0, fld1); }
-
-  void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
-  { p->SetStaticObjectField (this, cl0, fld1, obj2); }
-
-  void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
-  { p->SetStaticBooleanField (this, cl0, fld1, val2); }
-
-  void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
-  { p->SetStaticByteField (this, cl0, fld1, val2); }
-
-  void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
-  { p->SetStaticCharField (this, cl0, fld1, val2); }
-
-  void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
-  { p->SetStaticShortField (this, cl0, fld1, val2); }
-
-  void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
-  { p->SetStaticIntField (this, cl0, fld1, val2); }
-
-  void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
-  { p->SetStaticLongField (this, cl0, fld1, val2); }
-
-  void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
-  { p->SetStaticFloatField (this, cl0, fld1, val2); }
-
-  void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
-  { p->SetStaticDoubleField (this, cl0, fld1, val2); }
-
-  jstring NewString (const jchar * val0, jsize val1)
-  { return p->NewString (this, val0, val1); }
-
-  jsize GetStringLength (jstring val0)
-  { return p->GetStringLength (this, val0); }
-
-  const jchar * GetStringChars (jstring val0, jboolean * val1)
-  { return p->GetStringChars (this, val0, val1); }
-
-  void ReleaseStringChars (jstring val0, const jchar * val1)
-  { p->ReleaseStringChars (this, val0, val1); }
-
-  jstring NewStringUTF (const char * val0)
-  { return p->NewStringUTF (this, val0); }
-
-  jsize GetStringUTFLength (jstring val0)
-  { return p->GetStringUTFLength (this, val0); }
-
-  const char * GetStringUTFChars (jstring val0, jboolean * val1)
-  { return p->GetStringUTFChars (this, val0, val1); }
-
-  void ReleaseStringUTFChars (jstring val0, const char * val1)
-  { p->ReleaseStringUTFChars (this, val0, val1); }
-
-  jsize GetArrayLength (jarray val0)
-  { return p->GetArrayLength (this, val0); }
-
-  jobjectArray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
-  { return p->NewObjectArray (this, val0, cl1, obj2); }
-
-  jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
-  { return p->GetObjectArrayElement (this, val0, val1); }
-
-  void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
-  { p->SetObjectArrayElement (this, val0, val1, obj2); }
-
-  jbooleanArray NewBooleanArray (jsize val0)
-  { return p->NewBooleanArray (this, val0); }
-
-  jbyteArray NewByteArray (jsize val0)
-  { return p->NewByteArray (this, val0); }
-
-  jcharArray NewCharArray (jsize val0)
-  { return p->NewCharArray (this, val0); }
-
-  jshortArray NewShortArray (jsize val0)
-  { return p->NewShortArray (this, val0); }
-
-  jintArray NewIntArray (jsize val0)
-  { return p->NewIntArray (this, val0); }
-
-  jlongArray NewLongArray (jsize val0)
-  { return p->NewLongArray (this, val0); }
-
-  jfloatArray NewFloatArray (jsize val0)
-  { return p->NewFloatArray (this, val0); }
-
-  jdoubleArray NewDoubleArray (jsize val0)
-  { return p->NewDoubleArray (this, val0); }
-
-  jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
-  { return p->GetBooleanArrayElements (this, val0, val1); }
-
-  jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
-  { return p->GetByteArrayElements (this, val0, val1); }
-
-  jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
-  { return p->GetCharArrayElements (this, val0, val1); }
-
-  jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
-  { return p->GetShortArrayElements (this, val0, val1); }
-
-  jint * GetIntArrayElements (jintArray val0, jboolean * val1)
-  { return p->GetIntArrayElements (this, val0, val1); }
-
-  jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
-  { return p->GetLongArrayElements (this, val0, val1); }
-
-  jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
-  { return p->GetFloatArrayElements (this, val0, val1); }
-
-  jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
-  { return p->GetDoubleArrayElements (this, val0, val1); }
-
-  void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
-  { p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
-
-  void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
-  { p->ReleaseByteArrayElements (this, val0, val1, val2); }
-
-  void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
-  { p->ReleaseCharArrayElements (this, val0, val1, val2); }
-
-  void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
-  { p->ReleaseShortArrayElements (this, val0, val1, val2); }
-
-  void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
-  { p->ReleaseIntArrayElements (this, val0, val1, val2); }
-
-  void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
-  { p->ReleaseLongArrayElements (this, val0, val1, val2); }
-
-  void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
-  { p->ReleaseFloatArrayElements (this, val0, val1, val2); }
-
-  void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
-  { p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
-
-  void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
-  { p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
-  { p->GetByteArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
-  { p->GetCharArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
-  { p->GetShortArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
-  { p->GetIntArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
-  { p->GetLongArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
-  { p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
-
-  void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
-  { p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
-  { p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
-  { p->SetByteArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
-  { p->SetCharArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
-  { p->SetShortArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
-  { p->SetIntArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
-  { p->SetLongArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
-  { p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
-
-  void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
-  { p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
-
-  jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
-  { return p->RegisterNatives (this, cl0, val1, val2); }
-
-  jint UnregisterNatives (jclass cl0)
-  { return p->UnregisterNatives (this, cl0); }
-
-  jint MonitorEnter (jobject obj0)
-  { return p->MonitorEnter (this, obj0); }
-
-  jint MonitorExit (jobject obj0)
-  { return p->MonitorExit (this, obj0); }
-
-  jint GetJavaVM (JavaVM ** val0)
-  { return p->GetJavaVM (this, val0); }
-
-  void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
-  { p->GetStringRegion (this, val0, val1, val2, val3); }
-
-  void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
-  { p->GetStringUTFRegion (this, val0, val1, val2, val3); }
-
-  void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
-  { return p->GetPrimitiveArrayCritical (this, val0, val1); }
-
-  void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
-  { p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
-
-  const jchar * GetStringCritical (jstring val0, jboolean * val1)
-  { return p->GetStringCritical (this, val0, val1); }
-
-  void ReleaseStringCritical (jstring val0, const jchar * val1)
-  { p->ReleaseStringCritical (this, val0, val1); }
-
-  jweak NewWeakGlobalRef (jobject obj0)
-  { return p->NewWeakGlobalRef (this, obj0); }
-
-  void DeleteWeakGlobalRef (jweak val0)
-  { p->DeleteWeakGlobalRef (this, val0); }
-
-  jboolean ExceptionCheck ()
-  { return p->ExceptionCheck (this); }
-
-  jobject NewDirectByteBuffer (void * val1, jlong val2)
-  { return p->NewDirectByteBuffer (this, val1, val2); }
-
-  void * GetDirectBufferAddress (jobject val1)
-  { return p->GetDirectBufferAddress (this, val1); }
-
-  long GetDirectBufferCapacity (jobject val1)
-  { return p->GetDirectBufferCapacity (this, val1); }
-
-};
-#endif /* __cplusplus */
-
-/*
- * Invocation API.
- */
-
-struct JNIInvokeInterface
-{
-  void *reserved0;
-  void *reserved1;
-  void *reserved2;
-
-  jint (JNICALL *DestroyJavaVM)               (JavaVM *);
-  jint (JNICALL *AttachCurrentThread)         (JavaVM *, void **, void *);
-  jint (JNICALL *DetachCurrentThread)         (JavaVM *);
-  jint (JNICALL *GetEnv)                      (JavaVM *, void **, jint);
-  jint (JNICALL *AttachCurrentThreadAsDaemon) (JavaVM *, void **, void *);
-
-};
-
-#ifdef __cplusplus
-
-struct _Jv_JavaVM
-{
-  const struct JNIInvokeInterface *functions;
-
-  jint DestroyJavaVM ()
-  { return functions->DestroyJavaVM (this); }
-
-  jint AttachCurrentThread (void **penv, void *args)
-  { return functions->AttachCurrentThread (this, penv, args); }
-
-  jint DetachCurrentThread ()
-  { return functions->DetachCurrentThread (this); }
-
-  jint GetEnv (void **penv, jint version)
-  { return functions->GetEnv (this, penv, version); }
-
-  jint AttachCurrentThreadAsDaemon (void **penv, void *args)
-  { return functions->AttachCurrentThreadAsDaemon (this, penv, args); }
-};
-#endif /* __cplusplus */
-
-typedef struct JavaVMAttachArgs
-{
-  jint version;			/* Must be JNI_VERSION_1_2.  */
-  char *name;			/* The name of the thread (or NULL).  */
-  jobject group;		/* Global ref of a ThreadGroup object
-				   (or NULL).  */
-} JavaVMAttachArgs;
-
-typedef struct JavaVMOption
-{
-  char *optionString;
-  void *extraInfo;
-} JavaVMOption;
-
-typedef struct JavaVMInitArgs
-{
-  /* Must be JNI_VERSION_1_2.  */
-  jint version;
-
-  /* Number of options.  */
-  jint nOptions;
-
-  /* Options to the VM.  */
-  JavaVMOption *options;
-
-  /* Whether we should ignore unrecognized options.  */
-  jboolean ignoreUnrecognized;
-} JavaVMInitArgs;
-
-
-/* Keep c-font-lock-extra-types in alphabetical order. */
-/* Local Variables: */
-/* c-font-lock-extra-types: ("\\sw+_t"
-   "JNIEnv" "JNINativeMethod" "JavaVM" "JavaVMOption" "jarray"
-   "jboolean" "jbooleanArray" "jbyte" "jbyteArray" "jchar"  "jcharArray"
-   "jclass" "jdouble" "jdoubleArray" "jfieldID" "jfloat" "jfloatArray"
-   "jint" "jintArray" "jlong" "jlongArray" "jmethodID" "jobject" "jstring" "jthrowable"
-   "jvalue" "jweak") */
-/* End: */
-#endif /* __CLASSPATH_JNI_H__ */
diff --git a/java/include/llvm/Java/types.def b/java/include/llvm/Java/types.def
deleted file mode 100644
index 21d9b12..0000000
--- a/java/include/llvm/Java/types.def
+++ /dev/null
@@ -1,45 +0,0 @@
-//===-- llvm/Java/types.def - File that describes Java primitives -*- C++ -*-=//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file contains descriptions of the various Java primitive types. This
-// is used as a central place for enumerating the different primitive types.
-//
-//===----------------------------------------------------------------------===//
-
-// NOTE: NO INCLUDE GUARD DESIRED!
-
-// Provide definitions of macros so that users of this file do not have to
-// define everything to use it...
-
-#ifdef HANDLE_NATIVE_TYPE
-HANDLE_NATIVE_TYPE(boolean)
-HANDLE_NATIVE_TYPE(byte)
-HANDLE_NATIVE_TYPE(char)
-HANDLE_NATIVE_TYPE(short)
-HANDLE_NATIVE_TYPE(int)
-HANDLE_NATIVE_TYPE(long)
-HANDLE_NATIVE_TYPE(float)
-HANDLE_NATIVE_TYPE(double)
-
-#undef HANDLE_NATIVE_TYPE
-#endif
-
-#ifdef HANDLE_TYPE
-HANDLE_TYPE(object)
-HANDLE_TYPE(boolean)
-HANDLE_TYPE(byte)
-HANDLE_TYPE(char)
-HANDLE_TYPE(short)
-HANDLE_TYPE(int)
-HANDLE_TYPE(long)
-HANDLE_TYPE(float)
-HANDLE_TYPE(double)
-
-#undef HANDLE_TYPE
-#endif
diff --git a/java/lib/ClassFile/ClassFile.cpp b/java/lib/ClassFile/ClassFile.cpp
deleted file mode 100644
index 9cb9ba9..0000000
--- a/java/lib/ClassFile/ClassFile.cpp
+++ /dev/null
@@ -1,767 +0,0 @@
-//===-- ClassFile.cpp - ClassFile class -----------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the ClassFile library. It
-// is used by the LLVM Java frontend to parse Java Class files.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "classfile"
-
-#include <llvm/Java/ClassFile.h>
-#include <llvm/ADT/STLExtras.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/Support/Debug.h>
-#include <llvm/Config/alloca.h>
-
-#include <algorithm>
-#include <cassert>
-#include <fstream>
-#include <functional>
-#include <iostream>
-#include <iterator>
-#include <map>
-
-using namespace llvm::Java;
-
-namespace {
-
-  using namespace llvm;
-
-  static cl::opt<std::string>
-  ClassPath("cp",
-            cl::desc("A : separated list of directories"),
-            cl::value_desc("class search path"),
-            cl::init(getenv("CLASSPATH") ? getenv("CLASSPATH") : ""));
-  static cl::alias
-  ClassPathA("classpath",
-             cl::desc("Alias for -cp"),
-             cl::aliasopt(ClassPath));
-
-}
-
-//===----------------------------------------------------------------------===//
-// Internal utility functions
-namespace {
-
-  uint8_t readU1(std::istream& is) {
-    char val;
-    if (!is.get(val))
-      throw ClassFileParseError("unexpected end of input");
-    return val;
-  }
-
-  uint16_t readU2(std::istream& is) {
-    uint16_t val = readU1(is);
-    return (val << 8) | readU1(is);
-  }
-
-  uint32_t readU4(std::istream& is) {
-    uint32_t val = readU2(is);
-    return (val << 16) | readU2(is);
-  }
-
-  uint64_t readU8(std::istream& is) {
-    uint64_t hi = readU4(is), lo = readU4(is);
-    return hi << 32 | lo;
-  }
-
-  float int2float(uint32_t v) {
-    union { uint32_t in; float out; } tmp;
-    tmp.in = v;
-    return tmp.out;
-  }
-
-  double long2double(uint64_t v) {
-    union { uint64_t in; double out; } tmp;
-    tmp.in = v;
-    return tmp.out;
-  }
-
-  void readFields(Fields& f, const ClassFile* parent, std::istream& is)
-  {
-    assert(f.empty() && "Should not call with a non-empty fields vector");
-    uint16_t count = readU2(is);
-    f.reserve(count);
-    while(count--)
-      f.push_back(Field::readField(parent, is));
-  }
-
-  void readMethods(Methods& m, const ClassFile* parent, std::istream& is)
-  {
-    assert(m.empty() && "Should not call with a non-empty methods vector");
-    uint16_t count = readU2(is);
-    m.reserve(count);
-    while(count--)
-      m.push_back(Method::readMethod(parent, is));
-  }
-
-  void readAttributes(Attributes& a, const ClassFile* cf, std::istream& is)
-  {
-    assert(a.empty() &&
-           "Should not call with a non-empty attributes vector");
-    uint16_t count = readU2(is);
-    a.reserve(count);
-    while(count--)
-      a.push_back(Attribute::readAttribute(cf, is));
-  }
-
-}
-
-//===----------------------------------------------------------------------===//
-// ClassFile implementation
-const ClassFile* ClassFile::readClassFile(std::istream& is)
-{
-  if (readU1(is) != 0xCA) throw ClassFileParseError("bad magic");
-  if (readU1(is) != 0xFE) throw ClassFileParseError("bad magic");
-  if (readU1(is) != 0xBA) throw ClassFileParseError("bad magic");
-  if (readU1(is) != 0xBE) throw ClassFileParseError("bad magic");
-
-  return new ClassFile(is);
-}
-
-std::vector<sys::Path> ClassFile::getClassPath()
-{
-  DEBUG(std::cerr << "CLASSPATH=" << ClassPath << '\n');
-
-  std::vector<sys::Path> result;
-  sys::Path path;
-  unsigned b = 0, e = 0;
-  do {
-    e = ClassPath.find(':', b);
-    // FIXME: Currently we only support flat class file reading. When
-    // jar files are supported this chech has to change to not require
-    // that each CLASSPATH component is a directory.
-    if (path.set(ClassPath.substr(b, e - b)) && path.isDirectory()) {
-      result.push_back(path);
-      DEBUG(std::cerr << "Adding: " << path.toString() << " to CLASSPATH\n");
-    }
-    b = e + 1;
-  } while (e != std::string::npos);
-
-  return result;
-}
-
-sys::Path ClassFile::getFileForClass(const std::string& classname)
-{
-  static const std::vector<sys::Path> classpath = getClassPath();
-  DEBUG(std::cerr << "Looking up class: " << classname << '\n');
-
-  std::string clazz = classname;
-  // replace '.' with '/'
-  for (unsigned i = 0, e = clazz.size(); i != e; ++i)
-    if (clazz[i] == '.')
-      clazz[i] = '/';
-  clazz += ".class";
-
-  for (unsigned i = 0, e = classpath.size(); i != e; ++i) {
-    sys::Path filename = classpath[i];
-    assert(filename.isDirectory() && "CLASSPATH element not a directory!");
-    filename.appendComponent(clazz);
-    DEBUG(std::cerr << "Trying file: " << filename.toString() << '\n');
-    if (filename.exists())
-      return filename;
-  }
-
-  throw ClassNotFoundException("Class " + classname + " not found");
-}
-
-const ClassFile* ClassFile::get(const std::string& classname)
-{
-  typedef std::map<std::string, const ClassFile*> Name2ClassMap;
-  static Name2ClassMap n2cMap_;
-
-  Name2ClassMap::iterator it = n2cMap_.lower_bound(classname);
-
-  if (it == n2cMap_.end() || it->first != classname) {
-    std::ifstream in(getFileForClass(classname).c_str());
-    it = n2cMap_.insert(it, std::make_pair(classname, readClassFile(in)));
-  }
-
-  return it->second;
-}
-
-ClassFile::ClassFile(std::istream& is)
-{
-  minorV_ = readU2(is);
-  majorV_ = readU2(is);
-  // Read constant pool.
-  uint16_t count = readU2(is);
-  cPool_.reserve(count);
-  cPool_.push_back(NULL);
-  while (cPool_.size() < count) {
-    cPool_.push_back(Constant::readConstant(this, is));
-    if (cPool_.back()->isDoubleSlot())
-      cPool_.push_back(NULL);
-  }
-  accessFlags_ = readU2(is);
-  thisClassIdx_ = readU2(is);
-  superClassIdx_ = readU2(is);
-  count = readU2(is);
-  interfaces_.reserve(count);
-  while (count--)
-    interfaces_.push_back(readU2(is));
-
-  readFields(fields_, this, is);
-  readMethods(methods_, this, is);
-  readAttributes(attributes_, this, is);
-}
-
-ConstantClass* ClassFile::getConstantClass(unsigned index) const
-{
-  assert(dynamic_cast<ConstantClass*>(getConstant(index)) &&
-         "Constant is not a ConstantClass!");
-  return static_cast<ConstantClass*>(getConstant(index));
-}
-
-ConstantMemberRef* ClassFile::getConstantMemberRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantMemberRef*>(getConstant(index)) &&
-         "Constant is not a ConstantMemberRef!");
-  return static_cast<ConstantMemberRef*>(getConstant(index));
-}
-
-ConstantFieldRef* ClassFile::getConstantFieldRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantFieldRef*>(getConstant(index)) &&
-         "Constant is not a ConstantFieldRef!");
-  return static_cast<ConstantFieldRef*>(getConstant(index));
-}
-
-ConstantMethodRef* ClassFile::getConstantMethodRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantMethodRef*>(getConstant(index)) &&
-         "Constant is not a ConstantMethodRef!");
-  return static_cast<ConstantMethodRef*>(getConstant(index));
-}
-
-ConstantInterfaceMethodRef*
-ClassFile::getConstantInterfaceMethodRef(unsigned index) const
-{
-  assert(dynamic_cast<ConstantInterfaceMethodRef*>(getConstant(index)) &&
-         "Constant is not a ConstantInterfaceMethodRef!");
-  return static_cast<ConstantInterfaceMethodRef*>(getConstant(index));
-}
-
-ConstantNameAndType* ClassFile::getConstantNameAndType(unsigned index) const
-{
-  assert(dynamic_cast<ConstantNameAndType*>(getConstant(index)) &&
-         "Constant is not a ConstantNameAndType!");
-  return static_cast<ConstantNameAndType*>(getConstant(index));
-}
-
-ConstantUtf8* ClassFile::getConstantUtf8(unsigned index) const
-{
-  assert(dynamic_cast<ConstantUtf8*>(getConstant(index)) &&
-         "Constant is not a ConstantUtf8!");
-  return static_cast<ConstantUtf8*>(getConstant(index));
-}
-
-bool ClassFile::isNativeMethodOverloaded(const Method& method) const
-{
-  unsigned count = 0;
-  for (Methods::const_iterator i = methods_.begin(), e = methods_.end();
-       i != e; ++i)
-    if ((*i)->isNative() && (*i)->getName() == method.getName())
-      ++count;
-
-  return count > 1;
-}
-
-ClassFile::~ClassFile()
-{
-  for_each(cPool_.begin(), cPool_.end(), deleter<Constant>);
-  for_each(fields_.begin(), fields_.end(), deleter<Field>);
-  for_each(methods_.begin(), methods_.end(), deleter<Method>);
-  for_each(attributes_.begin(), attributes_.end(), deleter<Attribute>);
-}
-
-std::ostream& ClassFile::dump(std::ostream& os) const
-{
-  os << "Minor version: " << getMinorVersion() << '\n'
-     << "Major version: " << getMajorVersion() << "\n\n"
-     << "class " << *getThisClass();
-  if (getSuperClass())
-    os  << " (" << *getSuperClass() << ")\n";
-
-  os << "Flags:";
-  if (isPublic()) os << " public";
-  if (isFinal()) os << " final";
-  if (isSuper()) os << " super";
-  if (isInterface()) os << " interface";
-  if (isAbstract()) os << " abstract";
-
-//   dumpCollection(interfaces_, "Interface", os);
-//   dumpCollection(fields_, "Field", os);
-//   dumpCollection(methods_, "Method", os);
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-//===----------------------------------------------------------------------===//
-// Utility functions
-Attribute* llvm::Java::getAttribute(const Attributes& attrs,
-                                    const std::string& name)
-{
-  for (unsigned i = 0, e = attrs.size(); i != e; ++i)
-    if (attrs[i]->getName()->str() == name)
-      return attrs[i];
-
-  return NULL;
-}
-
-//===----------------------------------------------------------------------===//
-// ClassFileParseError implementation
-ClassFileParseError::~ClassFileParseError() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// ClassFileSemanticError implementation
-ClassFileSemanticError::~ClassFileSemanticError() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// ClassNotFoundException implementation
-ClassNotFoundException::~ClassNotFoundException() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// InvocationTargetException implementation
-InvocationTargetException::~InvocationTargetException() throw()
-{
-
-}
-
-//===----------------------------------------------------------------------===//
-// Constant implementation
-Constant* Constant::readConstant(const ClassFile* cf, std::istream& is)
-{
-  Constant::Tag tag = static_cast<Constant::Tag>(readU1(is));
-  switch (tag) {
-  case Constant::CLASS:
-    return new ConstantClass(cf, is);
-  case Constant::FIELD_REF:
-    return new ConstantFieldRef(cf, is);
-  case Constant::METHOD_REF:
-    return new ConstantMethodRef(cf, is);
-  case Constant::INTERFACE_METHOD_REF:
-    return new ConstantInterfaceMethodRef(cf, is);
-  case Constant::STRING:
-    return new ConstantString(cf, is);
-  case Constant::INTEGER:
-    return new ConstantInteger(cf, is);
-  case Constant::FLOAT:
-    return new ConstantFloat(cf, is);
-  case Constant::LONG:
-    return new ConstantLong(cf, is);
-  case Constant::DOUBLE:
-    return new ConstantDouble(cf, is);
-  case Constant::NAME_AND_TYPE:
-    return new ConstantNameAndType(cf, is);
-  case Constant::UTF8:
-    return new ConstantUtf8(cf, is);
-  default:
-    assert(0 && "Unknown constant tag");
-  }
-
-  return NULL;
-}
-
-Constant::~Constant()
-{
-
-}
-
-ConstantClass::ConstantClass(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    nameIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantClass::dump(std::ostream& os) const
-{
-  return os << "class (Name=" << nameIdx_ << ')';
-}
-
-ConstantMemberRef::ConstantMemberRef(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    classIdx_(readU2(is)),
-    nameAndTypeIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantFieldRef::dump(std::ostream& os) const
-{
-  return os << "fieldRef (class=" << classIdx_
-            << ", nameAndType=" << nameAndTypeIdx_ << ')';
-}
-
-std::ostream& ConstantMethodRef::dump(std::ostream& os) const
-{
-  return os << "methodRef (class=" << classIdx_
-            << ", nameAndType=" << nameAndTypeIdx_ << ')';
-}
-
-std::ostream& ConstantInterfaceMethodRef::dump(std::ostream& os) const
-{
-  return os << "interfaceMethodRef (class=" << classIdx_
-            << ", nameAndType=" << nameAndTypeIdx_ << ')';
-}
-
-ConstantString::ConstantString(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    stringIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantString::dump(std::ostream& os) const
-{
-  return os << "string (utf8=" << stringIdx_ << ')';
-}
-
-ConstantInteger::ConstantInteger(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(static_cast<int32_t>(readU4(is)))
-{
-
-}
-
-std::ostream& ConstantInteger::dump(std::ostream& os) const
-{
-  return os << "int " << value_;
-}
-
-ConstantFloat::ConstantFloat(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(int2float(readU4(is)))
-{
-
-}
-
-std::ostream& ConstantFloat::dump(std::ostream& os) const
-{
-  return os << "float " << value_;
-}
-
-ConstantLong::ConstantLong(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(static_cast<int64_t>(readU8(is)))
-{
-
-}
-
-std::ostream& ConstantLong::dump(std::ostream& os) const
-{
-  return os << "long " << value_ << 'l';
-}
-
-ConstantDouble::ConstantDouble(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    value_(long2double(readU8(is)))
-{
-
-}
-
-std::ostream& ConstantDouble::dump(std::ostream& os) const
-{
-  return os << "double " << value_;
-}
-
-ConstantNameAndType::ConstantNameAndType(const ClassFile* cf, std::istream& is)
-  : Constant(cf),
-    nameIdx_(readU2(is)),
-    descriptorIdx_(readU2(is))
-{
-
-}
-
-std::ostream& ConstantNameAndType::dump(std::ostream& os) const
-{
-  return os << "nameAndType (name=" << nameIdx_
-            << ", descriptor=" << descriptorIdx_ << ')';
-}
-
-ConstantUtf8::ConstantUtf8(const ClassFile* cf, std::istream& is)
-  : Constant(cf)
-{
-  uint16_t length = readU2(is);
-  char *buf = (char *)alloca(length);
-  std::streamsize s = is.rdbuf()->sgetn(buf, length);
-  if (s != length)
-    throw ClassFileParseError(
-      "Could not read string constant from input stream");
-  utf8_.assign(buf, length);
-}
-
-std::ostream& ConstantUtf8::dump(std::ostream& os) const
-{
-  return os << utf8_;
-}
-
-//===----------------------------------------------------------------------===//
-// Member implementation
-Member::Member(const ClassFile* parent, std::istream& is)
-  : parent_(parent),
-    accessFlags_(readU2(is)),
-    nameIdx_(readU2(is)),
-    descriptorIdx_(readU2(is))
-{
-  readAttributes(attributes_, parent_, is);
-}
-
-Member::~Member()
-{
-  for_each(attributes_.begin(), attributes_.end(), deleter<Attribute>);
-}
-
-//===----------------------------------------------------------------------===//
-// Field implementation
-Field::Field(const ClassFile* parent, std::istream& is)
-  : Member(parent, is)
-{
-
-}
-
-Field::~Field()
-{
-
-}
-
-std::ostream& Field::dump(std::ostream& os) const
-{
-  os << *getName() << ' ' << *getDescriptor() << '\n'
-     << "Flags:";
-  if (isPublic()) os << " public";
-  if (isPrivate()) os << " private";
-  if (isProtected()) os << " protected";
-  if (isStatic()) os << " static";
-  if (isFinal()) os << " final";
-  if (isVolatile()) os << " volatile";
-  if (isTransient()) os << " transient";
-
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-ConstantValueAttribute* Field::getConstantValueAttribute() const
-{
-  if (!isStatic())
-    return NULL;
-
-  return (ConstantValueAttribute*) getAttribute(attributes_,
-                                                Attribute::CONSTANT_VALUE);
-}
-
-//===----------------------------------------------------------------------===//
-// Method implementation
-Method::Method(const ClassFile* parent, std::istream& is)
-  : Member(parent, is)
-{
-
-}
-
-Method::~Method()
-{
-
-}
-
-std::ostream& Method::dump(std::ostream& os) const
-{
-  os << *getName() << ' ' << *getDescriptor() << '\n'
-     << "Flags:";
-  if (isPublic()) os << " public";
-  if (isPrivate()) os << " private";
-  if (isProtected()) os << " protected";
-  if (isStatic()) os << " static";
-  if (isFinal()) os << " final";
-  if (isSynchronized()) os << " synchronized";
-  if (isNative()) os << " native";
-  if (isStrict()) os << " strict";
-
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-CodeAttribute* Method::getCodeAttribute() const
-{
-  return (CodeAttribute*) getAttribute(attributes_, Attribute::CODE);
-}
-
-ExceptionsAttribute* Method::getExceptionsAttribute() const
-{
-  return (ExceptionsAttribute*) getAttribute(attributes_,
-                                             Attribute::EXCEPTIONS);
-}
-
-//===----------------------------------------------------------------------===//
-// Attribute implementation
-const std::string Attribute::CONSTANT_VALUE = "ConstantValue";
-const std::string Attribute::CODE = "Code";
-const std::string Attribute::EXCEPTIONS = "Exceptions";
-const std::string Attribute::INNER_CLASSES = "InnerClasses";
-const std::string Attribute::SYNTHETIC = "Synthetic";
-const std::string Attribute::SOURCE_FILE = "SourceFile";
-const std::string Attribute::LINE_NUMBER_TABLE = "LineNumberTable";
-const std::string Attribute::LOCAL_VARIABLE_TABLE = "LocalVariableTable";
-const std::string Attribute::DEPRECATED = "Deprecated";
-
-Attribute* Attribute::readAttribute(const ClassFile* cf, std::istream& is)
-{
-  uint16_t nameIdx = readU2(is);
-  ConstantUtf8* name = cf->getConstantUtf8(nameIdx);
-  if (!name)
-    throw ClassFileSemanticError(
-      "Representation of attribute name is not of type ConstantUtf8");
-
-  if (CONSTANT_VALUE == name->str())
-    return new ConstantValueAttribute(cf, nameIdx, is);
-  else if (CODE == name->str())
-    return new CodeAttribute(cf, nameIdx, is);
-  else {
-    uint32_t length = readU4(is);
-    is.ignore(length);
-    return new Attribute(cf, nameIdx, is);
-  }
-}
-
-Attribute::Attribute(const ClassFile* cf, uint16_t nameIdx, std::istream& is)
-  : parent_(cf),
-    nameIdx_(nameIdx)
-{
-
-}
-
-Attribute::~Attribute()
-{
-
-}
-
-std::ostream& Attribute::dump(std::ostream& os) const
-{
-  return os << *getName();
-}
-
-//===----------------------------------------------------------------------===//
-// AttributeConstantValue implementation
-ConstantValueAttribute::ConstantValueAttribute(const ClassFile* cf,
-                                               uint16_t nameIdx,
-                                               std::istream& is)
-  : Attribute(cf, nameIdx, is)
-{
-  uint32_t length = readU4(is);
-  if (length != 2)
-    throw ClassFileSemanticError(
-      "Length of ConstantValueAttribute is not 2");
-  valueIdx_ = readU2(is);
-}
-
-std::ostream& ConstantValueAttribute::dump(std::ostream& os) const
-{
-  return Attribute::dump(os) << ": " << *getValue();
-}
-
-//===----------------------------------------------------------------------===//
-// AttributeCode implementation
-CodeAttribute::CodeAttribute(const ClassFile* cf,
-                             uint16_t nameIdx,
-                             std::istream& is)
-  : Attribute(cf, nameIdx, is)
-{
-  uint32_t length = readU4(is);
-  maxStack_ = readU2(is);
-  maxLocals_ = readU2(is);
-  codeSize_ = readU4(is);
-  code_ = new uint8_t[codeSize_];
-  std::streamsize s = is.rdbuf()->sgetn(reinterpret_cast<char*>(code_), codeSize_);
-  if (s != (std::streamsize) codeSize_)
-    throw ClassFileParseError(
-      "Could not read code from input stream");
-  uint16_t exceptCount = readU2(is);
-  exceptions_.reserve(exceptCount);
-  while (exceptCount--)
-    exceptions_.push_back(new Exception(cf, is));
-  readAttributes(attributes_, cf, is);
-}
-
-CodeAttribute::~CodeAttribute()
-{
-  delete[] code_;
-  for_each(exceptions_.begin(), exceptions_.end(), deleter<Exception>);
-  for_each(attributes_.begin(), attributes_.end(), deleter<Attribute>);
-}
-
-std::ostream& CodeAttribute::dump(std::ostream& os) const
-{
-  Attribute::dump(os)
-    << '\n'
-    << "Max stack: " << maxStack_ << '\n'
-    << "Max locals: " << maxLocals_ << '\n'
-    << "Code size: " << codeSize_ << '\n';
-//   dumpCollection(exceptions_, "Exception", os);
-//   dumpCollection(attributes_, "Attribute", os);
-
-  return os;
-}
-
-CodeAttribute::Exception::Exception(const ClassFile* cf, std::istream& is)
-  : parent_(cf),
-    startPc_(readU2(is)),
-    endPc_(readU2(is)),
-    handlerPc_(readU2(is)),
-    catchTypeIdx_(readU2(is))
-{
-  if (catchTypeIdx_ && !cf->getConstantClass(catchTypeIdx_))
-    throw ClassFileSemanticError
-      ("Representation of catch type is not of type ConstantClass");
-}
-
-std::ostream& CodeAttribute::Exception::dump(std::ostream& os) const
-{
-  if (getCatchType())
-    os << *getCatchType() << '\n';
-  else
-    os << "catch-all\n";
-  return os << "Start PC: " << startPc_ << '\n'
-            << "End PC: " << endPc_ << '\n'
-            << "Handler PC: " << handlerPc_;
-}
-
-//===----------------------------------------------------------------------===//
-// AttributeExceptions implementation
-ExceptionsAttribute::ExceptionsAttribute(const ClassFile* cf,
-                                         uint16_t nameIdx,
-                                         std::istream& is)
-  : Attribute(cf, nameIdx, is)
-{
-  uint32_t length = readU4(is);
-  uint16_t count = readU2(is);
-  exceptions_.reserve(count);
-  while (count--)
-    exceptions_.push_back(readU2(is));
-}
-
-std::ostream& ExceptionsAttribute::dump(std::ostream& os) const
-{
-  os << Attribute::dump(os) << ": ";
-  for (unsigned i = 0, e = getNumExceptions(); i != e; ++i)
-    os << *getException(i) << ' ';
-  return os;
-}
diff --git a/java/lib/ClassFile/Makefile b/java/lib/ClassFile/Makefile
deleted file mode 100755
index ae4b8bb..0000000
--- a/java/lib/ClassFile/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/ClassFile/Makefile ------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-LIBRARYNAME := LLVMJavaClassfile
-
-BUILD_ARCHIVE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/java/lib/Compiler/BasicBlockBuilder.h b/java/lib/Compiler/BasicBlockBuilder.h
deleted file mode 100644
index ebecf58..0000000
--- a/java/lib/Compiler/BasicBlockBuilder.h
+++ /dev/null
@@ -1,195 +0,0 @@
-//===-- BasicBlockBuilder.h - Java bytecode BasicBlock builder --*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains a BasicBlock builder that creates a LLVM
-// BasicBlocks from Java bytecode. It also keeps track of the java
-// bytecode indices that bound each basic block.
-//
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Java/BytecodeParser.h>
-#include <llvm/Java/ClassFile.h>
-#include <llvm/ADT/STLExtras.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Instructions.h>
-#include <map>
-
-namespace llvm { namespace Java {
-
-  class BasicBlockBuilder : public BytecodeParser<BasicBlockBuilder> {
-    Function* function_;
-    typedef std::map<unsigned, BasicBlock*> BC2BBMap;
-    BC2BBMap bc2bbMap_;
-    typedef std::map<BasicBlock*, std::pair<unsigned,unsigned> > BB2BCMap;
-    BB2BCMap bb2bcMap_;
-
-    BasicBlock* getOrCreateBasicBlockAt(unsigned bcI) {
-      BC2BBMap::iterator it = bc2bbMap_.lower_bound(bcI);
-      if (it == bc2bbMap_.end() || it->first != bcI) {
-        bool inserted;
-        BasicBlock* newBB = new BasicBlock("bc" + utostr(bcI), function_);
-        tie(it, inserted) = bc2bbMap_.insert(std::make_pair(bcI, newBB));
-        assert(inserted && "LLVM basic block multiply defined!");
-      }
-
-      return it->second;
-    }
-
-  public:
-    BasicBlockBuilder(Function* f, CodeAttribute* c)
-      : function_(f) {
-
-      // Create the entry block.
-      BasicBlock* entry = new BasicBlock("entry", function_);
-
-      // Create the block for bytecode 0 (bb0).
-      BasicBlock* bb = getOrCreateBasicBlockAt(0);
-
-      // Create basic blocks for exception handlers.
-      const CodeAttribute::Exceptions& exceptions = c->getExceptions();
-      for (unsigned i = 0, e = exceptions.size(); i != e; ++i)
-        getOrCreateBasicBlockAt(exceptions[i]->getHandlerPc());
-
-      // Parse the bytecode and create basic blocks for all targets of
-      // control flow instructions.
-      parse(c->getCode(), 0, c->getCodeSize());
-
-      // Build the bytecode->basic block map.
-      for (BC2BBMap::const_iterator i = bc2bbMap_.begin(), e = bc2bbMap_.end();
-           i != e; ++i) {
-        unsigned end = next(i) != e ? next(i)->first : c->getCodeSize();
-        bb2bcMap_.insert(
-          std::make_pair(i->second, std::make_pair(i->first, end)));
-      }
-
-      assert(function_->getEntryBlock().getName() == "entry");
-      assert(bb2bcMap_.find(&function_->getEntryBlock()) == bb2bcMap_.end());
-    }
-
-    BasicBlock* getBasicBlock(unsigned bcI) const {
-      BC2BBMap::const_iterator i = bc2bbMap_.find(bcI);
-      assert(i != bc2bbMap_.end() &&
-             "No block is mapped to this bytecode index!");
-      return i->second;
-    }
-
-    std::pair<unsigned,unsigned> getBytecodeIndices(BasicBlock* bb) const {
-      BB2BCMap::const_iterator i = bb2bcMap_.find(bb);
-      assert(i != bb2bcMap_.end() &&
-             "BasicBlock was not created by this builder!");
-      return i->second;
-    }
-
-    void do_ifeq(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifne(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_iflt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifge(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifgt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifle(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpeq(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpne(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmplt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpgt(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmpge(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_icmple(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_acmpeq(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_if_acmpne(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_jsr(unsigned t, unsigned r) {
-      getOrCreateBasicBlockAt(r);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_switch_common(unsigned defTarget, const SwitchCases& sw) {
-      for (unsigned i = 0, e = sw.size(); i != e; ++i) {
-        unsigned target = sw[i].second;
-        getOrCreateBasicBlockAt(target);
-      }
-      getOrCreateBasicBlockAt(defTarget);
-    }
-
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_goto(unsigned target) {
-      getOrCreateBasicBlockAt(target);
-    }
-
-    void do_ifnull(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-
-    void do_ifnonnull(unsigned t, unsigned f) {
-      getOrCreateBasicBlockAt(f);
-      getOrCreateBasicBlockAt(t);
-    }
-  };
-
-} } // namespace llvm::Java
diff --git a/java/lib/Compiler/Compiler.cpp b/java/lib/Compiler/Compiler.cpp
deleted file mode 100644
index a5aa90a..0000000
--- a/java/lib/Compiler/Compiler.cpp
+++ /dev/null
@@ -1,1278 +0,0 @@
-//===-- Compiler.cpp - Java bytecode compiler -------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains Java bytecode to LLVM bytecode compiler.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "javacompiler"
-
-#include <llvm/Java/Compiler.h>
-#include "BasicBlockBuilder.h"
-#include "Locals.h"
-#include "OperandStack.h"
-#include "Resolver.h"
-#include <llvm/Java/Bytecode.h>
-#include <llvm/Java/BytecodeParser.h>
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Value.h>
-#include <llvm/Type.h>
-#include <llvm/ADT/STLExtras.h>
-#include <llvm/ADT/SetVector.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Support/CFG.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-#include <list>
-#include <vector>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-namespace llvm { namespace Java { namespace {
-
-  const std::string TMP("tmp");
-
-  llvm::Constant* ONE = ConstantSInt::get(Type::IntTy, 1);
-  llvm::Constant* ZERO = ConstantSInt::get(Type::IntTy, 0);
-  llvm::Constant* MINUS_ONE = ConstantSInt::get(Type::IntTy, -1);
-
-  llvm::Constant* INT_SHIFT_MASK = ConstantUInt::get(Type::UByteTy, 0x1f);
-  llvm::Constant* LONG_SHIFT_MASK = ConstantUInt::get(Type::UByteTy, 0x3f);
-
-  class Compiler : public BytecodeParser<Compiler> {
-    Module* module_;
-    std::auto_ptr<Resolver> resolver_;
-    GlobalVariable* JNIEnvPtr_;
-    const VMClass* class_;
-    std::auto_ptr<BasicBlockBuilder> bbBuilder_;
-    std::list<BasicBlock*> bbWorkList_;
-    typedef std::map<BasicBlock*, unsigned> OpStackDepthMap;
-    OpStackDepthMap opStackDepthMap_;
-    typedef std::map<std::string, GlobalVariable*> StringMap;
-    StringMap stringMap_;
-    BasicBlock* currentBB_;
-    Locals locals_;
-    OperandStack opStack_;
-    Function *getClassRecord_, *setClassRecord_, *throw_, *isInstanceOf_,
-      *memcpy_, *memset_;
-    std::vector<llvm::Constant*> classInitializers_;
-
-    SetVector<const VMMethod*> toCompileMethods_;
-
-  public:
-    Compiler(Module* m)
-      : module_(m),
-        resolver_(new Resolver(module_)),
-        locals_(resolver_.get(), 0),
-        opStack_(resolver_.get(), 0) {
-      Type* JNIEnvTy = OpaqueType::get();
-      module_->addTypeName("JNIEnv", JNIEnvTy);
-      JNIEnvPtr_ = new GlobalVariable(JNIEnvTy,
-                                      true,
-                                      GlobalVariable::ExternalLinkage,
-                                      NULL,
-                                      "llvm_java_JNIEnv",
-                                      module_);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      const Type* objectBaseType = resolver_->getObjectBaseType();
-
-      getClassRecord_ = module_->getOrInsertFunction(
-        "llvm_java_get_class_record", classRecordPtrType,
-        objectBaseType, NULL);
-      setClassRecord_ = module_->getOrInsertFunction(
-        "llvm_java_set_class_record", Type::VoidTy,
-        objectBaseType, classRecordPtrType, NULL);
-      throw_ = module_->getOrInsertFunction(
-        "llvm_java_throw", Type::IntTy,
-        objectBaseType, NULL);
-      isInstanceOf_ = module_->getOrInsertFunction(
-        "llvm_java_is_instance_of", Type::IntTy,
-        objectBaseType, classRecordPtrType, NULL);
-      memcpy_ = module_->getOrInsertFunction(
-        "llvm.memcpy", Type::VoidTy,
-        PointerType::get(Type::SByteTy),
-        PointerType::get(Type::SByteTy),
-        Type::ULongTy, Type::UIntTy, NULL);
-      memset_ = module_->getOrInsertFunction(
-        "llvm.memset", Type::VoidTy,
-        PointerType::get(Type::SByteTy),
-        Type::UByteTy, Type::ULongTy, Type::UIntTy, NULL);
-    }
-
-  private:
-    void push(Value* value) {
-      opStack_.push(value, currentBB_);
-    }
-
-    Value* pop(const Type* type) {
-      return opStack_.pop(type, currentBB_);
-    }
-
-    /// Schedule a method for compilation. Returns true if this is the
-    /// first time this function was scheduled.
-    bool scheduleMethod(const VMMethod* method) {
-      if (toCompileMethods_.insert(method)) {
-        DEBUG(std::cerr << "Scheduling function: "
-              << method->getFunction()->getName() << " for compilation\n");
-        return true;
-      }
-      return false;
-    }
-
-    template <typename InsertionPointTy>
-    void initializeString(Value* globalString,
-                          const std::string& str,
-                          InsertionPointTy* ip) {
-      // Create a new byte[] object and initialize it with the
-      // contents of this string constant.
-      Value* count = ConstantUInt::get(Type::UIntTy, str.size());
-      Value* arrayRef = allocateArray(resolver_->getClass("[B"), count, ip);
-      // Copy string data.
-      std::vector<Value*> indices;
-      indices.reserve(3);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 2));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      Value* arrayData = new GetElementPtrInst(arrayRef, indices, TMP, ip);
-      llvm::Constant* init = ConstantArray::get(str);
-      GlobalVariable* chars = new GlobalVariable(
-        init->getType(),
-        true,
-        GlobalVariable::InternalLinkage,
-        init,
-        str + ".str",
-        module_);
-
-      std::vector<Value*> params;
-      params.reserve(4);
-      params.clear();
-      params.push_back(arrayData);
-      params.push_back(ConstantExpr::getPtrPtrFromArrayPtr(chars));
-      params.push_back(new CastInst(count, Type::ULongTy, TMP, ip));
-      params.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      new CallInst(memcpy_, params, "", ip);
-
-      // Get class information for java/lang/String.
-      const VMClass* clazz = resolver_->getClass("java/lang/String");
-      emitClassInitializers(clazz);
-
-      // Install the class record.
-      Value* objBase =
-        new CastInst(globalString, resolver_->getObjectBaseType(), TMP, ip);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord =
-        new CastInst(clazz->getClassRecord(), classRecordPtrType, TMP, ip);
-      new CallInst(setClassRecord_, objBase, classRecord, "", ip);
-
-      // Initialize it: call java/lang/String/<init>(byte[],int)
-      const VMMethod* method = clazz->getMethod("<init>([BI)V");
-
-      params.reserve(3);
-      params.clear();
-      params.push_back(objBase);
-      params.push_back(
-        new CastInst(arrayRef, resolver_->getObjectBaseType(), TMP, ip));
-      params.push_back(ConstantSInt::get(Type::IntTy, 0));
-      new CallInst(method->getFunction(), params, "", ip);
-    }
-
-    /// Returns the type of the Java string descriptor for JNI.
-    const Type* getJNIType(const std::string& descr) {
-      unsigned i = 0;
-      return getJNITypeHelper(descr, i);
-    }
-
-    const Type* getJNITypeHelper(const std::string& descr, unsigned& i) {
-      assert(i < descr.size());
-      switch (descr[i++]) {
-      case 'B': return Type::SByteTy;
-      case 'C': return Type::UShortTy;
-      case 'D': return Type::DoubleTy;
-      case 'F': return Type::FloatTy;
-      case 'I': return Type::IntTy;
-      case 'J': return Type::LongTy;
-      case 'S': return Type::ShortTy;
-      case 'Z': return Type::BoolTy;
-      case 'V': return Type::VoidTy;
-        // Both array and object types are pointers to llvm_object_base
-      case 'L': {
-        unsigned e = descr.find(';', i);
-        i = e + 1;
-        return resolver_->getObjectBaseType();
-      }
-      case '[':
-        // Skip '['s.
-        if (descr[i] == '[')
-          do { ++i; } while (descr[i] == '[');
-        // Consume the element type
-        getJNITypeHelper(descr, i);
-        return resolver_->getObjectBaseType();
-      case '(': {
-        std::vector<const Type*> params;
-        // JNIEnv*
-        params.push_back(JNIEnvPtr_->getType());
-        params.push_back(resolver_->getObjectBaseType());
-        while (descr[i] != ')')
-          params.push_back(getJNITypeHelper(descr, i));
-        return FunctionType::get(getJNITypeHelper(descr, ++i), params, false);
-      }
-        // FIXME: Throw something
-      default:  assert(0 && "Cannot parse type descriptor!");
-      }
-      return 0; // not reached
-    }
-
-    std::string getMangledString(const std::string& str) {
-      std::string mangledStr;
-
-      for (unsigned i = 0, e = str.size(); i != e; ++i) {
-        if (str[i] == '/')
-          mangledStr += '_';
-        else if (str[i] == '_')
-          mangledStr += "_1";
-        else if (str[i] == ';')
-          mangledStr += "_2";
-        else if (str[i] == '[')
-          mangledStr += "_3";
-        else
-          mangledStr += str[i];
-      }
-      return mangledStr;
-    }
-
-    /// Compiles the passed method only (it does not compile any
-    /// callers or methods of objects it creates).
-    void compileMethodOnly(const VMMethod* method) {
-      class_ = method->getParent();
-
-      Function* function = method->getFunction();
-      if (!function->empty()) {
-        DEBUG(std::cerr << "Function: " << function->getName()
-              << " is already compiled!\n");
-        return;
-      }
-
-      if (method->isNative()) {
-        DEBUG(std::cerr << "Adding stub for natively implemented method: "
-              << function->getName() << '\n');
-        const FunctionType* jniFuncTy =
-          cast<FunctionType>(getJNIType(method->getDescriptor()));
-
-        std::string funcName =
-          "Java_" +
-          getMangledString(class_->getName()) + '_' +
-          getMangledString(method->getName());
-        if (class_->getClassFile()->isNativeMethodOverloaded(*method->getMethod())) {
-          // We need to add two underscores and a mangled argument signature
-          funcName += "__";
-          const std::string descr = method->getDescriptor();
-          funcName += getMangledString(
-            std::string(descr.begin() + descr.find('(') + 1,
-                        descr.begin() + descr.find(')')));
-        }
-
-        Function* jniFunction =
-          module_->getOrInsertFunction(funcName, jniFuncTy);
-
-        BasicBlock* bb = new BasicBlock("entry", function);
-        std::vector<Value*> params;
-        params.push_back(JNIEnvPtr_);
-        if (method->isStatic())
-          params.push_back(
-            new CastInst(method->getParent()->getClassRecord(),
-                         resolver_->getObjectBaseType(), TMP, bb));
-        for (Function::arg_iterator A = function->arg_begin(),
-               E = function->arg_end(); A != E; ++A) {
-          params.push_back(
-            new CastInst(A, jniFuncTy->getParamType(params.size()), TMP, bb));
-        }
-        Value* result = new CallInst(jniFunction, params, "", bb);
-        if (result->getType() != Type::VoidTy)
-          result = new CastInst(result, function->getReturnType(), TMP,bb);
-        new ReturnInst(result, bb);
-
-        return;
-      }
-
-      assert (!method->isAbstract() && "Trying to compile an abstract method!");
-
-      // HACK: skip most of the class libraries.
-      const std::string& funcName = function->getName();
-      if ((funcName.find("java/") == 0 &&
-           funcName.find("java/lang/Object") != 0 &&
-           (funcName.find("java/lang/Throwable") != 0 ||
-            funcName.find("java/lang/Throwable$StaticData/<cl") == 0) &&
-           funcName.find("java/lang/Exception") != 0 &&
-           funcName.find("java/lang/IllegalArgumentException") != 0 &&
-           funcName.find("java/lang/IllegalStateException") != 0 &&
-           funcName.find("java/lang/IndexOutOfBoundsException") != 0 &&
-           funcName.find("java/lang/RuntimeException") != 0 &&
-           (funcName.find("java/lang/Math") != 0 ||
-            funcName.find("java/lang/Math/<cl") == 0) &&
-           funcName.find("java/lang/Number") != 0 &&
-           funcName.find("java/lang/Byte") != 0 &&
-           funcName.find("java/lang/Float") != 0 &&
-           funcName.find("java/lang/Integer") != 0 &&
-           funcName.find("java/lang/Long") != 0 &&
-           funcName.find("java/lang/Short") != 0 &&
-           (funcName.find("java/lang/String") != 0 ||
-            funcName.find("java/lang/String/<cl") == 0) &&
-           funcName.find("java/lang/StringBuffer") != 0 &&
-           (funcName.find("java/lang/System") != 0 ||
-            funcName.find("java/lang/System/loadLibrary") == 0) &&
-           funcName.find("java/lang/VMSystem") != 0 &&
-           (funcName.find("java/util/") != 0 ||
-            funcName.find("java/util/Locale/<cl") == 0 ||
-            funcName.find("java/util/ResourceBundle/<cl") == 0 ||
-            funcName.find("java/util/Calendar/<cl") == 0) ||
-            funcName.find("java/util/PropertyPermission/<cl") == 0) ||
-          (funcName.find("gnu/") == 0)) {
-        DEBUG(std::cerr << "Skipping compilation of method: "
-              << funcName << '\n');
-        return;
-      }
-
-      DEBUG(std::cerr << "Compiling method: " << funcName << '\n');
-
-      Java::CodeAttribute* codeAttr = method->getMethod()->getCodeAttribute();
-
-      opStackDepthMap_.clear();
-      bbBuilder_.reset(new BasicBlockBuilder(function, codeAttr));
-
-      // Put arguments into locals.
-      locals_ = Locals(resolver_.get(), codeAttr->getMaxLocals());
-
-      unsigned index = 0;
-      for (Function::arg_iterator a = function->arg_begin(),
-             ae = function->arg_end(); a != ae; ++a) {
-        locals_.store(index, a, &function->getEntryBlock());
-        index += resolver_->isTwoSlotType(a->getType()) ? 2 : 1;
-      }
-
-      BasicBlock* bb0 = bbBuilder_->getBasicBlock(0);
-
-      // For bb0 the operand stack is empty and the locals contain the
-      // arguments to the function.
-      //
-      // NOTE: We create an operand stack one size too big because we
-      // push extra values on the stack to simplify code generation
-      // (see implementation of ifne).
-      opStack_ = OperandStack(resolver_.get(), codeAttr->getMaxStack()+2);
-      opStackDepthMap_.insert(std::make_pair(bb0, 0));
-
-      // Insert bb0 in the work list.
-      bbWorkList_.push_back(bb0);
-
-      // Process the work list until we compile the whole function.
-      while (!bbWorkList_.empty()) {
-        currentBB_ = bbWorkList_.front();
-        bbWorkList_.pop_front();
-
-        OpStackDepthMap::iterator opStackDepth =
-          opStackDepthMap_.find(currentBB_);
-        assert(opStackDepth != opStackDepthMap_.end() &&
-               "Unknown operand stack depth for basic block in work list!");
-
-        opStack_.setDepth(opStackDepth->second);
-
-        unsigned start, end;
-        tie(start, end) = bbBuilder_->getBytecodeIndices(currentBB_);
-
-        // Compile this basic block.
-        parse(codeAttr->getCode(), start, end);
-
-        // If this basic block does not have a terminator, it should
-        // have an unconditional branch to the next basic block
-        // (fallthrough).
-        if (!currentBB_->getTerminator())
-          new BranchInst(bbBuilder_->getBasicBlock(end), currentBB_);
-
-        // For each successor of this basic block we can compute its
-        // entry operand stack depth. We do so, and add it to the work
-        // list. If a successor already has an entry operand stack and
-        // locals we assume the computation was correct and do not add
-        // it to the work list.
-        for (succ_iterator
-               SI = succ_begin(currentBB_), SE = succ_end(currentBB_);
-             SI != SE; ++SI) {
-          BasicBlock* Succ = *SI;
-          OpStackDepthMap::iterator succOpStackDepth =
-            opStackDepthMap_.lower_bound(Succ);
-          if (succOpStackDepth == opStackDepthMap_.end() ||
-              succOpStackDepth->first != Succ) {
-            opStackDepthMap_.insert(succOpStackDepth,
-                                    std::make_pair(Succ, opStack_.getDepth()));
-            bbWorkList_.push_back(Succ);
-          }
-        }
-      }
-
-      // Add an unconditional branch from the entry block to bb0.
-      new BranchInst(bb0, &function->getEntryBlock());
-
-      // FIXME: remove empty basic blocks (we have empty basic blocks
-      // because of our lack of exception support).
-      for (Function::iterator bb = function->begin(), be = function->end();
-           bb != be; )
-        if (bb->empty())
-          bb = function->getBasicBlockList().erase(bb);
-        else
-          ++bb;
-
-      DEBUG(std::cerr << "Finished compilation of method: "<< funcName << '\n');
-      // DEBUG(function->dump());
-    }
-
-    /// Emits static initializers for this class if not done already.
-    void emitClassInitializers(const VMClass* clazz) {
-      static SetVector<const VMClass*> toInitClasses;
-
-      // If this is a primitive class we are done.
-      if (clazz->isPrimitive())
-        return;
-
-      // If this class is already initialized, we are done.
-      if (!toInitClasses.insert(clazz))
-        return;
-
-      // If this class has a super class, initialize that first.
-      if (const VMClass* superClass = clazz->getSuperClass())
-        emitClassInitializers(superClass);
-
-      // If this class is an array, initialize its component class now.
-      if (const VMClass* componentClass = clazz->getComponentClass())
-        emitClassInitializers(componentClass);
-
-      // Schedule all its dynamically bound non abstract methods for
-      // compilation.
-      for (unsigned i = 0, e = clazz->getNumDynamicMethods(); i != e; ++i) {
-        const VMMethod* method = clazz->getDynamicMethod(i);
-        if (!method->isAbstract())
-          scheduleMethod(method);
-      }
-
-      // Schedule all its statically bound non abstract methods for
-      // compilation.
-      for (unsigned i = 0, e = clazz->getNumStaticMethods(); i != e; ++i) {
-        const VMMethod* method = clazz->getStaticMethod(i);
-        if (!method->isAbstract())
-          scheduleMethod(method);
-      }
-      
-      // If this class has a constant pool (was loaded from a
-      // classfile), create constant strings for it.
-      if (const ClassFile* classfile = clazz->getClassFile()) {
-        Function* stringConstructors = module_->getOrInsertFunction(
-          clazz->getName() + "<strinit>",
-          FunctionType::get(Type::VoidTy, std::vector<const Type*>(), false));
-        Instruction* I =
-          new ReturnInst(NULL, new BasicBlock("entry", stringConstructors));
-        for (unsigned i = 0, e = classfile->getNumConstants(); i != e; ++i)
-          if (ConstantString* s = dynamic_cast<ConstantString*>(classfile->getConstant(i)))
-            initializeString(clazz->getConstant(i), s->getValue()->str(), I);
-
-        // Insert string constructors method in class initializers array.
-        classInitializers_.push_back(stringConstructors);
-
-        // Call its class initialization method if it exists.
-        if (const VMMethod* method = clazz->getMethod("<clinit>()V"))
-          classInitializers_.push_back(method->getFunction());
-      }
-    }
-
-  public:
-    /// Compiles the specified method given a <class,method>
-    /// descriptor and the transitive closure of all methods
-    /// (possibly) called by it.
-    const VMMethod* compileMethod(const std::string& className,
-                                  const std::string& methodDesc) {
-      // Load the class.
-      const VMClass* clazz = resolver_->getClass(className);
-      emitClassInitializers(clazz);
-
-      // Find the method.
-      const VMMethod* method = clazz->getMethod(methodDesc);
-      // Compile the transitive closure of methods called by this method.
-      for (unsigned i = 0; i != toCompileMethods_.size(); ++i) {
-        const VMMethod* m = toCompileMethods_[i];
-        compileMethodOnly(m);
-        DEBUG(std::cerr << i+1 << '/' << toCompileMethods_.size()
-              << " functions compiled\n");
-      }
-
-      // Null terminate the static initializers array and add the
-      // global to the module.
-      Type* classInitializerType = PointerType::get(
-          FunctionType::get(Type::VoidTy, std::vector<const Type*>(), false));
-      classInitializers_.push_back(
-        llvm::Constant::getNullValue(classInitializerType));
-
-      ArrayType* classInitializersType =
-        ArrayType::get(classInitializerType, classInitializers_.size());
-      new GlobalVariable(classInitializersType,
-                         true,
-                         GlobalVariable::ExternalLinkage,
-                         ConstantArray::get(classInitializersType,
-                                            classInitializers_),
-                         "llvm_java_class_initializers",
-                         module_);
-
-      // Emit the array of all class records.
-      resolver_->emitClassRecordsArray();
-
-      return method;
-    }
-
-    void do_aconst_null() {
-      push(llvm::Constant::getNullValue(resolver_->getObjectBaseType()));
-    }
-
-    void do_iconst(int value) {
-      push(ConstantSInt::get(Type::IntTy, value));
-    }
-
-    void do_lconst(long long value) {
-      push(ConstantSInt::get(Type::LongTy, value));
-    }
-
-    void do_fconst(float value) {
-      push(ConstantFP::get(Type::FloatTy, value));
-    }
-
-    void do_dconst(double value) {
-      push(ConstantFP::get(Type::DoubleTy, value));
-    }
-
-    void do_ldc(unsigned index) {
-      llvm::Constant* c = class_->getConstant(index);
-      assert(c && "Java constant not handled!");
-      push(c);
-    }
-
-    void do_ldc2(unsigned index) {
-      do_ldc(index);
-    }
-
-    void do_iload(unsigned index) { do_load_common(index, Type::IntTy); }
-    void do_lload(unsigned index) { do_load_common(index, Type::LongTy); }
-    void do_fload(unsigned index) { do_load_common(index, Type::FloatTy); }
-    void do_dload(unsigned index) { do_load_common(index, Type::DoubleTy); }
-    void do_aload(unsigned index) { do_load_common(index, resolver_->getObjectBaseType()); }
-
-    void do_load_common(unsigned index, const Type* type) {
-      Value* val = locals_.load(index, type, currentBB_);
-      push(val);
-    }
-
-    void do_iaload() { do_aload_common("[I"); }
-    void do_laload() { do_aload_common("[J"); }
-    void do_faload() { do_aload_common("[F"); }
-    void do_daload() { do_aload_common("[D"); }
-    void do_aaload() { do_aload_common("[Ljava/lang/Object;"); }
-    void do_baload() { do_aload_common("[B"); }
-    void do_caload() { do_aload_common("[C"); }
-    void do_saload() { do_aload_common("[S"); }
-
-    void do_aload_common(const std::string& className) {
-      const VMClass* arrayClass = resolver_->getClass(className);
-      assert(arrayClass->isArray() && "Not an array class!");
-      Value* index = pop(Type::IntTy);
-      Value* arrayRef = pop(arrayClass->getType());
-
-      std::vector<Value*> indices;
-      indices.reserve(3);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 2));
-      indices.push_back(index);
-      Value* elementPtr =
-        new GetElementPtrInst(arrayRef, indices, TMP, currentBB_);
-      Value* result = new LoadInst(elementPtr, TMP, currentBB_);
-      push(result);
-    }
-
-    void do_istore(unsigned index) { do_store_common(index, Type::IntTy); }
-    void do_lstore(unsigned index) { do_store_common(index, Type::LongTy); }
-    void do_fstore(unsigned index) { do_store_common(index, Type::FloatTy); }
-    void do_dstore(unsigned index) { do_store_common(index, Type::DoubleTy); }
-    void do_astore(unsigned index) { do_store_common(index, resolver_->getObjectBaseType()); }
-
-    void do_store_common(unsigned index, const Type* type) {
-      Value* val = pop(type);
-      locals_.store(index, val, currentBB_);
-    }
-
-    void do_iastore() { do_astore_common("[I"); }
-    void do_lastore() { do_astore_common("[J"); }
-    void do_fastore() { do_astore_common("[F"); }
-    void do_dastore() { do_astore_common("[D"); }
-    void do_aastore() { do_astore_common("[Ljava/lang/Object;"); }
-    void do_bastore() { do_astore_common("[B"); }
-    void do_castore() { do_astore_common("[C"); }
-    void do_sastore() { do_astore_common("[S"); }
-
-    void do_astore_common(const std::string& className) {
-      const VMClass* arrayClass = resolver_->getClass(className);
-      assert(arrayClass->isArray() && "Not an array class!");
-      const VMClass* componentClass = arrayClass->getComponentClass();
-      Value* value = pop(componentClass->getType());
-      Value* index = pop(Type::IntTy);
-      Value* arrayRef = pop(arrayClass->getType());
-
-      std::vector<Value*> indices;
-      indices.reserve(3);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 2));
-      indices.push_back(index);
-      Value* elementPtr =
-        new GetElementPtrInst(arrayRef, indices, TMP, currentBB_);
-
-      new StoreInst(value, elementPtr, currentBB_);
-    }
-
-    void do_pop() {
-      opStack_.do_pop(currentBB_);
-    }
-
-    void do_pop2() {
-      opStack_.do_pop2(currentBB_);
-    }
-
-    void do_dup() {
-      opStack_.do_dup(currentBB_);
-    }
-
-    void do_dup_x1() {
-      opStack_.do_dup_x1(currentBB_);
-    }
-
-    void do_dup_x2() {
-      opStack_.do_dup_x2(currentBB_);
-    }
-
-    void do_dup2() {
-      opStack_.do_dup2(currentBB_);
-    }
-
-    void do_dup2_x1() {
-      opStack_.do_dup2_x1(currentBB_);
-    }
-
-    void do_dup2_x2() {
-      opStack_.do_dup2_x2(currentBB_);
-    }
-
-    void do_swap() {
-      opStack_.do_swap(currentBB_);
-    }
-
-    void do_iadd() { do_binary_op_common(Instruction::Add, Type::IntTy); }
-    void do_ladd() { do_binary_op_common(Instruction::Add, Type::LongTy); }
-    void do_fadd() { do_binary_op_common(Instruction::Add, Type::FloatTy); }
-    void do_dadd() { do_binary_op_common(Instruction::Add, Type::DoubleTy); }
-
-    void do_isub() { do_binary_op_common(Instruction::Sub, Type::IntTy); }
-    void do_lsub() { do_binary_op_common(Instruction::Sub, Type::LongTy); }
-    void do_fsub() { do_binary_op_common(Instruction::Sub, Type::FloatTy); }
-    void do_dsub() { do_binary_op_common(Instruction::Sub, Type::DoubleTy); }
-
-    void do_imul() { do_binary_op_common(Instruction::Mul, Type::IntTy); }
-    void do_lmul() { do_binary_op_common(Instruction::Mul, Type::LongTy); }
-    void do_fmul() { do_binary_op_common(Instruction::Mul, Type::FloatTy); }
-    void do_dmul() { do_binary_op_common(Instruction::Mul, Type::DoubleTy); }
-
-    void do_idiv() { do_binary_op_common(Instruction::Div, Type::IntTy); }
-    void do_ldiv() { do_binary_op_common(Instruction::Div, Type::LongTy); }
-    void do_fdiv() { do_binary_op_common(Instruction::Div, Type::FloatTy); }
-    void do_ddiv() { do_binary_op_common(Instruction::Div, Type::DoubleTy); }
-
-    void do_irem() { do_binary_op_common(Instruction::Rem, Type::IntTy); }
-    void do_lrem() { do_binary_op_common(Instruction::Rem, Type::LongTy); }
-    void do_frem() { do_binary_op_common(Instruction::Rem, Type::FloatTy); }
-    void do_drem() { do_binary_op_common(Instruction::Rem, Type::DoubleTy); }
-
-    void do_ineg() { do_neg_common(Type::IntTy); }
-    void do_lneg() { do_neg_common(Type::LongTy); }
-    void do_fneg() { do_neg_common(Type::FloatTy); }
-    void do_dneg() { do_neg_common(Type::DoubleTy); }
-
-    void do_neg_common(const Type* type) {
-      Value* v1 = pop(type);
-      Value* r = BinaryOperator::createNeg(v1, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_ishl() { do_shift_common(Instruction::Shl, Type::IntTy); }
-    void do_lshl() { do_shift_common(Instruction::Shl, Type::LongTy); }
-    void do_ishr() { do_shift_common(Instruction::Shr, Type::IntTy); }
-    void do_lshr() { do_shift_common(Instruction::Shr, Type::LongTy); }
-
-    void do_iushr() { do_shift_common(Instruction::Shr, Type::UIntTy); }
-    void do_lushr() { do_shift_common(Instruction::Shr, Type::ULongTy); }
-
-    void do_shift_common(Instruction::OtherOps op, const Type* type) {
-      llvm::Constant* mask =
-        type == Type::IntTy ? INT_SHIFT_MASK : LONG_SHIFT_MASK;
-      Value* a = pop(Type::UByteTy);
-      a = BinaryOperator::create(Instruction::And, a, mask, TMP, currentBB_);
-      Value* v = pop(type);
-      Value* r = new ShiftInst(op, v, a, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_iand() { do_binary_op_common(Instruction::And, Type::IntTy); }
-    void do_land() { do_binary_op_common(Instruction::And, Type::LongTy); }
-    void do_ior() { do_binary_op_common(Instruction::Or, Type::IntTy); }
-    void do_lor() { do_binary_op_common(Instruction::Or, Type::LongTy); }
-    void do_ixor() { do_binary_op_common(Instruction::Xor, Type::IntTy); }
-    void do_lxor() { do_binary_op_common(Instruction::Xor, Type::LongTy); }
-
-    void do_binary_op_common(Instruction::BinaryOps op, const Type* type) {
-      Value* v2 = pop(type);
-      Value* v1 = pop(type);
-      Value* r = BinaryOperator::create(op, v1, v2, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_iinc(unsigned index, int amount) {
-      Value* v = locals_.load(index, Type::IntTy, currentBB_);
-      Value* a = ConstantSInt::get(Type::IntTy, amount);
-      v = BinaryOperator::createAdd(v, a, TMP, currentBB_);
-      locals_.store(index, v, currentBB_);
-    }
-
-    void do_i2l() { do_cast_common(Type::IntTy, Type::LongTy); }
-    void do_i2f() { do_cast_common(Type::IntTy, Type::FloatTy); }
-    void do_i2d() { do_cast_common(Type::IntTy, Type::DoubleTy); }
-    void do_l2i() { do_cast_common(Type::LongTy, Type::IntTy); }
-    void do_l2f() { do_cast_common(Type::LongTy, Type::FloatTy); }
-    void do_l2d() { do_cast_common(Type::LongTy, Type::DoubleTy); }
-    void do_f2i() { do_cast_common(Type::FloatTy, Type::IntTy); }
-    void do_f2l() { do_cast_common(Type::FloatTy, Type::LongTy); }
-    void do_f2d() { do_cast_common(Type::FloatTy, Type::DoubleTy); }
-    void do_d2i() { do_cast_common(Type::DoubleTy, Type::IntTy); }
-    void do_d2l() { do_cast_common(Type::DoubleTy, Type::LongTy); }
-    void do_d2f() { do_cast_common(Type::DoubleTy, Type::FloatTy); }
-    void do_i2b() { do_cast_common(Type::IntTy, Type::SByteTy); }
-    void do_i2c() { do_cast_common(Type::IntTy, Type::UShortTy); }
-    void do_i2s() { do_cast_common(Type::IntTy, Type::ShortTy); }
-
-    void do_cast_common(const Type* from, const Type* to) {
-      Value* v1 = pop(from);
-      push(new CastInst(v1, to, TMP, currentBB_));
-    }
-
-    void do_lcmp() {
-      Value* v2 = pop(Type::LongTy);
-      Value* v1 = pop(Type::LongTy);
-      Value* c = BinaryOperator::createSetGT(v1, v2, TMP, currentBB_);
-      Value* r = new SelectInst(c, ONE, ZERO, TMP, currentBB_);
-      c = BinaryOperator::createSetLT(v1, v2, TMP, currentBB_);
-      r = new SelectInst(c, MINUS_ONE, r, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_fcmpl() { do_cmp_common(Type::FloatTy, false); }
-    void do_dcmpl() { do_cmp_common(Type::DoubleTy, false); }
-    void do_fcmpg() { do_cmp_common(Type::FloatTy, true); }
-    void do_dcmpg() { do_cmp_common(Type::DoubleTy, true); }
-
-    void do_cmp_common(const Type* type, bool pushOne) {
-      Value* v2 = pop(type);
-      Value* v1 = pop(type);
-      Value* c = BinaryOperator::createSetGT(v1, v2, TMP, currentBB_);
-      Value* r = new SelectInst(c, ONE, ZERO, TMP, currentBB_);
-      c = BinaryOperator::createSetLT(v1, v2, TMP, currentBB_);
-      r = new SelectInst(c, MINUS_ONE, r, TMP, currentBB_);
-      c = new CallInst(module_->getOrInsertFunction
-                       ("llvm.isunordered",
-                        Type::BoolTy, v1->getType(), v2->getType(), NULL),
-                       v1, v2, TMP, currentBB_);
-      r = new SelectInst(c, pushOne ? ONE : MINUS_ONE, r, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_ifeq(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetEQ, Type::IntTy, t, f);
-    }
-    void do_ifne(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetNE, Type::IntTy, t, f);
-    }
-    void do_iflt(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetLT, Type::IntTy, t, f);
-    }
-    void do_ifge(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetGE, Type::IntTy, t, f);
-    }
-    void do_ifgt(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetGT, Type::IntTy, t, f);
-    }
-    void do_ifle(unsigned t, unsigned f) {
-      do_iconst(0);
-      do_if_common(Instruction::SetLE, Type::IntTy, t, f);
-    }
-    void do_if_icmpeq(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetEQ, Type::IntTy, t, f);
-    }
-    void do_if_icmpne(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetNE, Type::IntTy, t, f);
-    }
-    void do_if_icmplt(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetLT, Type::IntTy, t, f);
-    }
-    void do_if_icmpge(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetGE, Type::IntTy, t, f);
-    }
-    void do_if_icmpgt(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetGT, Type::IntTy, t, f);
-    }
-    void do_if_icmple(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetLE, Type::IntTy, t, f);
-    }
-    void do_if_acmpeq(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetEQ, resolver_->getObjectBaseType(), t, f);
-    }
-    void do_if_acmpne(unsigned t, unsigned f) {
-      do_if_common(Instruction::SetNE, resolver_->getObjectBaseType(), t, f);
-    }
-    void do_ifnull(unsigned t, unsigned f) {
-      do_aconst_null();
-      do_if_common(Instruction::SetEQ, resolver_->getObjectBaseType(), t, f);
-    }
-    void do_ifnonnull(unsigned t, unsigned f) {
-      do_aconst_null();
-      do_if_common(Instruction::SetNE, resolver_->getObjectBaseType(), t, f);
-    }
-
-    void do_if_common(Instruction::BinaryOps cc, const Type* type,
-                      unsigned t, unsigned f) {
-      Value* v2 = pop(type);
-      Value* v1 = pop(type);
-      Value* c = new SetCondInst(cc, v1, v2, TMP, currentBB_);
-      new BranchInst(bbBuilder_->getBasicBlock(t),
-                     bbBuilder_->getBasicBlock(f),
-                     c, currentBB_);
-    }
-
-    void do_goto(unsigned target) {
-      new BranchInst(bbBuilder_->getBasicBlock(target), currentBB_);
-    }
-
-    void do_ireturn() { do_return_common(Type::IntTy); }
-    void do_lreturn() { do_return_common(Type::LongTy); }
-    void do_freturn() { do_return_common(Type::FloatTy); }
-    void do_dreturn() { do_return_common(Type::DoubleTy); }
-    void do_areturn() { do_return_common(resolver_->getObjectBaseType()); }
-
-    void do_return_common(const Type* type) {
-      Value* r = pop(type);
-      const Type* retTy = currentBB_->getParent()->getReturnType();
-      if (retTy != r->getType())
-        r = new CastInst(r, retTy, TMP, currentBB_);
-      new ReturnInst(r, currentBB_);
-    }
-
-    void do_return() {
-      new ReturnInst(NULL, currentBB_);
-    }
-
-    void do_jsr(unsigned target, unsigned retAddress) {
-      // FIXME: this is currently a noop.
-      push(llvm::Constant::getNullValue(Type::IntTy));
-    }
-
-    void do_ret(unsigned index) {
-      // FIXME: this is currently a noop.
-    }
-
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) {
-      do_switch_common(defTarget, sw);
-    }
-
-    void do_switch_common(unsigned defTarget, const SwitchCases& sw) {
-      Value* v = pop(Type::IntTy);
-      SwitchInst* in =
-        new SwitchInst(v, bbBuilder_->getBasicBlock(defTarget), sw.size(),
-                       currentBB_);
-      for (unsigned i = 0, e = sw.size(); i != e; ++i)
-        in->addCase(ConstantSInt::get(Type::IntTy, sw[i].first),
-                    bbBuilder_->getBasicBlock(sw[i].second));
-    }
-
-    void do_getstatic(unsigned index) {
-      const VMField* field = class_->getField(index);
-      emitClassInitializers(field->getParent());
-
-      Value* v = new LoadInst(field->getGlobal(), TMP, currentBB_);
-      push(v);
-    }
-
-    void do_putstatic(unsigned index) {
-      const VMField* field = class_->getField(index);
-      emitClassInitializers(field->getParent());
-
-      Value* v = pop(field->getClass()->getType());
-      new StoreInst(v, field->getGlobal(), currentBB_);
-    }
-
-    void do_getfield(unsigned index) {
-      const VMField* field = class_->getField(index);
-
-      Value* p = pop(field->getParent()->getType());
-      std::vector<Value*> indices(2);
-      indices[0] = ConstantUInt::get(Type::UIntTy, 0);
-      indices[1] = ConstantUInt::get(Type::UIntTy, field->getMemberIndex());
-      Value* fieldPtr =
-        new GetElementPtrInst(p, indices, field->getName()+'*', currentBB_);
-      Value* v = new LoadInst(fieldPtr, field->getName(), currentBB_);
-      push(v);
-    }
-
-    void do_putfield(unsigned index) {
-      const VMField* field = class_->getField(index);
-
-      Value* v = pop(field->getClass()->getType());
-      Value* p = pop(field->getParent()->getType());
-      std::vector<Value*> indices(2);
-      indices[0] = ConstantUInt::get(Type::UIntTy, 0);
-      indices[1] = ConstantUInt::get(Type::UIntTy, field->getMemberIndex());
-      Value* fieldPtr =
-        new GetElementPtrInst(p, indices, field->getName()+'*', currentBB_);
-      new StoreInst(v, fieldPtr, currentBB_);
-    }
-
-    void makeCall(Value* fun, const std::vector<Value*> params) {
-      const PointerType* funPtrTy = cast<PointerType>(fun->getType());
-      const FunctionType* funTy =
-        cast<FunctionType>(funPtrTy->getElementType());
-
-      if (funTy->getReturnType() == Type::VoidTy)
-        new CallInst(fun, params, "", currentBB_);
-      else {
-        Value* r = new CallInst(fun, params, TMP, currentBB_);
-        push(r);
-      }
-    }
-
-    std::vector<Value*> getParams(const FunctionType* funTy) {
-      unsigned numParams = funTy->getNumParams();
-      std::vector<Value*> params(numParams);
-      while (numParams--)
-        params[numParams] = pop(funTy->getParamType(numParams));
-
-      return params;
-    }
-
-    void do_invokevirtual(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      const VMClass* clazz = method->getParent();
-
-      Function* function = method->getFunction();
-      std::vector<Value*> params(getParams(function->getFunctionType()));
-
-      Value* objRef = params.front();
-      objRef = new CastInst(objRef, clazz->getType(), "this", currentBB_);
-      Value* objBase =
-        new CastInst(objRef, resolver_->getObjectBaseType(), TMP, currentBB_);
-      Value* classRecord =
-        new CallInst(getClassRecord_, objBase, TMP, currentBB_);
-      classRecord = new CastInst(classRecord,
-                                 clazz->getClassRecord()->getType(),
-                                 clazz->getName() + ".classRecord", currentBB_);
-      std::vector<Value*> indices(1, ConstantUInt::get(Type::UIntTy, 0));
-      assert(method->getMethodIndex() != -1 &&
-             "Method index not found for dynamically bound method!");
-      indices.push_back(
-        ConstantUInt::get(Type::UIntTy, method->getMethodIndex()+1));
-      Value* funPtr =
-        new GetElementPtrInst(classRecord, indices, TMP, currentBB_);
-      Value* fun = new LoadInst(funPtr, function->getName(), currentBB_);
-
-      makeCall(fun, params);
-    }
-
-    void do_invokespecial(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      Function* function = method->getFunction();
-      makeCall(function, getParams(function->getFunctionType()));
-    }
-
-    void do_invokestatic(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      emitClassInitializers(method->getParent());
-      Function* function = method->getFunction();
-      makeCall(function, getParams(function->getFunctionType()));
-    }
-
-    void do_invokeinterface(unsigned index) {
-      const VMMethod* method = class_->getMethod(index);
-      const VMClass* clazz = method->getParent();
-      assert(clazz->isInterface() && "Class must be an interface!");
-
-      Function* function = method->getFunction();
-      std::vector<Value*> params(getParams(function->getFunctionType()));
-
-      Value* objRef = params.front();
-      objRef = new CastInst(objRef, clazz->getType(), "this", currentBB_);
-      Value* objBase =
-        new CastInst(objRef, resolver_->getObjectBaseType(), TMP, currentBB_);
-      Value* classRecord =
-        new CallInst(getClassRecord_, objBase, TMP, currentBB_);
-      classRecord = new CastInst(classRecord,
-                                 resolver_->getClassRecordPtrType(),
-                                 TMP, currentBB_);
-      // get the interfaces array of class records
-      std::vector<Value*> indices(2, ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 4));
-      Value* interfaceClassRecords =
-        new GetElementPtrInst(classRecord, indices, TMP, currentBB_);
-      interfaceClassRecords =
-        new LoadInst(interfaceClassRecords, TMP, currentBB_);
-      // Get the actual interface class record.
-      indices.clear();
-      indices.push_back(
-        ConstantUInt::get(Type::UIntTy, clazz->getInterfaceIndex()));
-      Value* interfaceClassRecord =
-        new GetElementPtrInst(interfaceClassRecords, indices, TMP, currentBB_);
-      interfaceClassRecord =
-        new LoadInst(interfaceClassRecord,
-                     clazz->getName() + ".classRecord", currentBB_);
-      interfaceClassRecord =
-        new CastInst(interfaceClassRecord,
-                     clazz->getClassRecord()->getType(), TMP, currentBB_);
-      // Get the function pointer.
-      assert(method->getMethodIndex() != -1 &&
-             "Method index not found for dynamically bound method!");
-      indices.resize(2);
-      indices[0] = ConstantUInt::get(Type::UIntTy, 0);
-      indices[1] = ConstantUInt::get(Type::UIntTy, method->getMethodIndex()+1);
-      Value* funPtr =
-        new GetElementPtrInst(interfaceClassRecord, indices, TMP, currentBB_);
-      Value* fun = new LoadInst(funPtr, function->getName(), currentBB_);
-
-      makeCall(fun, params);
-    }
-
-    template<typename InsertionPointTy>
-    Value* allocateObject(const VMClass& clazz, InsertionPointTy* ip) {
-      static std::vector<Value*> params(4);
-
-      Value* objRef = new MallocInst(clazz.getLayoutType(), NULL, TMP, ip);
-      params[0] =
-        new CastInst(objRef, PointerType::get(Type::SByteTy), TMP, ip); // dest
-      params[1] = ConstantUInt::get(Type::UByteTy, 0); // value
-      params[2] = ConstantExpr::getSizeOf(clazz.getLayoutType()); // size
-      params[3] = ConstantUInt::get(Type::UIntTy, 0); // alignment
-      new CallInst(memset_, params, "", ip);
-
-      // Install the class record.
-      Value* objBase =
-        new CastInst(objRef, resolver_->getObjectBaseType(), TMP, ip);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord =
-        new CastInst(clazz.getClassRecord(), classRecordPtrType, TMP, ip);
-      new CallInst(setClassRecord_, objBase, classRecord, "", ip);
-
-      return objRef;
-    }
-
-    void do_new(unsigned index) {
-      const VMClass* clazz = class_->getClass(index);
-      emitClassInitializers(clazz);
-      push(allocateObject(*clazz, currentBB_));
-    }
-
-    template <typename InsertionPointTy>
-    Value* getArrayLengthPtr(Value* arrayRef, InsertionPointTy* ip) const {
-      std::vector<Value*> indices;
-      indices.reserve(2);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 1));
-
-      return new GetElementPtrInst(arrayRef, indices, TMP, ip);
-    }
-
-    template <typename InsertionPointTy>
-    Value* getArrayObjectBasePtr(Value* arrayRef, InsertionPointTy* ip) const {
-      std::vector<Value*> indices;
-      indices.reserve(2);
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-      indices.push_back(ConstantUInt::get(Type::UIntTy, 0));
-
-      return new GetElementPtrInst(arrayRef, indices, TMP, ip);
-    }
-
-    template<typename InsertionPointTy>
-    Value* allocateArray(const VMClass* clazz,
-                         Value* count,
-                         InsertionPointTy* ip) {
-      static std::vector<Value*> params(4);
-
-      assert(clazz->isArray() && "Not an array class!");
-      const VMClass* componentClass = clazz->getComponentClass();
-      const Type* elementTy = componentClass->getType();
-
-      // The size of the element.
-      llvm::Constant* elementSize =
-        ConstantExpr::getCast(ConstantExpr::getSizeOf(elementTy), Type::UIntTy);
-
-      // The size of the array part of the struct.
-      Value* size = BinaryOperator::create(
-        Instruction::Mul, count, elementSize, TMP, ip);
-      // The size of the rest of the array object.
-      llvm::Constant* arrayObjectSize =
-        ConstantExpr::getCast(ConstantExpr::getSizeOf(clazz->getLayoutType()),
-                              Type::UIntTy);
-
-      // Add the array part plus the object part together.
-      size = BinaryOperator::create(
-        Instruction::Add, size, arrayObjectSize, TMP, ip);
-      // Allocate memory for the object.
-      Value* objRef = new MallocInst(Type::SByteTy, size, TMP, ip);
-      params[0] = objRef; // dest
-      params[1] = ConstantUInt::get(Type::UByteTy, 0); // value
-      params[2] = new CastInst(size, Type::ULongTy, TMP, ip); // size
-      params[3] = ConstantUInt::get(Type::UIntTy, 0); // alignment
-      new CallInst(memset_, params, "", ip);
-
-      // Cast back to array type.
-      objRef = new CastInst(objRef, clazz->getType(), TMP, ip);
-
-      // Store the size.
-      Value* lengthPtr = getArrayLengthPtr(objRef, ip);
-      new StoreInst(count, lengthPtr, ip);
-
-      // Install the class record.
-      Value* objBase = new CastInst(objRef, resolver_->getObjectBaseType(), TMP, ip);
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord =
-        new CastInst(clazz->getClassRecord(), classRecordPtrType, TMP, ip);
-      new CallInst(setClassRecord_, objBase, classRecord, "", ip);
-
-      return objRef;
-    }
-
-    void do_newarray(JType type) {
-      Value* count = pop(Type::UIntTy);
-
-      const VMClass* clazz = resolver_->getClass(type);
-      const VMClass* arrayClass = resolver_->getArrayClass(clazz);
-      emitClassInitializers(arrayClass);
-
-      push(allocateArray(arrayClass, count, currentBB_));
-    }
-
-    void do_anewarray(unsigned index) {
-      Value* count = pop(Type::UIntTy);
-
-      const VMClass* clazz = class_->getClass(index);
-      const VMClass* arrayClass = resolver_->getArrayClass(clazz);
-      emitClassInitializers(arrayClass);
-
-      push(allocateArray(arrayClass, count, currentBB_));
-    }
-
-    void do_arraylength() {
-      const VMClass* clazz = resolver_->getClass("[Ljava/lang/Object;");
-      Value* arrayRef = pop(clazz->getType());
-      Value* lengthPtr = getArrayLengthPtr(arrayRef, currentBB_);
-      Value* length = new LoadInst(lengthPtr, TMP, currentBB_);
-      push(length);
-    }
-
-    void do_athrow() {
-      Value* objRef = pop(resolver_->getObjectBaseType());
-      new CallInst(throw_, objRef, "", currentBB_);
-      new UnreachableInst(currentBB_);
-    }
-
-    void do_checkcast(unsigned index) {
-      const VMClass* clazz = class_->getClass(index);
-
-      Value* objRef = pop(resolver_->getObjectBaseType());
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord = new CastInst(clazz->getClassRecord(),
-                                        classRecordPtrType, TMP, currentBB_);
-      Value* r =
-        new CallInst(isInstanceOf_, objRef, classRecord, TMP, currentBB_);
-
-      Value* b = new SetCondInst(Instruction::SetEQ,
-                                 r, ConstantSInt::get(Type::IntTy, 1),
-                                 TMP, currentBB_);
-      // FIXME: if b is false we must throw a ClassCast exception
-      push(objRef);
-    }
-
-    void do_instanceof(unsigned index) {
-      const VMClass* clazz = class_->getClass(index);
-
-      Value* objRef = pop(resolver_->getObjectBaseType());
-      const Type* classRecordPtrType = resolver_->getClassRecordPtrType();
-      Value* classRecord = new CastInst(clazz->getClassRecord(),
-                                        classRecordPtrType, TMP, currentBB_);
-      Value* r =
-        new CallInst(isInstanceOf_, objRef, classRecord, TMP, currentBB_);
-      push(r);
-    }
-
-    void do_monitorenter() {
-      // FIXME: This is currently a noop.
-      pop(resolver_->getObjectBaseType());
-    }
-
-    void do_monitorexit() {
-      // FIXME: This is currently a noop.
-      pop(resolver_->getObjectBaseType());
-    }
-
-    void do_multianewarray(unsigned index, unsigned dims) {
-      assert(0 && "not implemented");
-    }
-  };
-
-} } } // namespace llvm::Java::
-
-std::auto_ptr<Module> llvm::Java::compile(const std::string& className)
-{
-  DEBUG(std::cerr << "Compiling class: " << className << '\n');
-
-  std::auto_ptr<Module> m(new Module(className));
-  // Require the Java runtime.
-  m->addLibrary("jrt");
-
-  Compiler c(m.get());
-  const VMMethod* main =
-    c.compileMethod(className, "main([Ljava/lang/String;)V");
-
-  Function* javaMain = m->getOrInsertFunction
-    ("llvm_java_main", Type::VoidTy,
-     Type::IntTy, PointerType::get(PointerType::get(Type::SByteTy)), NULL);
-
-  BasicBlock* bb = new BasicBlock("entry", javaMain);
-  const FunctionType* mainTy = main->getFunction()->getFunctionType();
-  new CallInst(main->getFunction(),
-               // FIXME: Forward correct params from llvm_java_main
-               llvm::Constant::getNullValue(mainTy->getParamType(0)),
-               "",
-               bb);
-  new ReturnInst(NULL, bb);
-
-  return m;
-}
diff --git a/java/lib/Compiler/Locals.cpp b/java/lib/Compiler/Locals.cpp
deleted file mode 100644
index 47307c0..0000000
--- a/java/lib/Compiler/Locals.cpp
+++ /dev/null
@@ -1,67 +0,0 @@
-//===-- Locals.h - Java locals ----------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of Java locals. We model the
-// locals as an array of lazily created allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#include "Locals.h"
-#include <llvm/BasicBlock.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Java/Compiler.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-Locals::Locals(const Resolver* resolver, unsigned maxLocals)
-  : resolver_(resolver),
-    locals_(maxLocals)
-{
-
-}
-
-void Locals::store(unsigned i, Value* value, BasicBlock* insertAtEnd)
-{
-  const Type* valueTy = value->getType();
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-  if (valueTy != storageTy)
-    value = new CastInst(value, storageTy, "to-storage-type", insertAtEnd);
-
-  SlotMap& slotMap = locals_[i];
-  SlotMap::iterator it = slotMap.find(storageTy);
-
-  if (it == slotMap.end()) {
-    // Insert the alloca at the end of the entry block.
-    BasicBlock* entry = &insertAtEnd->getParent()->getEntryBlock();
-    AllocaInst* alloca =
-      new AllocaInst(storageTy, NULL, "local"+utostr(i), entry);
-    it = slotMap.insert(it, std::make_pair(storageTy, alloca));
-  }
-
-  new StoreInst(value, it->second, insertAtEnd);
-}
-
-llvm::Value* Locals::load(unsigned i, const Type* valueTy,
-                          BasicBlock* insertAtEnd)
-{
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-
-  SlotMap& slotMap = locals_[i];
-  SlotMap::iterator it = slotMap.find(storageTy);
-
-  assert(it != slotMap.end() && "Attempt to load a non initialized global!");
-  Value* value = new LoadInst(it->second, "load", insertAtEnd);
-  if (valueTy != storageTy)
-    value = new CastInst(value, valueTy, "from-storage-type", insertAtEnd);
-  return value;
-}
diff --git a/java/lib/Compiler/Locals.h b/java/lib/Compiler/Locals.h
deleted file mode 100644
index 763619d..0000000
--- a/java/lib/Compiler/Locals.h
+++ /dev/null
@@ -1,55 +0,0 @@
-//===-- Locals.h - Java locals ----------------------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of Java locals. We model the
-// locals as an array of lazily created allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_LOCALS_H
-#define LLVM_JAVA_LOCALS_H
-
-#include "Resolver.h"
-#include <map>
-#include <vector>
-
-namespace llvm {
-
-  class AllocaInst;
-  class BasicBlock;
-  class Instruction;
-  class Type;
-  class Value;
-
-} // namespace llvm
-
-namespace llvm { namespace Java {
-
-  class Locals {
-    const Resolver* resolver_;
-    typedef std::map<const Type*, AllocaInst*> SlotMap;
-    std::vector<SlotMap> locals_;
-
-  public:
-    Locals(const Resolver* resolver, unsigned maxLocals);
-
-    /// @brief - Stores the value \c value on the \c i'th local
-    /// variable and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    void store(unsigned i, Value* value, BasicBlock* insertAtEnd);
-
-    /// @brief - Loads the value of the \c i'th local variable of type
-    /// \c type and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    Value* load(unsigned i, const Type* type, BasicBlock* insertAtEnd);
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_LOCALS_H
diff --git a/java/lib/Compiler/Makefile b/java/lib/Compiler/Makefile
deleted file mode 100644
index b79e2d8..0000000
--- a/java/lib/Compiler/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- lib/Compiler/Makefile -------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-LIBRARYNAME := LLVMJavaCompiler
-
-BUILD_ARCHIVE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/java/lib/Compiler/OperandStack.cpp b/java/lib/Compiler/OperandStack.cpp
deleted file mode 100644
index 5763d4e..0000000
--- a/java/lib/Compiler/OperandStack.cpp
+++ /dev/null
@@ -1,179 +0,0 @@
-//===-- OperandStack.cpp - Java operand stack -----------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of a Java operand stack. We
-// model the java operand stack as a stack of LLVM allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#include "OperandStack.h"
-#include <llvm/BasicBlock.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/ADT/StringExtras.h>
-#include <llvm/Java/Compiler.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-void OperandStack::copySlots(const SlotMap& src,
-                             SlotMap& dst,
-                             BasicBlock* insertAtEnd)
-{
-  SlotMap::const_iterator it = src.begin();
-  SlotMap::const_iterator end = src.end();
-
-  for (; it != end; ++it) {
-    AllocaInst* srcSlot = it->second;
-    AllocaInst* dstSlot = getOrCreateSlot(dst, it->first, insertAtEnd);
-    Value* value = new LoadInst(srcSlot, "tmp", insertAtEnd);
-    new StoreInst(value, dstSlot, insertAtEnd);
-  }
-}
-
-llvm::AllocaInst* OperandStack::getOrCreateSlot(SlotMap& slotMap,
-                                                const Type* type,
-                                                BasicBlock* bb)
-{
-  SlotMap::iterator it = slotMap.find(type);
-
-  if (it == slotMap.end()) {
-    // Insert the alloca at the beginning of the entry block.
-    BasicBlock* entry = &bb->getParent()->getEntryBlock();
-    AllocaInst* alloca = new AllocaInst(type, NULL, "opStack", entry);
-    it = slotMap.insert(it, std::make_pair(type, alloca));
-  }
-
-  return it->second;
-}
-
-void OperandStack::push(Value* value, BasicBlock* insertAtEnd)
-{
-  assert(currentDepth_ < stack_.size() && "Pushing to a full stack!");
-  const Type* valueTy = value->getType();
-//   std::cerr << "PUSH(" << insertAtEnd << "/"
-//             << insertAtEnd->getParent()->getName() << " " << stack_.size()
-//             << ") Depth: " << currentDepth_ << " type: " << *valueTy << '\n';
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-  if (valueTy != storageTy)
-    value = new CastInst(value, storageTy, "to-storage-type", insertAtEnd);
-
-  SlotMap& slotMap = stack_[currentDepth_];
-  AllocaInst* slot = getOrCreateSlot(slotMap, storageTy, insertAtEnd);
-  new StoreInst(value, slot, insertAtEnd);
-  currentDepth_ += 1 + resolver_->isTwoSlotType(storageTy);
-  assert(currentDepth_ < stack_.size() && "Pushed more than max stack depth!");
-}
-
-llvm::Value* OperandStack::pop(const Type* valueTy, BasicBlock* insertAtEnd)
-{
-  const Type* storageTy = resolver_->getStorageType(valueTy);
-
-  assert(currentDepth_ != 0 && "Popping from an empty stack!");
-  currentDepth_ -= 1 + resolver_->isTwoSlotType(storageTy);
-//   std::cerr << "POP(" << insertAtEnd->getName() << "/"
-//             << insertAtEnd->getParent()->getName() << " " << stack_.size()
-//             << ")  Depth: " << currentDepth_ << " type: " << *valueTy << '\n';
-
-  SlotMap& slotMap = stack_[currentDepth_];
-  SlotMap::iterator it = slotMap.find(storageTy);
-
-  assert(it != slotMap.end() && "Type mismatch on operand stack!");
-  Value* value = new LoadInst(it->second, "pop", insertAtEnd);
-  if (valueTy != storageTy)
-    value = new CastInst(value, valueTy, "from-storage-type", insertAtEnd);
-  return value;
-}
-
-/// ..., value -> ...
-void OperandStack::do_pop(BasicBlock* insertAtEnd)
-{
-  assert(currentDepth_ != 0 && "Popping from an empty stack!");
-  --currentDepth_;
-}
-
-/// ..., value2, value1 -> ...
-/// ..., value -> ...
-void OperandStack::do_pop2(BasicBlock* insertAtEnd)
-{
-  do_pop(insertAtEnd);
-  do_pop(insertAtEnd);
-}
-
-/// ..., value -> ..., value, value
-void OperandStack::do_dup(BasicBlock* insertAtEnd)
-{
-  assert(currentDepth_ != 0 && "Popping from an empty stack!");
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_], insertAtEnd);
-  ++currentDepth_;
-}
-
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup_x1(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-2], insertAtEnd);
-  ++currentDepth_;
-}
-
-/// ..., value3, value2, value1 -> ..., value1, value3, value2, value1
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup_x2(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_-3], stack_[currentDepth_-2], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-3], insertAtEnd);
-  ++currentDepth_;
-}
-
-/// ..., value2, value1 -> ..., value2, value1, value2, value1
-void OperandStack::do_dup2(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_+1], insertAtEnd);
-  currentDepth_ += 2;
-}
-
-/// ..., value3, value2, value1 -> ..., value2, value1, value3, value2, value1
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup2_x1(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_+1], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-3], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_+1], stack_[currentDepth_-2], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-3], insertAtEnd);
-  currentDepth_ += 2;
-}
-
-/// ..., value4, value3, value2, value1 -> ..., value2, value1, value4, value3, value2, value1
-/// ..., value3, value2, value1 -> ..., value1, value3, value2, value1
-/// ..., value3, value2, value1 -> ..., value2, value1, value3, value2, value1
-/// ..., value2, value1 -> ..., value1, value2, value1
-void OperandStack::do_dup2_x2(BasicBlock* insertAtEnd)
-{
-  copySlots(stack_[currentDepth_-1], stack_[currentDepth_+1], insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_], insertAtEnd);
-  copySlots(stack_[currentDepth_-3], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(stack_[currentDepth_-4], stack_[currentDepth_-2], insertAtEnd);
-  copySlots(stack_[currentDepth_+1], stack_[currentDepth_-3], insertAtEnd);
-  copySlots(stack_[currentDepth_], stack_[currentDepth_-4], insertAtEnd);
-  currentDepth_ += 2;
-}
-
-void OperandStack::do_swap(BasicBlock* insertAtEnd)
-{
-  SlotMap tmp;
-  copySlots(stack_[currentDepth_-1], tmp, insertAtEnd);
-  copySlots(stack_[currentDepth_-2], stack_[currentDepth_-1], insertAtEnd);
-  copySlots(tmp, stack_[currentDepth_-2], insertAtEnd);
-}
diff --git a/java/lib/Compiler/OperandStack.h b/java/lib/Compiler/OperandStack.h
deleted file mode 100644
index b987d36..0000000
--- a/java/lib/Compiler/OperandStack.h
+++ /dev/null
@@ -1,82 +0,0 @@
-//===-- OperandStack.h - Java operand stack ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the abstraction of a Java operand stack. We
-// model the java operand stack as a stack of LLVM allocas.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_OPERANDSTACK_H
-#define LLVM_JAVA_OPERANDSTACK_H
-
-#include "Resolver.h"
-#include <llvm/Value.h>
-#include <llvm/Instruction.h>
-#include <map>
-#include <vector>
-
-namespace llvm {
-
-  class AllocaInst;
-  class Instruction;
-  class Value;
-
-} // namespace llvm
-
-namespace llvm {  namespace Java {
-
-  class OperandStack {
-    const Resolver* resolver_;
-    unsigned currentDepth_;
-    typedef std::map<const Type*, AllocaInst*> SlotMap;
-    std::vector<SlotMap> stack_;
-
-  public:
-    explicit OperandStack(const Resolver* resolver, unsigned maxDepth)
-      : resolver_(resolver),
-        currentDepth_(0),
-        stack_(maxDepth) { }
-
-    unsigned getDepth() const { return currentDepth_; }
-    void setDepth(unsigned newDepth) {
-      assert(newDepth < stack_.size() &&
-             "Cannot set depth greater than the max depth!");
-      currentDepth_ = newDepth;
-    }
-
-    /// @brief - Pushes the value \c value on the virtual operand
-    /// stack and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    void push(Value* value, BasicBlock* insertAtEnd);
-
-    /// @brief - Pops a value of type \c type from the virtual operand
-    /// stack and appends any instructions to implement this to \c
-    /// insertAtEnd BasicBlock
-    Value* pop(const Type* type, BasicBlock* insertAtEnd);
-
-    void do_pop(BasicBlock* insertAtEnd);
-    void do_pop2(BasicBlock* insertAtEnd);
-    void do_dup(BasicBlock* insertAtEnd);
-    void do_dup_x1(BasicBlock* insertAtEnd);
-    void do_dup_x2(BasicBlock* insertAtEnd);
-    void do_dup2(BasicBlock* insertAtEnd);
-    void do_dup2_x1(BasicBlock* insertAtEnd);
-    void do_dup2_x2(BasicBlock* insertAtEnd);
-    void do_swap(BasicBlock* insertAtEnd);
-
-  private:
-    AllocaInst* getOrCreateSlot(SlotMap& slotMap,
-                                const Type* type,
-                                BasicBlock* bb);
-    void copySlots(const SlotMap& src, SlotMap& dst, BasicBlock* insertAtEnd);
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_OPERANDSTACK_H
diff --git a/java/lib/Compiler/Resolver.cpp b/java/lib/Compiler/Resolver.cpp
deleted file mode 100644
index ac5d6a1..0000000
--- a/java/lib/Compiler/Resolver.cpp
+++ /dev/null
@@ -1,252 +0,0 @@
-//===-- Resolver.cpp - Class resolver for Java classes ----------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Java class resolver.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "javaresolver"
-
-#include "Resolver.h"
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-Resolver::Resolver(Module* module)
-  : module_(module),
-    nextInterfaceIndex_(0),
-    objectBaseLayoutType_(OpaqueType::get()),
-    objectBaseType_(PointerType::get(objectBaseLayoutType_)),
-    classRecordType_(OpaqueType::get()),
-    classRecordPtrType_(PointerType::get(classRecordType_))
-{
-  module_->addTypeName("struct.llvm_java_object_base",
-                       getObjectBaseLayoutType());
-
-  // Compute the class record type. A class record looks like:
-  //
-  // struct class_record {
-  //   struct type_info;
-  // };
-  //
-  // struct type_info {
-  //   char* name;
-  //   int depth;
-  //   struct class_record** superclasses;
-  //   int interfaceIndex;
-  //   struct class_record** interfaces;
-  //   struct class_record* component;
-  //   int elementSize;
-  //   char** fieldDescriptors;
-  //   unsigned* fieldOffsets;
-  //   char** staticFieldDescriptors;
-  //   void** staticFields;
-  //   char** MethodDescriptors;
-  //   void** Methods;
-  //   char** staticMethodDescriptors;
-  //   void** staticMethods;
-  // };
-
-  // Compute the type_info type.
-  std::vector<const Type*> elements;
-  elements.push_back(PointerType::get(Type::SByteTy));
-  elements.push_back(Type::IntTy);
-  elements.push_back(PointerType::get(PointerType::get(classRecordType_)));
-  elements.push_back(Type::IntTy);
-  elements.push_back(PointerType::get(PointerType::get(classRecordType_)));
-  elements.push_back(PointerType::get(classRecordType_));
-  elements.push_back(Type::IntTy);
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(Type::UIntTy));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  elements.push_back(PointerType::get(PointerType::get(Type::SByteTy)));
-  typeInfoType_ = StructType::get(elements);
-
-  module_->addTypeName("struct.llvm_java_typeinfo", getTypeInfoType());
-
-  // Compute the class_record type.
-  PATypeHolder holder = classRecordType_;
-  cast<OpaqueType>(const_cast<Type*>(classRecordType_))->refineAbstractTypeTo(
-    StructType::get(std::vector<const Type*>(1, getTypeInfoType())));
-  classRecordType_ = holder.get();
-
-  module_->addTypeName("struct.llvm_java_class_record", getClassRecordType());
-
-  classRecordPtrType_ = PointerType::get(classRecordType_);
-}
-
-const Type* Resolver::getType(const std::string& descriptor,
-                              bool memberMethod) const
-{
-  unsigned i = 0;
-  return getTypeHelper(descriptor, i, memberMethod);
-}
-
-const Type* Resolver::getTypeHelper(const std::string& descr,
-                                    unsigned& i,
-                                    bool memberMethod) const
-{
-  assert(i < descr.size());
-  switch (descr[i++]) {
-  case 'B': return Type::SByteTy;
-  case 'C': return Type::UShortTy;
-  case 'D': return Type::DoubleTy;
-  case 'F': return Type::FloatTy;
-  case 'I': return Type::IntTy;
-  case 'J': return Type::LongTy;
-  case 'S': return Type::ShortTy;
-  case 'Z': return Type::BoolTy;
-  case 'V': return Type::VoidTy;
-  case 'L': {
-    unsigned e = descr.find(';', i);
-    i = e + 1;
-    return getObjectBaseType();
-  }
-  case '[':
-    // Skip '['s.
-    if (descr[i] == '[')
-      do { ++i; } while (descr[i] == '[');
-    // Consume the element type
-    getTypeHelper(descr, i);
-    return getObjectBaseType();
-  case '(': {
-    std::vector<const Type*> params;
-    if (memberMethod)
-      params.push_back(getObjectBaseType());
-    while (descr[i] != ')')
-      params.push_back(getTypeHelper(descr, i));
-    return FunctionType::get(getTypeHelper(descr, ++i), params, false);
-  }
-    // FIXME: Throw something
-  default:  assert(0 && "Cannot parse type descriptor!");
-  }
-  return 0; // not reached
-}
-
-const VMClass* Resolver::getClassForDesc(const std::string& descriptor)
-{
-  ClassMap::iterator it = classMap_.lower_bound(descriptor);
-  if (it == classMap_.end() || it->first != descriptor) {
-    switch (descriptor[0]) {
-    case 'B':
-      it = insertClass(it, VMClass(this, Type::SByteTy));
-      break;
-    case 'C':
-      it = insertClass(it, VMClass(this, Type::UShortTy));
-      break;
-    case 'D':
-      it = insertClass(it, VMClass(this, Type::DoubleTy));
-      break;
-    case 'F':
-      it = insertClass(it, VMClass(this, Type::FloatTy));
-      break;
-    case 'I':
-      it = insertClass(it, VMClass(this, Type::IntTy));
-      break;
-    case 'J':
-      it = insertClass(it, VMClass(this, Type::LongTy));
-      break;
-    case 'S':
-      it = insertClass(it, VMClass(this, Type::ShortTy));
-      break;
-    case 'Z':
-      it = insertClass(it, VMClass(this, Type::BoolTy));
-      break;
-    case 'V':
-      it = insertClass(it, VMClass(this, Type::VoidTy));
-      break;
-    case 'L': {
-      unsigned pos = descriptor.find(';', 1);
-      const std::string& className = descriptor.substr(1, pos - 1);
-      it = insertClass(it, VMClass(this, className));
-      break;
-    }
-    case '[': {
-      const std::string& componentDescriptor = descriptor.substr(1);
-      it = insertClass(it, VMClass(this, getClassForDesc(componentDescriptor)));
-      break;
-    }
-    default:
-      assert(0 && "Cannot parse type descriptor!");
-      abort();
-    }
-    it->second.link();
-    if (!it->second.isPrimitive() && !it->second.isInterface())
-      module_->addTypeName("struct." + descriptor, it->second.getLayoutType());
-    DEBUG(std::cerr << "Loaded class: " << it->second.getName());
-    DEBUG(std::cerr << " (" << it->second.getInterfaceIndex() << ")\n");
-  }
-
-  return &it->second;
-}
-
-const VMClass* Resolver::getClass(JType type)
-{
-  switch (type) {
-  case BOOLEAN: return getClassForDesc("Z");
-  case CHAR: return getClassForDesc("C");
-  case FLOAT: return getClassForDesc("F");
-  case DOUBLE: return getClassForDesc("D");
-  case BYTE: return getClassForDesc("B");
-  case SHORT: return getClassForDesc("S");
-  case INT: return getClassForDesc("I");
-  case LONG: return getClassForDesc("J");
-  default: assert(0 && "Unhandled JType!"); abort();
-  }
-}
-
-const Type* Resolver::getStorageType(const Type* type) const
-{
-  if (isa<PointerType>(type))
-    return getObjectBaseType();
-  else if (type == Type::BoolTy ||
-           type == Type::UByteTy ||
-           type == Type::SByteTy ||
-           type == Type::UShortTy ||
-           type == Type::ShortTy ||
-           type == Type::UIntTy)
-    return Type::IntTy;
-  else if (type == Type::ULongTy)
-    return Type::LongTy;
-  else
-    return type;
-}
-
-void Resolver::emitClassRecordsArray() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(classMap_.size() + 1);
-
-  for (ClassMap::const_iterator i = classMap_.begin(), e = classMap_.end();
-       i != e; ++i)
-    init.push_back(ConstantExpr::getCast(i->second.getClassRecord(),
-                                         classRecordPtrType_));
-
-  // Null terminate the array.
-  init.push_back(llvm::Constant::getNullValue(classRecordPtrType_));
-
-  const ArrayType* arrayType = ArrayType::get(classRecordPtrType_, init.size());
-
-  new GlobalVariable(
-    arrayType,
-    true,
-    GlobalVariable::ExternalLinkage,
-    ConstantArray::get(arrayType, init),
-    "llvm_java_class_records",
-    module_);                       
-}
diff --git a/java/lib/Compiler/Resolver.h b/java/lib/Compiler/Resolver.h
deleted file mode 100644
index c48f2f3..0000000
--- a/java/lib/Compiler/Resolver.h
+++ /dev/null
@@ -1,95 +0,0 @@
-//===-- Resolver.h - Class resolver for Java classes ------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of a Java class resolver. This
-// object creates Class objects out of loaded ClassFiles.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_RESOLVER_H
-#define LLVM_JAVA_RESOLVER_H
-
-#include "VMClass.h"
-#include <llvm/Java/Bytecode.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
-#include <map>
-#include <string>
-
-namespace llvm { namespace Java {
-
-  class Resolver {
-    Module* module_;
-    typedef std::map<std::string, VMClass> ClassMap;
-    ClassMap classMap_;
-    unsigned nextInterfaceIndex_;
-    const Type* objectBaseLayoutType_;
-    const Type* objectBaseType_;
-    const Type* typeInfoType_;
-    const Type* classRecordType_;
-    const Type* classRecordPtrType_;
-
-    const VMClass* getClassForDesc(const std::string& descriptor);
-
-    const Type* getTypeHelper(const std::string&,
-                              unsigned& i,
-                              bool memberMethod = false) const;
-
-    ClassMap::iterator insertClass(ClassMap::iterator i, const VMClass& clazz) {
-      return classMap_.insert(i, std::make_pair(clazz.getDescriptor(), clazz));
-    }
-
-    friend class VMClass;
-
-  public:
-    static std::string canonicalizeClassName(const std::string& className) {
-      if (className[0] == '[')
-        return className;
-      else
-        return 'L' + className + ';';
-    }
-
-    Resolver(Module* module);
-
-    const Type* getObjectBaseLayoutType() const {return objectBaseLayoutType_; }
-    const Type* getObjectBaseType() const { return objectBaseType_; }
-    const Type* getTypeInfoType() const { return typeInfoType_; }
-    const Type* getClassRecordType() const { return classRecordType_; }
-    const Type* getClassRecordPtrType() const { return classRecordPtrType_; }
-
-    const Type* getType(const std::string& descriptor,
-                        bool memberMethod = false) const;
-    const Type* getStorageType(const Type* type) const;
-
-    inline bool isTwoSlotType(const Type* type) const {
-      return type == Type::LongTy || type == Type::DoubleTy;
-    }
-
-    inline bool isOneSlotType(const Type* type) const {
-      return !isTwoSlotType(type);
-    }
-
-    const VMClass* getClass(const std::string& className) {
-      return getClassForDesc(canonicalizeClassName(className));
-    }
-
-    const VMClass* getClass(JType type);
-
-    const VMClass* getArrayClass(const VMClass* clazz) {
-      return getClassForDesc('[' + clazz->getDescriptor());
-    }
-
-    unsigned getNextInterfaceIndex() { return nextInterfaceIndex_++; }
-    Module* getModule() { return module_; }
-    void emitClassRecordsArray() const;
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_RESOLVER_H
diff --git a/java/lib/Compiler/VMClass.cpp b/java/lib/Compiler/VMClass.cpp
deleted file mode 100644
index 7467289..0000000
--- a/java/lib/Compiler/VMClass.cpp
+++ /dev/null
@@ -1,781 +0,0 @@
-//===-- VMClass.cpp - Compiler representation of a Java class ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the Class class that represents a
-// compile time representation of a Java class (java.lang.Class). This unlike
-// a classfile representation, it resolves the constant pool, creates global
-// variables for the static members of this class and also creates the class
-// record (vtable) of this class.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "javaclass"
-
-#include "VMClass.h"
-#include "Resolver.h"
-#include <llvm/DerivedTypes.h>
-#include <llvm/Constants.h>
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-// On initialization we create a placeholder global for the class
-// record that will be patched later when the class record is
-// computed.
-void VMClass::init()
-{
-  classRecord_ = new GlobalVariable(
-    OpaqueType::get(),
-    false,
-    GlobalVariable::ExternalLinkage,
-    NULL,
-    getName() + "<class_record>",
-    resolver_->getModule());
-}
-
-VMClass::VMClass(Resolver* resolver, const std::string& className)
-  : name_(className),
-    descriptor_(Resolver::canonicalizeClassName(className)),
-    resolver_(resolver),
-    classFile_(ClassFile::get(className)),
-    componentClass_(NULL),
-    layoutType_(OpaqueType::get()),
-    type_(PointerType::get(layoutType_)),
-    interfaceIndex_(INVALID_INTERFACE_INDEX),
-    resolvedConstantPool_(classFile_->getNumConstants())
-{
-  init();
-}
-
-VMClass::VMClass(Resolver* resolver, const VMClass* componentClass)
-  : name_('[' + componentClass->getDescriptor()),
-    descriptor_(name_),
-    resolver_(resolver),
-    classFile_(NULL),
-    componentClass_(componentClass),
-    layoutType_(OpaqueType::get()),
-    type_(PointerType::get(layoutType_)),
-    interfaceIndex_(INVALID_INTERFACE_INDEX)
-{
-  init();
-}
-
-VMClass::VMClass(Resolver* resolver, const Type* type)
-  : name_(type == Type::SByteTy  ? "byte" :
-          type == Type::UShortTy ? "char" :
-          type == Type::DoubleTy ? "double" :
-          type == Type::FloatTy  ? "float" :
-          type == Type::IntTy    ? "int" :
-          type == Type::LongTy   ? "long" :
-          type == Type::ShortTy  ? "short" :
-          type == Type::BoolTy   ? "boolean" : "void"),
-    descriptor_(type == Type::SByteTy  ? "B" :
-                type == Type::UShortTy ? "C" :
-                type == Type::DoubleTy ? "D" :
-                type == Type::FloatTy  ? "F" :
-                type == Type::IntTy    ? "I" :
-                type == Type::LongTy   ? "J" :
-                type == Type::ShortTy  ? "S" :
-                type == Type::BoolTy   ? "Z" : "V"),
-    resolver_(resolver),
-    classFile_(NULL),
-    componentClass_(NULL),
-    layoutType_(const_cast<Type*>(type)),
-    type_(type),
-    interfaceIndex_(INVALID_INTERFACE_INDEX)
-{
-  init();
-}
-
-const VMField* VMClass::lookupField(const std::string& name) const
-{
-  if (const VMField* field = getField(name))
-    return field;
-
-  for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i) {
-    const VMClass* interface = getInterface(i);
-    if (const VMField* field = interface->getField(name))
-      return field;
-  }
-
-  for (unsigned i = 0, e = getNumSuperClasses(); i != e; ++i) {
-    const VMClass* superClass = getSuperClass(i);
-    if (const VMField* field = superClass->getField(name))
-      return field;
-  }
-
-  return NULL;
-}
-
-const VMMethod* VMClass::lookupMethod(const std::string& nameAndType) const
-{
-  if (const VMMethod* method = getMethod(nameAndType))
-    return method;
-
-  if (isInterface())
-    for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i) {
-      const VMClass* interface = getInterface(i);
-      if (const VMMethod* method = interface->getMethod(nameAndType))
-        return method;
-    }
-  else
-    for (unsigned i = 0, e = getNumSuperClasses(); i != e; ++i) {
-      const VMClass* superClass = getSuperClass(i);
-      if (const VMMethod* method = superClass->getMethod(nameAndType))
-        return method;
-    }
-
-  return NULL;
-}
-
-void VMClass::computeLayout()
-{
-  DEBUG(std::cerr << "Computing layout for: " << getName() << '\n');
-  // The layout of primitive classes is already computed.
-  if (isPrimitive()) {
-    DEBUG(std::cerr << "Computed layout for: " << getName() << '\n');
-    return;
-  }
-
-  std::vector<const Type*> layout;
-  if (isArray()) {
-    layout.reserve(3);
-    layout.push_back(resolver_->getClass("java/lang/Object")->getLayoutType());
-    layout.push_back(Type::UIntTy);
-    layout.push_back(ArrayType::get(componentClass_->getType(), 0));
-  }
-  else {
-    if (const VMClass* superClass = getSuperClass())
-      layout.push_back(superClass->getLayoutType());
-    else // This is java/lang/Object
-      layout.push_back(resolver_->getObjectBaseLayoutType());
-    // Now add the fields.
-    const Fields& fields = classFile_->getFields();
-    for (unsigned i = 0, e = fields.size(); i != e; ++i) {
-      Field* field = fields[i];
-      const std::string& name = field->getName()->str();
-      if (field->isStatic()) {
-        FieldMap::iterator i = fieldMap_.insert(
-          std::make_pair(name, VMField(this, field))).first;
-        staticFields_.push_back(&i->second);
-      }
-      else {
-        unsigned index = memberFields_.size() + 1;
-        FieldMap::iterator i = fieldMap_.insert(
-          std::make_pair(name, VMField(this, field, index))).first;
-        const VMField* vmf = &i->second;
-        memberFields_.push_back(vmf);
-        layout.push_back(vmf->getClass()->getType());
-      }
-    }
-  }
-
-  PATypeHolder holder = layoutType_;
-  Type* resolvedType = StructType::get(layout);
-  cast<OpaqueType>(layoutType_)->refineAbstractTypeTo(resolvedType);
-  layoutType_ = holder.get();
-  type_ = PointerType::get(layoutType_);
-
-  DEBUG(std::cerr << "Computed layout for: " << getName() << '\n');
-}
-
-llvm::Constant* VMClass::buildSuperClassRecords() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumSuperClasses());
-  for (unsigned i = getNumSuperClasses(); i--; )
-    init.push_back(ConstantExpr::getCast(
-                     getSuperClass(i)->getClassRecord(),
-                     resolver_->getClassRecordPtrType()));
-
-  const ArrayType* superClassRecordsType =
-    ArrayType::get(resolver_->getClassRecordPtrType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      superClassRecordsType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(superClassRecordsType, init),
-      getName() + "<super_class_records>",
-      resolver_->getModule()));
-}
-
-llvm::Constant*
-VMClass::buildInterfaceClassRecord(const VMClass* interface) const
-{
-  assert(interface->isInterface() && "Must be passed an interface!");
-
-  std::vector<llvm::Constant*> init;
-  init.reserve(interface->getNumDynamicMethods() + 1);
-  // Insert a null type info for this interface.
-  init.push_back(llvm::Constant::getNullValue(resolver_->getTypeInfoType()));
-  // For each method this interface declares, find the corresponding
-  // method in this class and put it in its slot.
-  for (unsigned i = 0, e = interface->getNumDynamicMethods(); i != e; ++i) {
-    assert(init.size() == i+1 && "Interface method not found in class!");
-    const VMMethod* interfaceMethod = interface->getDynamicMethod(i);
-    for (unsigned j = 0, f = getNumDynamicMethods(); j != f; ++j) {
-      const VMMethod* method = getDynamicMethod(j);
-      if (method->getName() == interfaceMethod->getName() &&
-          method->getDescriptor() == interfaceMethod->getDescriptor()) {
-        init.push_back(method->getFunction());
-        break;
-      }
-    }
-  }
-
-  llvm::Constant* classRecordInit = ConstantStruct::get(init);
-
-  return ConstantExpr::getCast(
-    new GlobalVariable(
-      classRecordInit->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      classRecordInit,
-      getName() + '+' + interface->getName() + "<class_record>",
-      resolver_->getModule()),
-    resolver_->getClassRecordPtrType());
-}
-
-llvm::Constant* VMClass::buildInterfaceClassRecords() const
-{
-  // This is an interface or primitive class record so it doesn't
-  // implement any interfaces. Thus the pointer to the array of
-  // implemented interfaces is null.
-  if (isInterface() || isPrimitive()) {
-    const Type* classRecordPtrPtrType =
-      PointerType::get(resolver_->getClassRecordPtrType());
-
-    return llvm::Constant::getNullValue(classRecordPtrPtrType);
-  }
-
-  // Otherwise this is a class or array class record so we have to
-  // fill in the array of implemented interfaces up the max interface
-  // index and build each individual interface class record for this
-  // class.
-  llvm::Constant* nullClassRecord =
-    llvm::Constant::getNullValue(resolver_->getClassRecordPtrType());
-  std::vector<llvm::Constant*> init(getInterfaceIndex()+1, nullClassRecord);
-
-  for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i) {
-    const VMClass* interface = getInterface(i);
-    init[interface->getInterfaceIndex()] = buildInterfaceClassRecord(interface);
-  }
-
-  const ArrayType* interfaceClassRecordsType =
-    ArrayType::get(resolver_->getClassRecordPtrType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      interfaceClassRecordsType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(interfaceClassRecordsType, init),
-      getName() + "<interface_class_records>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildClassName() const
-{
-  llvm::Constant* name = ConstantArray::get(getName());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      name->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      name,
-      getName() + "<classname>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildFieldDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(memberFields_.size()+1);
-
-  for (unsigned i = 0, e = memberFields_.size(); i != e; ++i) {
-    const VMField* field = memberFields_[i];
-    init.push_back(field->buildFieldDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<field_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildFieldOffsets() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(memberFields_.size());
-
-  for (unsigned i = 0, e = memberFields_.size(); i != e; ++i) {
-    const VMField* field = memberFields_[i];
-    init.push_back(field->buildFieldOffset());
-  }
-
-  const ArrayType* arrayType = ArrayType::get(Type::UIntTy, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<field_offsets>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticFieldDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(staticFields_.size()+1);
-
-  for (unsigned i = 0, e = staticFields_.size(); i != e; ++i) {
-    const VMField* field = staticFields_[i];
-    init.push_back(field->buildFieldDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_field_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticFieldPointers() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(staticFields_.size());
-
-  const Type* pointerType = PointerType::get(Type::SByteTy);
-  for (unsigned i = 0, e = staticFields_.size(); i != e; ++i) {
-    const VMField* field = staticFields_[i];
-    init.push_back(ConstantExpr::getCast(field->getGlobal(), pointerType));
-  }
-
-  const ArrayType* arrayType = ArrayType::get(pointerType, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_field_pointers>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildMethodDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods() + 1);
-
-  for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-    const VMMethod* method = getDynamicMethod(i);
-    init.push_back(method->buildMethodDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<method_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildMethodPointers() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods());
-
-  const Type* pointerType = PointerType::get(Type::SByteTy);
-  for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-    const VMMethod* method = getDynamicMethod(i);
-    init.push_back(ConstantExpr::getCast(method->getBridgeFunction(),
-                                         pointerType));
-  }
-
-  const ArrayType* arrayType = ArrayType::get(pointerType, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<method_pointers>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticMethodDescriptors() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods() + 1);
-
-  for (unsigned i = 0, e = getNumStaticMethods(); i != e; ++i) {
-    const VMMethod* method = getStaticMethod(i);
-    init.push_back(method->buildMethodDescriptor());
-  }
-  // Null terminate.
-  init.push_back(llvm::Constant::getNullValue(PointerType::get(Type::SByteTy)));
-
-  const ArrayType* arrayType =
-    ArrayType::get(init.back()->getType(), init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_method_descriptors>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildStaticMethodPointers() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(getNumStaticMethods());
-
-  const Type* pointerType = PointerType::get(Type::SByteTy);
-  for (unsigned i = 0, e = getNumStaticMethods(); i != e; ++i) {
-    const VMMethod* method = getStaticMethod(i);
-    init.push_back(ConstantExpr::getCast(method->getBridgeFunction(),
-                                         pointerType));
-  }
-
-  const ArrayType* arrayType = ArrayType::get(pointerType, init.size());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      arrayType,
-      true,
-      GlobalVariable::ExternalLinkage,
-      ConstantArray::get(arrayType, init),
-      getName() + "<static_method_pointers>",
-      resolver_->getModule()));
-}
-
-llvm::Constant* VMClass::buildClassTypeInfo() const
-{
-  std::vector<llvm::Constant*> init;
-  init.reserve(5);
-
-  init.push_back(buildClassName());
-  init.push_back(ConstantSInt::get(Type::IntTy, getNumSuperClasses()));
-  init.push_back(buildSuperClassRecords());
-  init.push_back(ConstantSInt::get(Type::IntTy, getInterfaceIndex()));
-  init.push_back(buildInterfaceClassRecords());
-  if (isArray())
-    init.push_back(ConstantExpr::getCast(getComponentClass()->getClassRecord(),
-                                         resolver_->getClassRecordPtrType()));
-  else
-    init.push_back(
-      llvm::Constant::getNullValue(resolver_->getClassRecordPtrType()));
-  if (isArray())
-    init.push_back(
-      ConstantExpr::getCast(
-        ConstantExpr::getSizeOf(getComponentClass()->getType()), Type::IntTy));
-  else if (isPrimitive())
-    init.push_back(ConstantSInt::get(Type::IntTy, -2));
-  else if (isInterface())
-    init.push_back(ConstantSInt::get(Type::IntTy, -1));
-  else // A class.
-    init.push_back(ConstantSInt::get(Type::IntTy, 0));
-
-  init.push_back(buildFieldDescriptors());
-  init.push_back(buildFieldOffsets());
-  init.push_back(buildStaticFieldDescriptors());
-  init.push_back(buildStaticFieldPointers());
-  init.push_back(buildMethodDescriptors());
-  init.push_back(buildMethodPointers());
-  init.push_back(buildStaticMethodDescriptors());
-  init.push_back(buildStaticMethodPointers());
-
-  return ConstantStruct::get(init);
-}
-
-void VMClass::computeClassRecord()
-{
-  DEBUG(std::cerr << "Computing class record for: " << getName() << '\n');
-  // Find dynamically bound methods.
-  if (!isPrimitive()) {
-    if (const VMClass* superClass = getSuperClass())
-      dynamicMethods_ = superClass->dynamicMethods_;
-
-    if (getClassFile()) {
-      const Methods& methods = classFile_->getMethods();
-      for (unsigned i = 0, e = methods.size(); i != e; ++i) {
-        Method* method = methods[i];
-        const std::string& name = method->getName()->str();
-        const std::string& descriptor = method->getDescriptor()->str();
-
-        // If method is statically bound just create it.
-        if (method->isPrivate() || method->isStatic() || name[0] == '<') {
-          MethodMap::iterator i =
-            methodMap_.insert(
-              std::make_pair(name + descriptor, VMMethod(this, method))).first;
-          staticMethods_.push_back(&i->second);
-        }
-        // Otherwise we need to assign an index for it and update the
-        // dynamicMethods_ vector.
-        else {
-          const VMMethod* overridenMethod = NULL;
-          for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-            const VMMethod* m = getDynamicMethod(i);
-            if (m->getName() == name && m->getDescriptor() == descriptor)
-              overridenMethod = m;
-          }
-
-          // If this is an overriden method reuse the method index
-          // with the overriding one.
-          if (overridenMethod) {
-            int index = overridenMethod->getMethodIndex();
-            MethodMap::iterator i = methodMap_.insert(
-              std::make_pair(name + descriptor,
-                             VMMethod(this, method, index))).first;
-            dynamicMethods_[index] = &i->second;
-          }
-          // Otherwise assign it a new index.
-          else {
-            int index = dynamicMethods_.size();
-            MethodMap::iterator i = methodMap_.insert(
-              std::make_pair(
-                name + descriptor, VMMethod(this, method, index))).first;
-            dynamicMethods_.push_back(&i->second);
-          }
-        }
-      }
-    }
-  }
-
-  std::vector<llvm::Constant*> init;
-  init.reserve(1 + getNumDynamicMethods());
-  init.push_back(buildClassTypeInfo());
-  for (unsigned i = 0, e = getNumDynamicMethods(); i != e; ++i) {
-    const VMMethod* method = getDynamicMethod(i);
-    init.push_back(
-      method->isAbstract() ?
-      llvm::Constant::getNullValue(method->getFunction()->getType()) :
-      method->getFunction());
-  }
-
-  llvm::Constant* classRecordInit = ConstantStruct::get(init);
-  resolver_->getModule()->addTypeName("classRecord." + getName(),
-                                      classRecordInit->getType());
-
-  // Now resolve the opaque type of the placeholder class record.
-  const Type* classRecordType =
-    cast<PointerType>(classRecord_->getType())->getElementType();
-  OpaqueType* opaqueType = cast<OpaqueType>(const_cast<Type*>(classRecordType));
-  opaqueType->refineAbstractTypeTo(classRecordInit->getType());
-  // Set the initializer of the class record.
-  classRecord_->setInitializer(classRecordInit);
-  // Mark the class record as constant.
-  classRecord_->setConstant(true);
-
-  DEBUG(std::cerr << "Computed class record for: " << getName() << '\n');
-}
-
-void VMClass::link()
-{
-  // Primitive classes require no linking.
-  if (isPrimitive())
-    ;
-  else if (isArray()) {
-    superClasses_.reserve(1);
-    superClasses_.push_back(resolver_->getClass("java/lang/Object"));
-
-    interfaces_.reserve(2);
-    interfaces_.push_back(resolver_->getClass("java/lang/Cloneable"));
-    interfaces_.push_back(resolver_->getClass("java/io/Serializable"));
-  }
-  else {
-    // This is any class but java/lang/Object.
-    if (classFile_->getSuperClass()) {
-      // Our direct super class.
-      const VMClass* superClass = getClass(classFile_->getSuperClassIndex());
-
-      // Add the interfaces of our direct superclass.
-      for (unsigned i = 0, e = superClass->getNumInterfaces(); i != e; ++i)
-        interfaces_.push_back(superClass->getInterface(i));
-
-      // The first class is the direct super class of this class.
-      superClasses_.reserve(superClass->getNumSuperClasses() + 1);
-      superClasses_.push_back(superClass);
-      for (unsigned i = 0, e = superClass->getNumSuperClasses(); i != e; ++i)
-        superClasses_.push_back(superClass->getSuperClass(i));
-    }
-
-    // For each of the interfaces we implement, load it and add that
-    // interface and all the interfaces it inherits from.
-    for (unsigned i = 0, e = classFile_->getNumInterfaces(); i != e; ++i) {
-      const VMClass* interface = getClass(classFile_->getInterfaceIndex(i));
-      interfaces_.push_back(interface);
-      for (unsigned j = 0, f = interface->getNumInterfaces(); j != f; ++j)
-        interfaces_.push_back(interface->getInterface(j));
-    }
-
-    // Sort the interfaces array and remove duplicates.
-    std::sort(interfaces_.begin(), interfaces_.end());
-    interfaces_.erase(std::unique(interfaces_.begin(), interfaces_.end()),
-                      interfaces_.end());
-  }
-
-  // The interface index for an interface is a unique number generated
-  // from the resolver.
-  if (isInterface())
-    interfaceIndex_ = resolver_->getNextInterfaceIndex();
-  // For a class it is the max index of all the interfaces it implements.
-  else {
-    for (unsigned i = 0, e = getNumInterfaces(); i != e; ++i)
-      interfaceIndex_ =
-        std::max(interfaceIndex_, getInterface(i)->getInterfaceIndex());
-  }
-
-  computeLayout();
-  computeClassRecord();
-
-  assert(!isa<OpaqueType>(getLayoutType()) &&"Class not initialized properly!");
-}
-
-llvm::Constant* VMClass::getConstant(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert((dynamic_cast<ConstantString*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantInteger*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantFloat*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantLong*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantDouble*>(classFile_->getConstant(index))) &&
-         "Not an index to a constant!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    Constant* jc = classFile_->getConstant(index);
-    if (ConstantString* s = dynamic_cast<ConstantString*>(jc)) {
-      const VMClass* stringClass = resolver_->getClass("java/lang/String");
-      const Type* stringType = stringClass->getLayoutType();
-      resolvedConstantPool_[index] =
-        new GlobalVariable(stringType,
-                           false,
-                           GlobalVariable::LinkOnceLinkage,
-                           llvm::Constant::getNullValue(stringType),
-                           s->getValue()->str() + ".java/lang/String",
-                           resolver_->getModule());
-    }
-    else if (ConstantInteger* i = dynamic_cast<ConstantInteger*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantSInt::get(Type::IntTy, i->getValue());
-    else if (ConstantFloat* f = dynamic_cast<ConstantFloat*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantFP::get(Type::FloatTy, f->getValue());
-    else if (ConstantLong* l = dynamic_cast<ConstantLong*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantSInt::get(Type::LongTy, l->getValue());
-    else if (ConstantDouble* d = dynamic_cast<ConstantDouble*>(jc))
-      resolvedConstantPool_[index] =
-        ConstantFP::get(Type::DoubleTy, d->getValue());
-    else
-      assert(0 && "Not a constant!");
-  }
-
-  return static_cast<llvm::Constant*>(resolvedConstantPool_[index]);
-}
-
-const VMClass* VMClass::getClass(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert((dynamic_cast<ConstantClass*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantUtf8*>(classFile_->getConstant(index))) &&
-         "Not an index to a class or descriptor reference!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    Constant* jc = classFile_->getConstant(index);
-    if (ConstantClass* c = dynamic_cast<ConstantClass*>(jc))
-      resolvedConstantPool_[index] =
-        const_cast<VMClass*>(resolver_->getClass(c->getName()->str()));
-    else if (ConstantUtf8* d = dynamic_cast<ConstantUtf8*>(jc))
-      resolvedConstantPool_[index] =
-        const_cast<VMClass*>(resolver_->getClassForDesc(d->str()));
-    else
-      assert(0 && "Not a class!");
-  }
-
-  return static_cast<const VMClass*>(resolvedConstantPool_[index]);
-}
-
-const VMField* VMClass::getField(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert(dynamic_cast<ConstantFieldRef*>(classFile_->getConstant(index)) &&
-         "Not an index to a field reference!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    ConstantFieldRef* jc = classFile_->getConstantFieldRef(index);
-    const VMClass* clazz = getClass(jc->getClassIndex());
-    const std::string& name = jc->getNameAndType()->getName()->str();
-    resolvedConstantPool_[index] =
-      const_cast<VMField*>(clazz->lookupField(name));
-  }
-
-  return static_cast<const VMField*>(resolvedConstantPool_[index]);
-}
-
-const VMMethod* VMClass::getMethod(unsigned index) const
-{
-  assert(classFile_ && "No constant pool!");
-  assert((dynamic_cast<ConstantMethodRef*>(classFile_->getConstant(index)) ||
-          dynamic_cast<ConstantInterfaceMethodRef*>(classFile_->getConstant(index))) &&
-         "Not an index to a method reference!");
-
-  // If we haven't resolved this constant already, do so now.
-  if (!resolvedConstantPool_[index]) {
-    ConstantMemberRef* jc = classFile_->getConstantMemberRef(index);
-    const VMClass* clazz = getClass(jc->getClassIndex());
-    ConstantNameAndType* ntc = jc->getNameAndType();
-    const std::string& name = ntc->getName()->str();
-    const std::string& descriptor = ntc->getDescriptor()->str();
-    resolvedConstantPool_[index] =
-      const_cast<VMMethod*>(clazz->lookupMethod(name + descriptor));
-  }
-
-  return static_cast<const VMMethod*>(resolvedConstantPool_[index]);
-}
diff --git a/java/lib/Compiler/VMClass.h b/java/lib/Compiler/VMClass.h
deleted file mode 100644
index c420f60..0000000
--- a/java/lib/Compiler/VMClass.h
+++ /dev/null
@@ -1,147 +0,0 @@
-//===-- VMClass.h - Compiler representation of a Java class -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the VMClass class that represents a
-// compile time representation of a Java class (java.lang.Class).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_VMCLASS_H
-#define LLVM_JAVA_VMCLASS_H
-
-#include "VMField.h"
-#include "VMMethod.h"
-#include <llvm/Constant.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
-#include <llvm/Java/ClassFile.h>
-#include <map>
-#include <string>
-#include <vector>
-
-namespace llvm { namespace Java {
-
-  class Resolver;
-
-  class VMClass {
-    static const int INVALID_INTERFACE_INDEX = -1;
-
-    const std::string name_;
-    const std::string descriptor_;
-    Resolver* resolver_;
-    const ClassFile* classFile_;
-    const VMClass* componentClass_;
-    Type* layoutType_;
-    const Type* type_;
-    int interfaceIndex_;
-    typedef std::map<std::string, VMField> FieldMap;
-    FieldMap fieldMap_;
-    typedef std::map<std::string, VMMethod> MethodMap;
-    MethodMap methodMap_;
-    mutable std::vector<void*> resolvedConstantPool_;
-    std::vector<const VMClass*> superClasses_;
-    std::vector<const VMClass*> interfaces_;
-    std::vector<const VMField*> memberFields_;
-    std::vector<const VMField*> staticFields_;
-    std::vector<const VMMethod*> dynamicMethods_;
-    std::vector<const VMMethod*> staticMethods_;
-    GlobalVariable* classRecord_;
-
-    void init();
-
-    void computeLayout();
-    void computeClassRecord();
-
-    llvm::Constant* buildClassName() const;
-    llvm::Constant* buildSuperClassRecords() const;
-    llvm::Constant* buildInterfaceClassRecord(const VMClass* interface) const;
-    llvm::Constant* buildInterfaceClassRecords() const;
-    llvm::Constant* buildFieldDescriptors() const;
-    llvm::Constant* buildFieldOffsets() const;
-    llvm::Constant* buildStaticFieldDescriptors() const;
-    llvm::Constant* buildStaticFieldPointers() const;
-    llvm::Constant* buildMethodDescriptors() const;
-    llvm::Constant* buildMethodPointers() const;
-    llvm::Constant* buildStaticMethodDescriptors() const;
-    llvm::Constant* buildStaticMethodPointers() const;
-    llvm::Constant* buildClassTypeInfo() const;
-
-    const VMField* lookupField(const std::string& name) const;
-    const VMMethod* lookupMethod(const std::string& nameAndType) const;
-    
-    friend class Resolver;
-
-    // Resolver interface.
-
-    // Load primitive class for type.
-    VMClass(Resolver* resolver, const Type* type);
-
-    // Load class by name.
-    VMClass(Resolver* resolver, const std::string& className);
-
-    // Load array class of component the passed class.
-    VMClass(Resolver* resolver, const VMClass* componentClass);
-
-    // Link the class.
-    void link();
-    // Resolve the class.
-    void resolve();
-    // Initialize the class.
-    void initialize();
-
-  public:
-    const std::string& getName() const { return name_; }
-    const std::string& getDescriptor() const { return descriptor_; }
-    Resolver* getResolver() const { return resolver_; }
-    const Type* getLayoutType() const { return layoutType_; }
-    const Type* getType() const { return type_; }
-    const ClassFile* getClassFile() const { return classFile_; }
-    unsigned getNumSuperClasses() const { return superClasses_.size(); }
-    const VMClass* getSuperClass(unsigned i) const { return superClasses_[i]; }
-    const VMClass* getSuperClass() const {
-      return getNumSuperClasses() ? getSuperClass(0) : NULL;
-    }
-    unsigned getNumInterfaces() const { return interfaces_.size(); }
-    const VMClass* getInterface(unsigned i) const { return interfaces_[i]; }
-    const VMClass* getComponentClass() const { return componentClass_; }
-    bool isArray() const { return getComponentClass(); }
-    bool isPrimitive() const { return getType() == getLayoutType(); }
-    bool isInterface() const { return classFile_ && classFile_->isInterface(); }
-    int getInterfaceIndex() const { return interfaceIndex_; }
-    unsigned getNumDynamicMethods() const {
-      return dynamicMethods_.size();
-    }
-    const VMMethod* getDynamicMethod(unsigned i) const {
-      return dynamicMethods_[i];
-    }
-    unsigned getNumStaticMethods() const {
-      return staticMethods_.size();
-    }
-    const VMMethod* getStaticMethod(unsigned i) const {
-      return staticMethods_[i];
-    }
-    llvm::Constant* getClassRecord() const { return classRecord_; }
-
-    llvm::Constant* getConstant(unsigned index) const;
-    const VMClass* getClass(unsigned index) const;
-    const VMField* getField(unsigned index) const;
-    const VMField* getField(const std::string& name) const {
-      FieldMap::const_iterator it = fieldMap_.find(name);
-      return it == fieldMap_.end() ? NULL : &it->second;
-    }
-    const VMMethod* getMethod(unsigned index) const;
-    const VMMethod* getMethod(const std::string& nameAndType) const {
-      MethodMap::const_iterator it = methodMap_.find(nameAndType);
-      return it == methodMap_.end() ? NULL : &it->second;
-    }
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_VMCLASS_H
diff --git a/java/lib/Compiler/VMField.cpp b/java/lib/Compiler/VMField.cpp
deleted file mode 100644
index 823da90..0000000
--- a/java/lib/Compiler/VMField.cpp
+++ /dev/null
@@ -1,90 +0,0 @@
-//===-- VMField.cpp - Compiler representation of a Java field ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Field class that represents a
-// compile time representation of a Java class field (java.lang.Field).
-//
-//===----------------------------------------------------------------------===//
-
-#include "VMField.h"
-#include "Resolver.h"
-#include "VMClass.h"
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-VMField::VMField(const VMClass* parent, const Field* field)
-  : parent_(parent),
-    class_(parent->getClass(field->getDescriptorIndex())),
-    field_(field)
-{
-  assert(isStatic() && "This should be a static field!");
-
-  // A java static field is constant if it is marked final and has a
-  // static initializer.
-  bool isConstant = field_->isFinal() && field->getConstantValueAttribute();
-
-  llvm::Constant* init = NULL;
-  if (ConstantValueAttribute* attr = field_->getConstantValueAttribute()) {
-    init = parent_->getConstant(attr->getValueIndex());
-    if (init->getType() != class_->getType())
-      init = ConstantExpr::getCast(init, class_->getType());
-  }
-  else
-    init = llvm::Constant::getNullValue(class_->getType());
-
-  data_.global = new GlobalVariable(class_->getType(),
-                                    isConstant,
-                                    GlobalVariable::ExternalLinkage,
-                                    init,
-                                    parent_->getName() + '/' + getName(),
-                                    parent_->getResolver()->getModule());
-}
-
-VMField::VMField(const VMClass* parent, const Field* field, int index)
-  : parent_(parent),
-    class_(parent->getClass(field->getDescriptorIndex())),
-    field_(field)
-{
-  assert(!isStatic() && "This should be a member field!");
-  data_.index = index;
-}
-
-llvm::Constant* VMField::buildFieldDescriptor() const
-{
-  llvm::Constant* fd = ConstantArray::get(getName() + getDescriptor());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      fd->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      fd,
-      getName() + getDescriptor(),
-      parent_->getResolver()->getModule()));
-}
-
-llvm::Constant* VMField::buildFieldOffset() const
-{
-  assert(!isStatic() && "This should be a member field!");
-
-  assert(!isa<OpaqueType>(getParent()->getType()) &&
-         "Should not be called before its owning class layout is computed!");
-  llvm::Constant* nullRef =
-    llvm::Constant::getNullValue(getParent()->getType());
-  std::vector<llvm::Constant*> indices;
-  indices.reserve(2);
-  indices.push_back(ConstantInt::get(Type::UIntTy, 0));
-  indices.push_back(ConstantInt::get(Type::UIntTy, getMemberIndex()));
-
-  return ConstantExpr::getCast(
-    ConstantExpr::getGetElementPtr(nullRef, indices), Type::UIntTy);
-}
diff --git a/java/lib/Compiler/VMField.h b/java/lib/Compiler/VMField.h
deleted file mode 100644
index e482814..0000000
--- a/java/lib/Compiler/VMField.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//===-- VMField.h - Compiler representation of a Java field -----*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the Field class that represents a
-// compile time representation of a Java class field (java.lang.Field).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_VMFIELD_H
-#define LLVM_JAVA_VMFIELD_H
-
-#include <llvm/Java/ClassFile.h>
-#include <cassert>
-
-namespace llvm {
-
-  class Constant;
-  class GlobalVariable;
-
-}
-
-namespace llvm { namespace Java {
-
-  class VMClass;
-
-  class VMField {
-    const VMClass* parent_;
-    const VMClass* class_;
-    const Field* field_;
-    union {
-      int index;
-      GlobalVariable* global;
-    } data_;
-
-    friend class VMClass;
-    // Interface for VMClass.
-
-    // Create static field reference.
-    VMField(const VMClass* parent, const Field* field);
-
-    // Create member field reference.
-    VMField(const VMClass* parent, const Field* field, int index);
-
-  public:
-    const std::string& getName() const { return field_->getName()->str(); }
-    const std::string& getDescriptor() const {
-      return field_->getDescriptor()->str();
-    }
-    bool isStatic() const { return field_->isStatic(); }
-
-    const VMClass* getParent() const { return parent_; }
-    const VMClass* getClass() const { return class_; }
-    int getMemberIndex() const {
-      assert(!isStatic() && "Field should not be static!");
-      return data_.index;
-    }
-    GlobalVariable* getGlobal() const {
-      assert(isStatic() && "Field should be static!");
-      return data_.global;
-    }
-
-    llvm::Constant* buildFieldDescriptor() const;
-    llvm::Constant* buildFieldOffset() const;
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_VMFIELD_H
diff --git a/java/lib/Compiler/VMMethod.cpp b/java/lib/Compiler/VMMethod.cpp
deleted file mode 100644
index 8c1548e..0000000
--- a/java/lib/Compiler/VMMethod.cpp
+++ /dev/null
@@ -1,115 +0,0 @@
-//===-- VMMethod.cpp - Compiler representation of a Java method -*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the implementation of the Method class that represents a
-// compile time representation of a Java class method (java.lang.Method).
-//
-//===----------------------------------------------------------------------===//
-
-#include "VMMethod.h"
-#include "Resolver.h"
-#include "VMClass.h"
-#include <llvm/Constants.h>
-#include <llvm/DerivedTypes.h>
-#include <llvm/Function.h>
-#include <llvm/Instructions.h>
-#include <llvm/ADT/STLExtras.h>
-
-using namespace llvm;
-using namespace llvm::Java;
-
-void VMMethod::init()
-{
-  const std::string& methodName = method_->getName()->str();
-  const std::string& methodDescriptor = method_->getDescriptor()->str();
-  const std::string& functionName =
-    parent_->getName() + '/' + methodName + methodDescriptor;
-
-  Resolver* resolver = parent_->getResolver();
-  // FIXME: This type should be taken from the owning class's constant
-  // pool (parsed only once per class). This means the
-  // Resolver::getType() should be moved in VMClass and its return
-  // value should be cached in the constant pool along with the
-  // others.
-  const FunctionType* functionType = cast<FunctionType>(
-    resolver->getType(methodDescriptor, !method_->isStatic()));
-  Module* module = resolver->getModule();
-  function_ = module->getOrInsertFunction(functionName, functionType);
-
-  std::vector<const Type*> argTypes;
-  argTypes.reserve(2);
-  argTypes.push_back(resolver->getObjectBaseType());
-  argTypes.push_back(PointerType::get(Type::SByteTy));
-  const FunctionType* bridgeFunctionType =
-    FunctionType::get(functionType->getReturnType(), argTypes, false);
-  bridgeFunction_ = module->getOrInsertFunction("bridge_to_" + functionName,
-                                                bridgeFunctionType);
-  BasicBlock* bb = new BasicBlock("entry", bridgeFunction_);
-  std::vector<Value*> params;
-  params.reserve(functionType->getNumParams());
-  Value* objectArg = bridgeFunction_->arg_begin();
-  Value* vaList = next(bridgeFunction_->arg_begin());
-
-  if (!method_->isStatic())
-    params.push_back(objectArg);
-  for (unsigned i = !method_->isStatic(), e = functionType->getNumParams();
-       i != e; ++i) {
-    const Type* paramType = functionType->getParamType(i);
-    const Type* argType = paramType->getVAArgsPromotedType();
-    Value* arg = new VAArgInst(vaList, argType, "tmp", bb);
-    if (paramType != argType)
-      arg = new CastInst(arg, paramType, "tmp", bb);
-    params.push_back(arg);
-  }
-  if (functionType->getReturnType() == Type::VoidTy) {
-    new CallInst(function_, params, "", bb);
-    new ReturnInst(bb);
-  }
-  else {
-    Value* result = new CallInst(function_, params, "result", bb);
-    new ReturnInst(result, bb);
-  }
-}
-
-VMMethod::VMMethod(const VMClass* parent, const Method* method)
-  : parent_(parent),
-    method_(method),
-    index_(-1)
-{
-  assert(isStaticallyBound() && "This should be a statically bound method!");
-  init();
-}
-
-VMMethod::VMMethod(const VMClass* parent, const Method* method, int index)
-  : parent_(parent),
-    method_(method),
-    index_(index)
-{
-  assert(isDynamicallyBound() && "This should be a dynamically bound method!");
-  init();
-}
-
-llvm::Constant* VMMethod::buildMethodDescriptor() const
-{
-  llvm::Constant* fd = ConstantArray::get(getName() + getDescriptor());
-
-  return ConstantExpr::getPtrPtrFromArrayPtr(
-    new GlobalVariable(
-      fd->getType(),
-      true,
-      GlobalVariable::ExternalLinkage,
-      fd,
-      getName() + getDescriptor(),
-      parent_->getResolver()->getModule()));
-}
-
-llvm::Constant* VMMethod::getBridgeFunction() const
-{
-  return bridgeFunction_;
-}
diff --git a/java/lib/Compiler/VMMethod.h b/java/lib/Compiler/VMMethod.h
deleted file mode 100644
index 62e13b0..0000000
--- a/java/lib/Compiler/VMMethod.h
+++ /dev/null
@@ -1,81 +0,0 @@
-//===-- VMMethod.h - Compiler representation of a Java method ---*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file contains the declaration of the Method class that represents a
-// compile time representation of a Java class method (java.lang.Method).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_JAVA_VMMETHOD_H
-#define LLVM_JAVA_VMMETHOD_H
-
-#include <llvm/Java/ClassFile.h>
-
-namespace llvm {
-
-  class Constant;
-  class Function;
-  class FunctionType;
-
-}
-
-namespace llvm { namespace Java {
-
-  class VMClass;
-
-  class VMMethod {
-    const VMClass* parent_;
-    const Method* method_;
-    Function* function_;
-    Function* bridgeFunction_;
-
-    int index_;
-
-    void init();
-
-    friend class VMClass;
-    // Interface for VMClass.
-
-    // Create statically bound method reference.
-    VMMethod(const VMClass* parent, const Method* method);
-
-    // Create dynamically bound method reference.
-    VMMethod(const VMClass* parent, const Method* method, int index);
-
-  public:
-    const VMClass* getParent() const { return parent_; }
-    const Method* getMethod() const { return method_; }
-    Function* getFunction() const { return function_; }
-    int getMethodIndex() const { return index_; }
-
-    bool isStaticallyBound() const {
-      return isStatic() || isPrivate() || getName()[0] == '<';
-    }
-    bool isDynamicallyBound() const { return !isStaticallyBound(); }
-    bool isAbstract() const { return method_->isAbstract(); }
-    bool isNative() const { return method_->isNative(); }
-    bool isPrivate() const { return method_->isPrivate(); }
-    bool isStatic() const { return method_->isStatic(); }
-
-    // FIXME: remove when transition is complete.
-    const std::string& getName() const { return method_->getName()->str(); }
-    const std::string& getDescriptor() const {
-      return method_->getDescriptor()->str();
-    }
-    std::string getNameAndDescriptor() const {
-      return getName() + getDescriptor();
-    }
-
-    llvm::Constant* buildMethodDescriptor() const;
-    llvm::Constant* getBridgeFunction() const;
-  };
-
-} } // namespace llvm::Java
-
-#endif//LLVM_JAVA_VMMETHOD_H
diff --git a/java/lib/Makefile b/java/lib/Makefile
deleted file mode 100755
index 9448a33..0000000
--- a/java/lib/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- lib/Makefile ----------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-PARALLEL_DIRS := ClassFile Compiler Transforms
-
-include $(LEVEL)/Makefile.common
diff --git a/java/lib/Transforms/AddStubs.cpp b/java/lib/Transforms/AddStubs.cpp
deleted file mode 100644
index efb50ca..0000000
--- a/java/lib/Transforms/AddStubs.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-//===- AddStubs.cpp - Add Stubs Pass --------------------------------------===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements a stub adder pass. Because class2llvm is not able to
-// compile all of java at the moment, this pass is used to add dummy returns
-// to those functions.
-//
-//===----------------------------------------------------------------------===//
-
-#define DEBUG_TYPE "addstubs"
-
-#include <llvm/Pass.h>
-#include <llvm/Function.h>
-#include <llvm/Module.h>
-#include <llvm/Type.h>
-#include <llvm/Instructions.h>
-#include <llvm/Constants.h>
-#include <llvm/Support/Debug.h>
-#include <iostream>
-
-using namespace llvm;
-
-namespace {
-
-  static Constant* ALL_ONES = ConstantUInt::getAllOnesValue(Type::ULongTy);
-
-  struct AddStubs : public ModulePass {
-    virtual bool runOnModule(Module &M) {
-      for (Module::iterator F = M.begin(), E = M.end(); F != E; ++F)
-        if (F->empty() &&
-            (F->getName().find("java") != std::string::npos ||
-             F->getName().find("gnu") != std::string::npos)) {
-          DEBUG(std::cerr << "Stubbing out: " << F->getName() << '\n');
-          BasicBlock* entry = new BasicBlock("entry", F);
-          if (F->getReturnType() == Type::VoidTy)
-            new ReturnInst(NULL, entry);
-          else
-            new ReturnInst(
-              new CastInst(ALL_ONES, F->getReturnType(), "dummy-value", entry),
-              entry);
-        }
-      return true;
-    }
-  };
-  RegisterOpt<AddStubs> X("addstubs", "Add Stubs pass");
-}
diff --git a/java/lib/Transforms/Makefile b/java/lib/Transforms/Makefile
deleted file mode 100644
index d6ccfc7..0000000
--- a/java/lib/Transforms/Makefile
+++ /dev/null
@@ -1,14 +0,0 @@
-##===- lib/Transforms/Makefile -----------------------------*- Makefile -*-===##
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-##===----------------------------------------------------------------------===##
-LEVEL = ../..
-LIBRARYNAME = LLVMJavaTransforms
-SHARED_LIBRARY = 1
-LOADABLE_MODULE = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/java/runtime/Makefile b/java/runtime/Makefile
deleted file mode 100644
index 506203e..0000000
--- a/java/runtime/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##==-- runtime/Makefile -----------------------------  -*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-CPPFLAGS+=-I$(PROJ_SRC_ROOT)/include/llvm/Java
-BYTECODE_LIBRARY=1
-LIBRARYNAME=jrt
-
-include $(LEVEL)/Makefile.common
diff --git a/java/runtime/jni.c b/java/runtime/jni.c
deleted file mode 100644
index 60f5b22..0000000
--- a/java/runtime/jni.c
+++ /dev/null
@@ -1,559 +0,0 @@
-#include "runtime.h"
-#include <stdlib.h>
-#include <string.h>
-
-/* The implementation of JNI functions */
-
-/* Class operations */
-
-static jclass find_class(JNIEnv* env, const char* name) {
-  return GET_CLASS(llvm_java_find_class_record(name));
-}
-
-static jclass get_superclass(JNIEnv* env, jclass clazz) {
-  return GET_CLASS(llvm_java_get_superclass_record(GET_CLASS_RECORD(clazz)));
-}
-
-static jboolean is_assignable_from(JNIEnv* env, jclass c1, jclass c2) {
-  return llvm_java_is_assignable_from(GET_CLASS_RECORD(c1),
-                                      GET_CLASS_RECORD(c2));
-}
-
-/* Exceptions */
-
-static jint throw(JNIEnv* env, jthrowable obj) {
-  return llvm_java_throw(obj);
-}
-
-/* Global and local references */
-
-/* Weak global references */
-
-/* Object operations */
-
-static jboolean is_same_object(JNIEnv* env, jobject o1, jobject o2) {
-  return o1 == o2;
-}
-
-static jclass get_object_class(JNIEnv* env, jobject obj) {
-  return GET_CLASS(llvm_java_get_class_record(obj));
-}
-
-static jboolean is_instance_of(JNIEnv* env, jobject obj, jclass c) {
-  return llvm_java_is_instance_of(obj, GET_CLASS_RECORD(c));
-}
-
-/* Accessing fields of objects */
-
-static jfieldID get_fieldid(JNIEnv *env,
-                            jclass clazz,
-                            const char *name,
-                            const char *sig) {
-  int nameLength;
-  int i;
-  const char* fieldDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the fieldDescriptors array and retrieve
-   * the offset of the field */
-  nameLength = strlen(name);
-  for (i = 0; (fieldDescriptor = cr->typeinfo.fieldDescriptors[i]); ++i)
-    if (strncmp(name, fieldDescriptor, nameLength) == 0 &&
-        strcmp(sig, fieldDescriptor+nameLength) == 0)
-      return cr->typeinfo.fieldOffsets[i];
-
-  return 0;
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE get_##TYPE##_field(JNIEnv* env, \
-                                    jobject obj, \
-                                    jfieldID fid) { \
-    return *(j##TYPE*) (((char*)obj) + fid); \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static void set_##TYPE##_field(JNIEnv* env, \
-                                 jobject obj, \
-                                 jfieldID fid, \
-                                 j##TYPE value) { \
-    *(j##TYPE*) (((char*)obj) + fid) = value; \
-  }
-#include "types.def"
-
-/* Calling instance methods */
-
-static jmethodID get_methodid(JNIEnv *env,
-                              jclass clazz,
-                              const char *name,
-                              const char *sig) {
-  int nameLength;
-  int i;
-  const char* methodDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the staticFieldDescriptors array and
-   * retrieve the index of the field */
-  nameLength = strlen(name);
-  for (i = 0; (methodDescriptor = cr->typeinfo.methodDescriptors[i]); ++i)
-    if (strncmp(name, methodDescriptor, nameLength) == 0 &&
-        strcmp(sig, methodDescriptor+nameLength) == 0)
-      return i;
-
-  return 0;
-}
-
-static void call_void_method_v(JNIEnv* env,
-                               jobject obj,
-                               jmethodID methodID,
-                               va_list args) {
-  typedef void (*BridgeFunPtr)(jobject obj, va_list);
-  struct llvm_java_class_record* cr = llvm_java_get_class_record(obj);
-
-  BridgeFunPtr f = (BridgeFunPtr) cr->typeinfo.methodBridges[methodID];
-  f(obj, args);
-}
-
-static void call_void_method(JNIEnv* env,
-                             jobject obj,
-                             jmethodID methodID,
-                             ...) {
-  va_list args;
-  va_start(args, methodID);
-  call_void_method_v(env, obj, methodID, args);
-  va_end(args);
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_##TYPE##_method_v(JNIEnv* env, \
-                                        jobject obj, \
-                                        jmethodID methodID, \
-                                        va_list args) { \
-    typedef j##TYPE (*BridgeFunPtr)(jobject obj, va_list); \
-    struct llvm_java_class_record* cr = llvm_java_get_class_record(obj); \
-    BridgeFunPtr f = \
-      (BridgeFunPtr) cr->typeinfo.methodBridges[methodID]; \
-    return f(obj, args); \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_##TYPE##_method(JNIEnv* env, \
-                                      jobject obj, \
-                                      jmethodID methodID, \
-                                      ...) { \
-    va_list args; \
-    va_start(args, methodID); \
-    j##TYPE result = \
-      call_##TYPE##_method_v(env, obj, methodID, args); \
-    va_end(args); \
-    return result; \
-  }
-#include "types.def"
-
-/* Accessing static fields */
-
-static jfieldID get_static_fieldid(JNIEnv *env,
-                                   jclass clazz,
-                                   const char *name,
-                                   const char *sig) {
-  int nameLength;
-  int i;
-  const char* fieldDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the staticFieldDescriptors array and
-   * retrieve the index of the field */
-  nameLength = strlen(name);
-  for (i = 0; (fieldDescriptor = cr->typeinfo.staticFieldDescriptors[i]); ++i)
-    if (strncmp(name, fieldDescriptor, nameLength) == 0 &&
-        strcmp(sig, fieldDescriptor+nameLength) == 0)
-      return i;
-
-  return 0;
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE get_static_##TYPE##_field(JNIEnv* env, \
-                                           jclass clazz, \
-                                           jfieldID fid) { \
-    struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz); \
-    return *(j##TYPE*) cr->typeinfo.staticFields[fid]; \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static void set_static_##TYPE##_field(JNIEnv* env, \
-                                        jclass clazz, \
-                                        jfieldID fid, \
-                                        j##TYPE value) { \
-    struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz); \
-    *(j##TYPE*) cr->typeinfo.staticFields[fid] = value; \
-  }
-#include "types.def"
-
-/* Calling static methods */
-
-static jmethodID get_static_methodid(JNIEnv *env,
-                                     jclass clazz,
-                                     const char *name,
-                                     const char *sig) {
-  int nameLength;
-  int i;
-  const char* methodDescriptor;
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  /* lookup the name+sig in the staticFieldDescriptors array and
-   * retrieve the index of the field */
-  nameLength = strlen(name);
-  for (i = 0; (methodDescriptor = cr->typeinfo.staticMethodDescriptors[i]); ++i)
-    if (strncmp(name, methodDescriptor, nameLength) == 0 &&
-        strcmp(sig, methodDescriptor+nameLength) == 0)
-      return i;
-
-  return 0;
-}
-
-static void call_static_void_method_v(JNIEnv* env,
-                                      jclass clazz,
-                                      jmethodID methodID,
-                                      va_list args) {
-  typedef void (*BridgeFunPtr)(jclass clazz, va_list);
-  struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz);
-
-  BridgeFunPtr f = (BridgeFunPtr) cr->typeinfo.staticMethodBridges[methodID];
-  f(clazz, args);
-}
-
-static void call_static_void_method(JNIEnv* env,
-                                    jclass clazz,
-                                    jmethodID methodID,
-                                    ...) {
-  va_list args;
-  va_start(args, methodID);
-  call_static_void_method_v(env, clazz, methodID, args);
-  va_end(args);
-}
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_static_##TYPE##_method_v(JNIEnv* env, \
-                                               jclass clazz, \
-                                               jmethodID methodID, \
-                                               va_list args) { \
-    typedef j##TYPE (*BridgeFunPtr)(jclass clazz, va_list); \
-    struct llvm_java_class_record* cr = GET_CLASS_RECORD(clazz); \
-    BridgeFunPtr f = \
-      (BridgeFunPtr) cr->typeinfo.staticMethodBridges[methodID]; \
-    return f(clazz, args); \
-  }
-#include "types.def"
-
-#define HANDLE_TYPE(TYPE) \
-  static j##TYPE call_static_##TYPE##_method(JNIEnv* env, \
-                                             jclass clazz, \
-                                             jmethodID methodID, \
-                                             ...) { \
-    va_list args; \
-    va_start(args, methodID); \
-    j##TYPE result = \
-      call_static_##TYPE##_method_v(env, clazz, methodID, args); \
-    va_end(args); \
-    return result; \
-  }
-#include "types.def"
-
-/* String operations */
-
-/* Array operations */
-
-static jint get_array_length(JNIEnv* env, jarray array) {
-  return ((struct llvm_java_booleanarray*) array)->length;
-}
-
-static jobject get_object_array_element(JNIEnv* env, jarray array, jsize i) {
-  return ((struct llvm_java_objectarray*) array)->data[i];
-}
-
-static void set_object_array_element(JNIEnv* env,
-                                     jarray array,
-                                     jsize i,
-                                     jobject value) {
-  ((struct llvm_java_objectarray*) array)->data[i] = value;
-}
-
-#define HANDLE_NATIVE_TYPE(TYPE) \
-  static j ## TYPE* get_##TYPE##_array_elements( \
-    JNIEnv* env, \
-    jarray array, \
-    jboolean* isCopy) { \
-    if (isCopy) \
-      *isCopy = JNI_FALSE; \
-    return ((struct llvm_java_ ##TYPE## array*) array)->data; \
-  }
-#include "types.def"
-
-#define HANDLE_NATIVE_TYPE(TYPE) \
-  static void release_ ##TYPE## _array_elements( \
-    JNIEnv* env, \
-    jarray array, \
-    j##TYPE* elements, \
-    jint mode) { \
-    switch (mode) { \
-    case 0: \
-    case JNI_COMMIT: \
-    case JNI_ABORT: \
-      return; \
-    default: \
-      abort(); \
-    } \
-  }
-#include "types.def"
-
-/* Register native methods */
-
-/* Monitor operations */
-
-/* NIO support */
-
-/* Reflection support */
-
-/* Java VM interface */
-
-/* The JNI interface definition */
-static const struct JNINativeInterface llvm_java_JNINativeInterface = {
-  NULL, /* 0 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  &find_class,
-  NULL,
-  NULL,
-  NULL,
-  &get_superclass,
-  &is_assignable_from,
-  NULL,
-  &throw,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 20 */
-  NULL,
-  NULL,
-  NULL,
-  &is_same_object,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 30 */
-  &get_object_class,
-  &is_instance_of,
-  &get_methodid,
-  &call_object_method,
-  &call_object_method_v,
-  NULL,
-  &call_boolean_method,
-  &call_boolean_method_v,
-  NULL,
-  &call_byte_method,
-  &call_byte_method_v,
-  NULL,
-  &call_char_method,
-  &call_char_method_v,
-  NULL,
-  &call_short_method,
-  &call_short_method_v,
-  NULL,
-  &call_int_method,
-  &call_int_method_v,
-  NULL,
-  &call_long_method,
-  &call_long_method_v,
-  NULL,
-  &call_float_method,
-  &call_float_method_v,
-  NULL,
-  &call_double_method,
-  &call_double_method_v,
-  NULL, /* 60 */
-  &call_void_method,
-  &call_void_method_v,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 70 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 80 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 90 */
-  NULL,
-  NULL,
-  NULL,
-  &get_fieldid,
-  &get_object_field,
-  &get_boolean_field,
-  &get_byte_field,
-  &get_char_field,
-  &get_short_field,
-  &get_int_field,
-  &get_long_field,
-  &get_float_field,
-  &get_double_field,
-  &set_object_field,
-  &set_boolean_field,
-  &set_byte_field,
-  &set_char_field,
-  &set_short_field,
-  &set_int_field,
-  &set_long_field,
-  &set_float_field,
-  &set_double_field,
-  &get_static_methodid,
-  &call_static_object_method,
-  &call_static_object_method_v,
-  NULL,
-  &call_static_boolean_method,
-  &call_static_boolean_method_v,
-  NULL,
-  &call_static_byte_method,
-  &call_static_byte_method_v,
-  NULL,
-  &call_static_char_method,
-  &call_static_char_method_v,
-  NULL,
-  &call_static_short_method,
-  &call_static_short_method_v,
-  NULL,
-  &call_static_int_method,
-  &call_static_int_method_v,
-  NULL,
-  &call_static_long_method,
-  &call_static_long_method_v,
-  NULL,
-  &call_static_float_method,
-  &call_static_float_method_v,
-  NULL,
-  &call_static_double_method,
-  &call_static_double_method_v,
-  NULL, /* 140 */
-  NULL,
-  NULL,
-  NULL,
-  &get_static_fieldid,
-  &get_static_object_field,
-  &get_static_boolean_field,
-  &get_static_byte_field,
-  &get_static_char_field,
-  &get_static_short_field,
-  &get_static_int_field,
-  &get_static_long_field,
-  &get_static_float_field,
-  &get_static_double_field,
-  &set_static_object_field,
-  &set_static_boolean_field,
-  &set_static_byte_field,
-  &set_static_char_field,
-  &set_static_short_field,
-  &set_static_int_field,
-  &set_static_long_field,
-  &set_static_float_field,
-  &set_static_double_field,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 170 */
-  &get_array_length,
-  NULL,
-  &get_object_array_element,
-  &set_object_array_element,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 180 */
-  NULL,
-  NULL,
-  &get_boolean_array_elements,
-  &get_byte_array_elements,
-  &get_char_array_elements,
-  &get_short_array_elements,
-  &get_int_array_elements,
-  &get_long_array_elements,
-  &get_float_array_elements,
-  &get_double_array_elements,
-  &release_boolean_array_elements,
-  &release_byte_array_elements,
-  &release_char_array_elements,
-  &release_short_array_elements,
-  &release_int_array_elements,
-  &release_long_array_elements,
-  &release_float_array_elements,
-  &release_double_array_elements,
-  NULL,
-  NULL, /* 200 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 210 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 220 */
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL,
-  NULL, /* 230 */
-  NULL,
-};
-
-const JNIEnv llvm_java_JNIEnv = &llvm_java_JNINativeInterface;
diff --git a/java/runtime/runtime.c b/java/runtime/runtime.c
deleted file mode 100644
index 07c620d..0000000
--- a/java/runtime/runtime.c
+++ /dev/null
@@ -1,138 +0,0 @@
-#include "runtime.h"
-#include <stdlib.h>
-#include <string.h>
-
-jint llvm_java_is_primitive_class(struct llvm_java_class_record* cr)
-{
-  return cr->typeinfo.elementSize == -2;
-}
-
-jint llvm_java_is_interface_class(struct llvm_java_class_record* cr)
-{
-  return cr->typeinfo.elementSize == -1;
-}
-
-jint llvm_java_is_array_class(struct llvm_java_class_record* cr)
-{
-  return cr->typeinfo.elementSize > 0;
-}
-
-struct llvm_java_class_record* llvm_java_get_class_record(jobject obj) {
-  return obj->classRecord;
-}
-
-void llvm_java_set_class_record(jobject obj,
-                                struct llvm_java_class_record* cr) {
-  obj->classRecord = cr;
-}
-
-struct llvm_java_class_record*
-llvm_java_get_superclass_record(struct llvm_java_class_record* cr) {
-  /* If this is an interface or java/lang/Object return NULL. */
-  if (llvm_java_is_interface_class(cr) || cr->typeinfo.depth == 0)
-    return NULL;
-
-  return cr->typeinfo.superclasses[cr->typeinfo.depth - 1];
-}
-
-jboolean llvm_java_is_assignable_from(struct llvm_java_class_record* cr,
-                                      struct llvm_java_class_record* from) {
-  /* trivial case: class records are the same */
-  if (cr == from)
-    return JNI_TRUE;
-
-  /* if from is a primitive class then they must be of the same class */
-  if (llvm_java_is_primitive_class(from))
-    return cr == from;
-
-  /* if from is an interface class then the current class must
-   * implement that interface */
-  if (llvm_java_is_interface_class(from)) {
-    int index = from->typeinfo.interfaceIndex;
-    return (cr->typeinfo.interfaceIndex >= index &&
-            cr->typeinfo.interfaces[index]);
-  }
-
-  /* if from is an array class then the component types of must be
-   * assignable from */
-  if (llvm_java_is_array_class(from))
-    return (cr->typeinfo.component &&
-            llvm_java_is_assignable_from(cr->typeinfo.component,
-                                         from->typeinfo.component));
-
-  /* otherwise this is a class, check if from is a superclass of this
-   * class */
-  if (cr->typeinfo.depth > from->typeinfo.depth) {
-    int index = from->typeinfo.depth;
-    return cr->typeinfo.superclasses[index] == from;
-  }
-
-  return JNI_FALSE;
-}
-
-jboolean llvm_java_is_instance_of(jobject obj,
-                                  struct llvm_java_class_record* cr) {
-  /* trivial case: a null object can be cast to any type */
-  if (!obj)
-    return JNI_TRUE;
-
-  return llvm_java_is_assignable_from(obj->classRecord, cr);
-}
-
-jint llvm_java_throw(jthrowable obj) {
-  abort();
-}
-
-extern struct llvm_java_class_record* llvm_java_class_records;
-
-struct llvm_java_class_record*
-llvm_java_find_class_record(const char* name) {
-  struct llvm_java_class_record** cr = &llvm_java_class_records;
-  for (; *cr; ++cr)
-    if (strcmp((*cr)->typeinfo.name, name) == 0)
-      return *cr;
-
-  return NULL;
-}
-
-void Java_java_lang_VMSystem_arraycopy(JNIEnv *env, jobject clazz,
-                                       jobject srcObj, jint srcStart,
-                                       jobject dstObj, jint dstStart,
-                                       jint length) {
-  struct llvm_java_bytearray* srcArray = (struct llvm_java_bytearray*) srcObj;
-  struct llvm_java_bytearray* dstArray = (struct llvm_java_bytearray*) dstObj;
-  unsigned nbytes = length * srcObj->classRecord->typeinfo.elementSize;
-
-  jbyte* src = srcArray->data;
-  jbyte* dst = dstArray->data;
-
-  // FIXME: Need to perform a proper type check here.
-  if (srcObj->classRecord->typeinfo.elementSize !=
-      dstObj->classRecord->typeinfo.elementSize)
-    llvm_java_throw(NULL);
-
-  src += srcStart * srcObj->classRecord->typeinfo.elementSize;
-  dst += dstStart * dstObj->classRecord->typeinfo.elementSize;
-
-  memmove(dst, src, nbytes);
-}
-
-void Java_gnu_classpath_VMSystemProperties_preInit(JNIEnv *env, jobject clazz,
-                                                   jobject properties) {
-
-}
-
-typedef void (*ClassInitializerFunction)(void);
-
-extern const ClassInitializerFunction llvm_java_class_initializers;
-
-extern void llvm_java_main(int, char**);
-
-int main(int argc, char** argv) {
-  const ClassInitializerFunction* classInit = &llvm_java_class_initializers;
-  for (; *classInit; ++classInit)
-    (*classInit)();
-
-  llvm_java_main(argc, argv);
-  return 0;
-}
diff --git a/java/runtime/runtime.h b/java/runtime/runtime.h
deleted file mode 100644
index 411ba7d..0000000
--- a/java/runtime/runtime.h
+++ /dev/null
@@ -1,109 +0,0 @@
-#include <llvm/Java/jni.h>
-
-/* For now we cast a java/lang/Class reference to a class record. When
- * we get proper java/lang/Class representation this will be a field
- * access. */
-#define GET_CLASS_RECORD(clazz) ((struct llvm_java_class_record*) clazz)
-#define GET_CLASS(classRecord) ((jclass) classRecord)
-
-const JNIEnv llvm_java_JNIEnv;
-
-struct llvm_java_object_base;
-struct llvm_java_object_header;
-struct llvm_java_class_record;
-struct llvm_java_typeinfo;
-
-struct llvm_java_object_header {
-  /* gc info, hash info, locking */
-    int dummy;
-};
-
-struct llvm_java_object_base {
-  struct llvm_java_object_header header;
-  struct llvm_java_class_record* classRecord;
-};
-
-struct llvm_java_typeinfo {
-  /* The name of this class */
-  const char* name;
-
-  /* The number of super classes to java.lang.Object. */
-  jint depth;
-
-  /* The super class records up to java.lang.Object. */
-  struct llvm_java_class_record** superclasses;
-
-  /* If an interface its interface index, otherwise the last interface
-   * index implemented by this class. */
-  jint interfaceIndex;
-
-  /* The interface class records this class implements. */
-  struct llvm_java_class_record** interfaces;
-
-  /* The component class record if this is an array class, null
-   * otherwise. */
-  struct llvm_java_class_record* component;
-
-  /* If an array the size of its elements, otherwise 0 for classes, -1
-   * for interfaces and -2 for primitive classes. */
-  jint elementSize;
-
-  /* A null terminated array of strings describing the member fields
-   * of this class. A field description is the concatenation of its
-   * name with its descriptor. */
-  const char** fieldDescriptors;
-
-  /* An array of offsets to fields. This is indexed the same way as
-   * the field descriptor array. */
-  unsigned* fieldOffsets;
-
-  /* A null terminated array of strings describing the static fields
-   * of this class. A field description is the concatenation of its
-   * name with its descriptor. */
-  const char** staticFieldDescriptors;
-
-  /* An array of pointers to static fields. This is indexed the
-   * same way as the static field descriptor array. */
-  void** staticFields;
-
-  /* A null terminated array of strings describing the dynamic methods
-     of this class. A method descriptor is the concatenation of its
-     name with its descriptor. */
-  const char** methodDescriptors;
-
-  /* An array of pointers to bridge functions. This is indexed the
-   * same way as the dynamic method descriptor array. */
-  void** methodBridges;
-
-  /* A null terminated array of strings describing the static methods
-     of this class. A method descriptor is the concatenation of its
-     name with its descriptor. */
-  const char** staticMethodDescriptors;
-
-  /* An array of pointers to bridge functions. This is indexed the
-   * same way as the static method descriptor array. */
-  void** staticMethodBridges;
-};
-
-struct llvm_java_class_record {
-  struct llvm_java_typeinfo typeinfo;
-};
-
-#define HANDLE_TYPE(TYPE) \
-  struct llvm_java_##TYPE##array { \
-    struct llvm_java_object_base object_base; \
-    jint length; \
-    j##TYPE data[0]; \
-  };
-#include "types.def"
-
-struct llvm_java_class_record* llvm_java_find_class_record(const char* name);
-struct llvm_java_class_record* llvm_java_get_class_record(jobject obj);
-void llvm_java_set_class_record(jobject obj, struct llvm_java_class_record* cr);
-jboolean llvm_java_is_instance_of(jobject obj,
-                                  struct llvm_java_class_record* cr);
-struct llvm_java_class_record* llvm_java_get_superclass_record(
-  struct llvm_java_class_record* cr);
-jboolean llvm_java_is_assignable_from(struct llvm_java_class_record* cr,
-                                      struct llvm_java_class_record* from);
-jint llvm_java_throw(jthrowable obj);
diff --git a/java/test/Makefile b/java/test/Makefile
deleted file mode 100755
index 9bea413..0000000
--- a/java/test/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Makefile ---------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-PARALLEL_DIRS := Programs Regression
-
-include $(LEVEL)/Makefile.common
diff --git a/java/test/Makefile.test b/java/test/Makefile.test
deleted file mode 100644
index bb0c8e6..0000000
--- a/java/test/Makefile.test
+++ /dev/null
@@ -1,120 +0,0 @@
-##==-- test/Makefile.test - Common make rules Java tests -*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-.PHONY: clean
-
-clean::
-	$(Verb)$(RM) -f a.out core
-	$(Verb)$(RM) -rf Output/
-
-# we don't want these files to be deleted by make, even if they are
-# intermediate results
-.PRECIOUS: %.linked.bc %.raw.bc %.ll %.llvm.bc %.llc
-
-# rule to link bytecode with runtime
-%.llvm %.llvm.bc: %.linked.bc $(LibDir)/libjrt.bca $(EXTRA_OBJS) $(LOPT)
-	$(Echo) Linking $< with the Java runtime
-	-$(Verb)$(GCCLD) -o=$*.llvm $< -L $(CFERuntimeLibDir) -L $(LibDir) $(EXTRA_OBJS)
-	-$(Verb)$(LOPT) -load $(LibDir)/LLVMJavaTransforms -addstubs -f -o=$*.stubbed.llvm.bc $*.llvm.bc
-	-$(Verb)$(MV) -f $*.stubbed.llvm.bc $*.llvm.bc
-
-# rule to link raw bytecode with runtime
-%.raw.llvm %.raw.llvm.bc: %.linked.bc $(LibDir)/libjrt.bca $(EXTRA_OBJS) $(LOPT)
-	$(Echo) Linking $< with the Java runtime \(no optimizations\)
-	-$(Verb)$(GCCLD) -disable-opt -o=$*.raw.llvm $< -L $(CFERuntimeLibDir) -L $(LibDir) $(EXTRA_OBJS)
-	-$(Verb)$(LOPT) -load $(LibDir)/LLVMJavaTransforms -addstubs -f -o=$*.stubbed.raw.llvm.bc $*.raw.llvm.bc
-	-$(Verb)$(MV) -f $*.stubbed.raw.llvm.bc $*.raw.llvm.bc
-
-# rule to make native executable
-%.llc.s: %.llvm.bc
-	-$(Verb)$(LLC) -f $< -o $@
-
-%.llc: %.llc.s
-	-$(Verb)$(CC) $(CFLAGS) $< $(LDFLAGS) -o $@
-
-# add function trace code
-%.tracef.llvm %.tracef.llvm.bc: %.llvm %.llvm.bc $(LOPT)
-	$(Echo) Adding function trace code to $<
-	$(Verb)$(CP) $*.llvm $*.tracef.llvm
-	$(Verb)$(LOPT) -tracem -tracedisablehashdisable -f -o=$*.tracef.llvm.bc $*.llvm.bc
-
-# rule to make assembly from bytecode
-%.dis-ll: %.bc
-	$(Echo) Disassembling $<
-	$(Verb)$(LDIS) -f -o=$@ $<
-
-# rule to compile java sources
-ifdef BUILD_JAVA_SOURCES
-JAVA_SOURCES := $(wildcard *.java)
-JAVA_TESTS := $(basename $(JAVA_SOURCES))
-PREFIXED_JAVA_TESTS := $(addprefix Output/, $(JAVA_TESTS))
-PREFIXED_CLASS_FILES := $(addsuffix .class/, $(PREFIXED_JAVA_TESTS))
-
-$(PREFIXED_CLASS_FILES): $(addsuffix .java,$(JAVA_TESTS))
-	$(Echo) Compiling $?
-	$(Verb)mkdir -p Output
-	$(Verb)$(JAVAC) -classpath Output -d Output $?
-	$(Verb)touch $@
-
-# Compiled bytecode for tests
-BYTECODE := $(addsuffix .llvm.bc, $(PREFIXED_JAVA_TESTS))
-
-# Output produced by tests
-NATIVE_OUTPUT := $(addsuffix .out-nat, $(PREFIXED_JAVA_TESTS))
-JIT_OUTPUT := $(addsuffix .out-jit, $(PREFIXED_JAVA_TESTS))
-LLC_OUTPUT := $(addsuffix .out-llc, $(PREFIXED_JAVA_TESTS))
-
-# Diffs of output produced by native and llvm-java runs
-JIT_DIFFS := $(addsuffix .diff-jit, $(PREFIXED_JAVA_TESTS))
-LLC_DIFFS := $(addsuffix .diff-llc, $(PREFIXED_JAVA_TESTS))
-
-# Keep the output and diffs
-.PRECIOUS: %.out-nat %.out-jit %.out-llc %.diff-jit %.diff-llc
-
-# rule to run a .class file with the jvm
-%.out-nat: %.class
-	-$(Verb)LD_LIBRARY_PATH=$(LibDir) $(JAVA) -cp Output $(notdir $*) \
-		> $*.out-nat 2>&1
-
-# rule to run a .class file with the llvm jit
-%.out-jit: %.llvm.bc
-	-$(Verb)$(LLI) $< > $*.out-jit 2>&1
-
-# rule to run a .class file with llc
-%.out-llc: %.llc
-	-$(Verb)./$< > $*.out-llc 2>&1
-
-# rule to diff test output
-%.diff-jit: %.out-nat %.out-jit
-	$(Verb)diff $*.out-nat $*.out-jit > $@ \
-	&& echo "PASS(jit): $(notdir $*)" \
-	|| echo "FAIL(jit): $(notdir $*)"
-
-%.diff-llc: %.out-nat %.out-llc
-	$(Verb)diff $*.out-nat $*.out-llc > $@ \
-	&& echo "PASS(llc): $(notdir $*)" \
-	|| echo "FAIL(llc): $(notdir $*)"
-
-GCCLD_PASS_ARGS := $(shell $(GCCLD) /dev/null -debug-pass=Arguments 2>&1 | \
-			grep 'Pass Arguments' | \
-			sed 's/Pass Arguments: //')
-
-# rules to invoke bugpoint
-%.bugpoint.lli: %.llvm.bc %.out-nat
-	$(LBUGPOINT) $< -run-lli -output=$*.out-nat
-
-%.bugpoint.llc: %.llvm.bc %.out-nat
-	$(LBUGPOINT) $< -run-llc -output=$*.out-nat
-
-%.bugpoint.gccld: %.raw.llvm.bc %.out-nat
-	$(LBUGPOINT) $< $(GCCLD_PASS_ARGS) -output=$*.out-nat
-
-all-local:: $(JIT_DIFFS)
-
-endif
diff --git a/java/test/Programs/Makefile b/java/test/Programs/Makefile
deleted file mode 100644
index 781e211..0000000
--- a/java/test/Programs/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Programs/Makefile ------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-PARALLEL_DIRS := SingleSource
-
-include $(LEVEL)/Makefile.common
diff --git a/java/test/Programs/SingleSource/Makefile b/java/test/Programs/SingleSource/Makefile
deleted file mode 100644
index 5416487..0000000
--- a/java/test/Programs/SingleSource/Makefile
+++ /dev/null
@@ -1,15 +0,0 @@
-##===- test/Programs/SingleSource/Makefile -----------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../../..
-
-PARALLEL_DIRS := UnitTests
-
-EXTRA_DIST := Makefile.singlesrc
-
-include $(LEVEL)/Makefile.common
diff --git a/java/test/Programs/SingleSource/Makefile.singlesrc b/java/test/Programs/SingleSource/Makefile.singlesrc
deleted file mode 100644
index c071047..0000000
--- a/java/test/Programs/SingleSource/Makefile.singlesrc
+++ /dev/null
@@ -1,27 +0,0 @@
-##==-- test/Programs/SingleSource/Makefile.singlesrc -----*- makefile -*--====##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-
-# rule to build raw bytecode from a classfile
-%.raw.bc: %.class $(CLASS2LLVM)
-	$(Echo) Compiling $< to bytecode
-	-$(Verb)$(CLASS2LLVM) \
-	  -cp $(CLASSPATH_JAVA_LIBRARY_PATH):$(CLASSPATH):Output \
-	  $(subst /,.,$(*F)) -o=$@
-
-GCCAS_PASS_ARGS := $(shell \
-	 $(GCCAS) 2>&1 < /dev/null > /dev/null -debug-pass=Arguments | \
-			grep 'Pass Arguments' | \
-			sed 's/Pass Arguments: //')
-
-# rule to run gccas passes on raw bytecode
-%.linked.bc: %.raw.bc $(GCCAS)
-	$(Echo) Optimizing $<
-	-$(Verb)$(LOPT) $(GCCAS_PASS_ARGS) -f -o=$@ $<
-
-include $(LEVEL)/test/Makefile.test
diff --git a/java/test/Programs/SingleSource/UnitTests/AbstractCall.java b/java/test/Programs/SingleSource/UnitTests/AbstractCall.java
deleted file mode 100644
index 12ec869..0000000
--- a/java/test/Programs/SingleSource/UnitTests/AbstractCall.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class AbstractCall
-{
-    private static abstract class Abstract {
-        abstract int abstractMethod();
-
-        int concreteMethod() { return abstractMethod(); }
-    }
-
-    private static class Concrete extends Abstract {
-        int abstractMethod() { return 5; }
-    }
-
-    public static void main(String[] args) {
-        Abstract a = new Concrete();
-        Test.println(a.concreteMethod());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/AbstractClassDoesNotImplementInterface.java b/java/test/Programs/SingleSource/UnitTests/AbstractClassDoesNotImplementInterface.java
deleted file mode 100644
index 5df3ffb..0000000
--- a/java/test/Programs/SingleSource/UnitTests/AbstractClassDoesNotImplementInterface.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class AbstractClassDoesNotImplementInterface {
-
-    private static interface Interface {
-        public void iMethod();
-    }
-
-    private static abstract class Abstract implements Interface {
-
-    }
-
-    private static class Concrete extends Abstract {
-        public void iMethod() { Test.println(12345); }
-    }
-
-    public static void main(String[] args) {
-        Interface i = new Concrete();
-        i.iMethod();
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Arithm.java b/java/test/Programs/SingleSource/UnitTests/Arithm.java
deleted file mode 100644
index aac7ed5..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Arithm.java
+++ /dev/null
@@ -1,19 +0,0 @@
-public class Arithm
-{
-    public static void main(String[] args) {
-        int i = 53;
-
-        i += 53;
-        i *= 53;
-        i -= 53;
-        i >>= 3;
-        i /= 53;
-        i %= 53;
-        i = -i;
-        i <<= 3;
-        i |= 53;
-        i ^= 35;
-        i &= 53;
-        Test.println(i);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Array.java b/java/test/Programs/SingleSource/UnitTests/Array.java
deleted file mode 100644
index cada4cf..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Array.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Array
-{
-    public static void main(String[] args) {
-        int[] intArray = new int[10];
-
-        for (int i = 0, e = intArray.length; i != e; ++i)
-            intArray[i] = intArray.length - i;
-
-        Util.printlnElements(intArray);
-
-
-        Object[] objectArray = new Object[10];
-
-        for (int i = 0, e = objectArray.length; i != e; ++i)
-            objectArray[i] = intArray;
-
-        intArray = (int[]) objectArray[4];
-        Util.printlnElements(intArray);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ArrayCopy.java b/java/test/Programs/SingleSource/UnitTests/ArrayCopy.java
deleted file mode 100644
index a8c9d2e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ArrayCopy.java
+++ /dev/null
@@ -1,60 +0,0 @@
-import java.util.*;
-
-public class ArrayCopy
-{
-    public static Random rand = new Random(0);
-
-    public static int min(int a, int b) {
-        return a < b ? a : b;
-    }
-
-    public static void fillArray(Object dst, int dstLength, Object src, int srcLength) {
-        for (int i = 0; i < dstLength; i += srcLength)
-            System.arraycopy(src, 0, dst, i, min(dstLength - i, srcLength));
-    }
-
-    public static void main(String[] args) {
-        int[] isrc = new int[10];
-        byte[] bsrc = new byte[10];
-        float[] fsrc = new float[10];
-        double[] dsrc = new double[10];
-        boolean[] zsrc = new boolean[10];
-        long[] lsrc = new long[10];
-        Object[] osrc = new Object[10];
-
-        for (int i = 0; i < 10; ++i) {
-            isrc[i] = rand.nextInt();
-            bsrc[i] = (byte) rand.nextInt();
-            fsrc[i] = rand.nextFloat();
-            dsrc[i] = rand.nextDouble();
-            zsrc[i] = rand.nextBoolean();
-            lsrc[i] = rand.nextLong();
-            osrc[i] = new Integer(rand.nextInt());
-        }
-
-        int[] idst = new int[7];
-        byte[] bdst = new byte[19];
-        float[] fdst = new float[28];
-        double[] ddst = new double[23];
-        boolean[] zdst = new boolean[17];
-        long[] ldst = new long[6];
-        Object[] odst = new Object[22];
-
-        fillArray(idst, idst.length, isrc, isrc.length);
-        fillArray(bdst, bdst.length, bsrc, bsrc.length);
-        fillArray(fdst, fdst.length, fsrc, fsrc.length);
-        fillArray(ddst, ddst.length, dsrc, dsrc.length);
-        fillArray(zdst, zdst.length, zsrc, zsrc.length);
-        fillArray(ldst, ldst.length, lsrc, lsrc.length);
-        fillArray(odst, odst.length, osrc, osrc.length);
-
-        Util.printlnElements(idst);
-        Util.printlnElements(bdst);
-        Util.printlnElements(fdst);
-        Util.printlnElements(ddst);
-        Util.printlnElements(zdst);
-        Util.printlnElements(ldst);
-        for (int i = 0; i < odst.length; ++i)
-            Test.println(((Integer)odst[i]).intValue());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ArrayCopyOverlap.java b/java/test/Programs/SingleSource/UnitTests/ArrayCopyOverlap.java
deleted file mode 100644
index 0839375..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ArrayCopyOverlap.java
+++ /dev/null
@@ -1,18 +0,0 @@
-import java.util.*;
-
-public class ArrayCopyOverlap
-{
-    public static Random rand = new Random(0);
-
-    public static void main(String[] args) {
-        byte[] array = new byte[100];
-
-        for (int i = 0; i < array.length; ++i) {
-            array[i] = (byte) rand.nextInt();
-        }
-
-        System.arraycopy(array, 0, array, 23, 59);
-
-        Util.printlnElements(array);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ArrayInstanceOf.java b/java/test/Programs/SingleSource/UnitTests/ArrayInstanceOf.java
deleted file mode 100644
index 146fd66..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ArrayInstanceOf.java
+++ /dev/null
@@ -1,47 +0,0 @@
-public class ArrayInstanceOf
-{
-    private static class Base
-    {
-        int foo() { return 0; }
-        int bar() { return 0; }
-    }
-
-    interface Interface
-    {
-        public int baz();
-    }
-
-    private static class Derived extends Base implements Interface
-    {
-        int foo() { return 1; }
-        public int baz() { return foo(); }
-
-    }
-
-    public static void main(String[] args) {
-	Object o = new Object[10];
-        Object b = new Base[10];
-        Object d = new Derived[10];
-        Object i = new Interface[10];
-
-        Test.println(o instanceof Object[]);
-        Test.println(o instanceof Base[]);
-        Test.println(o instanceof Interface[]);
-        Test.println(o instanceof Derived[]);
-
-        Test.println(b instanceof Object[]);
-        Test.println(b instanceof Base[]);
-        Test.println(b instanceof Interface[]);
-        Test.println(b instanceof Derived[]);
-
-        Test.println(d instanceof Object[]);
-        Test.println(d instanceof Base[]);
-        Test.println(d instanceof Interface[]);
-        Test.println(d instanceof Derived[]);
-
-        Test.println(i instanceof Object[]);
-        Test.println(i instanceof Base[]);
-        Test.println(i instanceof Interface[]);
-        Test.println(i instanceof Derived[]);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/BigConstants.java b/java/test/Programs/SingleSource/UnitTests/BigConstants.java
deleted file mode 100644
index 09d7647..0000000
--- a/java/test/Programs/SingleSource/UnitTests/BigConstants.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class BigConstants
-{
-    public static void main(String[] args) {
-        int i = 1234567890;
-        long l = 1234567890123456789L;
-        float f = -1.23456789e10F;
-        double d = 1.23456789e100;
-
-        Test.println(i);
-        Test.println(l);
-        Test.println(f);
-        Test.println(d);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Call.java b/java/test/Programs/SingleSource/UnitTests/Call.java
deleted file mode 100644
index 35dc071..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Call.java
+++ /dev/null
@@ -1,26 +0,0 @@
-public class Call
-{
-    interface Interface {
-        public int i1();
-    }
-
-    private static abstract class Abstract {
-        protected abstract int a1();
-        public int c1() { return a1() * a2(); }
-        protected abstract int a2();
-    }
-
-    private static class Concrete extends Abstract implements Interface {
-        private int i;
-
-        Concrete(int i) { this.i = i; }
-        public int a1() { return i; }
-        public int a2() { return i + i; }
-        public int i1() { return c1(); }
-    }
-
-    public static void main(String[] args) {
-        Interface i = new Concrete(10);
-        Test.println(i.i1());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections.java b/java/test/Programs/SingleSource/UnitTests/Collections.java
deleted file mode 100644
index 7aa0c73..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections.java
+++ /dev/null
@@ -1,33 +0,0 @@
-import java.util.*;
-
-public class Collections
-{
-    public static Random rand = new Random(0);
-
-    public static void addRandomIntsToCollection(Collection c) {
-        int size = rand.nextInt(45) + 5;
-        for (int i = 0; i < size; ++i)
-            c.add(new Integer(rand.nextInt()));
-    }
-
-    public static void printIntCollection(Collection c) {
-        for (Iterator i = c.iterator(); i.hasNext(); )
-            Test.println(((Integer)i.next()).intValue());
-    }
-
-    public static void main(String[] args) {
-        Collection c1 = new TreeSet();
-        addRandomIntsToCollection(c1);
-        Collection c2 = new TreeSet(c1);
-
-        Test.println(c1.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-        Test.println(c2.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-
-        Test.println(c1.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-        Test.println(c2.remove(new Integer(5)));
-        Test.println(c1.equals(c2));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections1.java b/java/test/Programs/SingleSource/UnitTests/Collections1.java
deleted file mode 100644
index 0e13a2e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections1.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Collections1
-{
-    public static void main(String[] args) {
-        Collection c1 = new LinkedList();
-        Collections.addRandomIntsToCollection(c1);
-        Collections.printIntCollection(c1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections2.java b/java/test/Programs/SingleSource/UnitTests/Collections2.java
deleted file mode 100644
index 40f145d..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections2.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Collections2
-{
-    public static void main(String[] args) {
-        Collection c1 = new TreeSet();
-        Collections.addRandomIntsToCollection(c1);
-        Collections.printIntCollection(c1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections3.java b/java/test/Programs/SingleSource/UnitTests/Collections3.java
deleted file mode 100644
index 837d15a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections3.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Collections3
-{
-    public static void main(String[] args) {
-        Collection c1 = new ArrayList();
-        Collections.addRandomIntsToCollection(c1);
-        Collections.printIntCollection(c1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections4.java b/java/test/Programs/SingleSource/UnitTests/Collections4.java
deleted file mode 100644
index 933fcaf..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections4.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.util.*;
-
-public class Collections4
-{
-    public static void main(String[] args) {
-        Collection c1 = new ArrayList();
-        Collections.addRandomIntsToCollection(c1);
-        Collection c2 = new TreeSet(c1);
-        Collection c3 = new LinkedList();
-        Collections.addRandomIntsToCollection(c3);
-        Test.println(c1.containsAll(c2));
-        Test.println(c1.containsAll(c3));
-        Collections.addRandomIntsToCollection(c1);
-        Test.println(c1.containsAll(c2));
-        Test.println(c1.containsAll(c3));
-        Collections.printIntCollection(c1);
-        Collections.printIntCollection(c2);
-        Collections.printIntCollection(c3);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Collections5.java b/java/test/Programs/SingleSource/UnitTests/Collections5.java
deleted file mode 100644
index 96fb430..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Collections5.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.util.*;
-
-public class Collections5
-{
-    public static void testList(List l) {
-        Collections.addRandomIntsToCollection(l);
-        Collections.printIntCollection(l);
-        java.util.Collections.rotate(l, Collections.rand.nextInt(50000));
-        Collections.printIntCollection(l);
-        java.util.Collections.shuffle(l, Collections.rand);
-        Collections.printIntCollection(l);
-        java.util.Collections.sort(l);
-        Collections.printIntCollection(l);
-    }
-
-    public static void main(String[] args) {
-        testList(new LinkedList());
-        testList(new ArrayList());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Equals.java b/java/test/Programs/SingleSource/UnitTests/Equals.java
deleted file mode 100644
index 3644ae9..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Equals.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Equals
-{
-    public static void main(String[] args) {
-        Object i1 = new Integer(123);
-        Object i2 = new Integer(123);
-        Object i3 = new Long(123);
-
-        Test.println(i1.equals(i1));
-        Test.println(i1 == i1);
-
-        Test.println(i1.equals(i2));
-        Test.println(i1 == i2);
-
-        Test.println(i1.equals(i3));
-        Test.println(i1 == i3);
-
-        Test.println(i1.equals(new Integer(123)));
-        Test.println(i1 == new Integer(123));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/FieldAccess.java b/java/test/Programs/SingleSource/UnitTests/FieldAccess.java
deleted file mode 100644
index 77e5822..0000000
--- a/java/test/Programs/SingleSource/UnitTests/FieldAccess.java
+++ /dev/null
@@ -1,27 +0,0 @@
-public class FieldAccess
-{
-    private static class Base {
-        int i = 1;
-        float f = 1.0F;
-    }
-
-    private static class Derived extends Base {
-        int i = -1;
-        double d = -1.0;
-    }
-
-    public static void main(String[] args) {
-        Derived b = new Derived();
-        b.d = 4.0;
-        b.i = 3;
-        b.f = 2.0F;
-        ((Base) b).i = 4;
-        ((Base) b).f = 1.0F;
-
-        Test.println(((Base)b).i);
-        Test.println(b.i);
-        Test.println(((Base)b).f);
-        Test.println(b.f);
-        Test.println(b.d);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/FloatCompare.java b/java/test/Programs/SingleSource/UnitTests/FloatCompare.java
deleted file mode 100644
index 1fbbe66..0000000
--- a/java/test/Programs/SingleSource/UnitTests/FloatCompare.java
+++ /dev/null
@@ -1,35 +0,0 @@
-public class FloatCompare
-{
-    private static float[] doubles =
-        new float[]{ -1.0f, 0.0f, -0.0f, 1.0f,
-                     Float.NaN,
-                     Float.NEGATIVE_INFINITY,
-                     Float.POSITIVE_INFINITY };
-
-    public static void main(String[] args) {
-        int greater = 0;
-        int equal = 0;
-        int less = 0;
-        int unordered = 0;
-
-        for (int i = 0; i < doubles.length; ++i) {
-            double a = doubles[i];
-            for (int j = 0; j < doubles.length; ++j) {
-                double b = doubles[j];
-                if (a > b)
-                    ++greater;
-                else if (a < b)
-                    ++less;
-                else if (a == b)
-                    ++equal;
-                else
-                    ++unordered;
-            }
-        }
-
-        Test.println(greater);
-        Test.println(equal);
-        Test.println(less);
-        Test.println(unordered);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ForLoop.java b/java/test/Programs/SingleSource/UnitTests/ForLoop.java
deleted file mode 100644
index 492912f..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ForLoop.java
+++ /dev/null
@@ -1,10 +0,0 @@
-public class ForLoop
-{
-    public static void main(String[] args) {
-        int sum = 0;
-        for (int i = 0; i < 100; ++i)
-            sum += i;
-
-        Test.println(sum);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/If.java b/java/test/Programs/SingleSource/UnitTests/If.java
deleted file mode 100644
index 595549f..0000000
--- a/java/test/Programs/SingleSource/UnitTests/If.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class If
-{
-    private static boolean isZero(int i) {
-        return i == 0;
-    }
-
-    public static void main(String[] args) {
-        int i = 0;
-        if (isZero(i))
-            Test.println(0);
-        else
-            Test.println(1);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InnerClass.java b/java/test/Programs/SingleSource/UnitTests/InnerClass.java
deleted file mode 100644
index dedc6b2..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InnerClass.java
+++ /dev/null
@@ -1,34 +0,0 @@
-public class InnerClass
-{
-    private int i = 1024;
-    private boolean b = true;
-
-    public int i1() { return i; }
-    public boolean b1() { return b; }
-
-    InnerClassInner getInner() {
-        return new InnerClassInner();
-    }
-
-    public class InnerClassInner {
-        private int i = 512;
-        private boolean b = false;
-
-        public int ii1() { return i1(); }
-        public int ii2() { return i; }
-        public boolean bb1() { return b1(); }
-        public boolean bb2() { return b; }
-    }
-
-    public static void main(String[] args) {
-        InnerClass i = new InnerClass();
-        Test.println(i.i1());
-        Test.println(i.b1());
-
-        InnerClassInner ii = i.getInner();
-        Test.println(ii.ii1());
-        Test.println(ii.bb1());
-        Test.println(ii.ii2());
-        Test.println(ii.bb2());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InstanceOf.java b/java/test/Programs/SingleSource/UnitTests/InstanceOf.java
deleted file mode 100644
index 6458df4..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InstanceOf.java
+++ /dev/null
@@ -1,38 +0,0 @@
-public class InstanceOf
-{
-    private static class Base
-    {
-        int foo() { return 0; }
-        int bar() { return 0; }
-    }
-
-    interface Interface
-    {
-        public int baz();
-    }
-
-    private static class Derived extends Base implements Interface
-    {
-        int foo() { return 1; }
-        public int baz() { return foo(); }
-
-    }
-
-    public static void main(String[] args) {
-        Base aa = new Base();
-        Base ab = new Derived();
-        Interface bb = new Derived();
-
-        Test.println(aa instanceof Base);
-        Test.println(aa instanceof Derived);
-        Test.println(aa instanceof Interface);
-
-        Test.println(ab instanceof Base);
-        Test.println(ab instanceof Derived);
-        Test.println(ab instanceof Interface);
-
-        Test.println(bb instanceof Base);
-        Test.println(bb instanceof Derived);
-        Test.println(bb instanceof Interface);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InterfaceCall.java b/java/test/Programs/SingleSource/UnitTests/InterfaceCall.java
deleted file mode 100644
index 2500a7a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InterfaceCall.java
+++ /dev/null
@@ -1,27 +0,0 @@
-public class InterfaceCall
-{
-    private static class Base implements Interface
-    {
-        public int foo() { return 1; }
-        public int bar() { return 2; }
-    }
-
-    private static class Derived extends Base
-    {
-        public int foo() { return 100; }
-        public int bar() { return super.bar() + super.foo(); }
-    }
-
-    interface Interface
-    {
-        public int bar();
-    }
-
-    public static void main(String[] args) {
-        Interface i = new Base();
-        Test.println(i.bar());
-
-        i = new Derived();
-        Test.println(i.bar());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/InterfaceStaticInitializers.java b/java/test/Programs/SingleSource/UnitTests/InterfaceStaticInitializers.java
deleted file mode 100644
index 773b036..0000000
--- a/java/test/Programs/SingleSource/UnitTests/InterfaceStaticInitializers.java
+++ /dev/null
@@ -1,12 +0,0 @@
-public class InterfaceStaticInitializers
-{
-    public static class I1 {
-        public static int i1 = 1;
-        public static int i2 = 2;
-    }
-
-    public static void main(String[] args) {
-        Test.println(I1.i1);
-        Test.println(I1.i2);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists.java b/java/test/Programs/SingleSource/UnitTests/Lists.java
deleted file mode 100644
index 0d80087..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists.java
+++ /dev/null
@@ -1,16 +0,0 @@
-import java.util.*;
-
-public class Lists
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        for (int i = 0; i < 10; ++i) {
-            llist.add(new Integer(i));
-        }
-
-        while (!llist.isEmpty()) {
-            Integer I = (Integer) llist.removeFirst();
-            Test.println(I.intValue());
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists1.java b/java/test/Programs/SingleSource/UnitTests/Lists1.java
deleted file mode 100644
index 1556dec..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists1.java
+++ /dev/null
@@ -1,22 +0,0 @@
-import java.util.*;
-
-public class Lists1
-{
-    public static void main(String[] args) {
-        List list = new LinkedList();
-        for (int i = 0; i < 17; ++i) {
-            list.add(new Integer(i));
-        }
-
-        Test.println(list.isEmpty());
-        Object[] array = list.toArray();
-
-        for (int i = 0; i < array.length; ++i) {
-            Test.println(((Integer) array[i]).equals(list.get(i)));
-        }
-
-        list.clear();
-
-        Test.println(list.isEmpty());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists2.java b/java/test/Programs/SingleSource/UnitTests/Lists2.java
deleted file mode 100644
index de9c5e5..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists2.java
+++ /dev/null
@@ -1,20 +0,0 @@
-import java.util.*;
-
-public class Lists2
-{
-    public static void main(String[] args) {
-        List llist = new LinkedList();
-        Test.println(llist.isEmpty());
-
-        for (int i = 0; i < 10; ++i) {
-            llist.add(new Integer(i));
-        }
-        Test.println(llist.isEmpty());
-
-        while (!llist.isEmpty()) {
-            Integer I = (Integer) llist.remove(0);
-            Test.println(I.intValue());
-        }
-        Test.println(llist.isEmpty());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists3.java b/java/test/Programs/SingleSource/UnitTests/Lists3.java
deleted file mode 100644
index 6f8d2ea..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists3.java
+++ /dev/null
@@ -1,25 +0,0 @@
-import java.util.*;
-
-public class Lists3
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        for (int i = 0; i < 10; ++i) {
-            llist.add(new Integer(i));
-        }
-
-        Test.println(llist.contains(new Integer(5)));
-        Test.println(llist.getFirst().equals(new Integer(0)));
-        Test.println(llist.getLast().equals(new Integer(9)));
-        Test.println(llist.indexOf(new Integer(3)));
-        Test.println(llist.remove(new Integer(3)));
-        Test.println(llist.indexOf(new Integer(3)));
-        Test.println(((Integer)llist.removeFirst()).intValue());
-        Test.println(((Integer)llist.removeLast()).intValue());
-        Test.println(llist.size());
-
-        for (int i = 0; i < llist.size(); ++i) {
-            Test.println(((Integer)llist.get(i)).intValue());
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists4.java b/java/test/Programs/SingleSource/UnitTests/Lists4.java
deleted file mode 100644
index 5bea3df..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists4.java
+++ /dev/null
@@ -1,12 +0,0 @@
-import java.util.*;
-
-public class Lists4
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        llist.add(null);
-        Test.println(llist.getFirst() == null);
-        Test.println(llist.contains(null));
-        Test.println(llist.get(0) == null);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists5.java b/java/test/Programs/SingleSource/UnitTests/Lists5.java
deleted file mode 100644
index ab508fc..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists5.java
+++ /dev/null
@@ -1,10 +0,0 @@
-import java.util.*;
-
-public class Lists5
-{
-    public static void main(String[] args) {
-        LinkedList llist = new LinkedList();
-        Iterator i = llist.iterator();
-        Test.println(i.hasNext());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Lists6.java b/java/test/Programs/SingleSource/UnitTests/Lists6.java
deleted file mode 100644
index 5b6d952..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Lists6.java
+++ /dev/null
@@ -1,16 +0,0 @@
-import java.util.*;
-
-public class Lists6
-{
-    public static void main(String[] args) {
-        List llist = new ArrayList();
-        for (int i = 0; i < 15; ++i) {
-            llist.add(new Integer(i));
-        }
-
-        for (Iterator i = llist.iterator(); i.hasNext(); ) {
-            Integer I = (Integer) i.next();
-            Test.println(I.intValue());
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/LongCompare.java b/java/test/Programs/SingleSource/UnitTests/LongCompare.java
deleted file mode 100644
index 93c2ff4..0000000
--- a/java/test/Programs/SingleSource/UnitTests/LongCompare.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class LongCompare
-{
-    public static void main(String[] args) {
-        long l1 = 123456789123456789L;
-        long l2 = 987654321987654321L;
-
-        Test.println(l1);
-        Test.println(l2);
-        Test.println(l1 == l2);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/LookupSwitch.java b/java/test/Programs/SingleSource/UnitTests/LookupSwitch.java
deleted file mode 100644
index 1a2cb0e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/LookupSwitch.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class LookupSwitch
-{
-    public static void main(String[] args) {
-        switch (128) {
-        case 0: Test.println(255);
-        case 128: Test.println(128);
-        case 255: Test.println(0);
-        default: Test.println(-1);
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Makefile b/java/test/Programs/SingleSource/UnitTests/Makefile
deleted file mode 100644
index 8c85dda..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-##===- test/Programs/SingleSource/UnitTests/Makefile -------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../../../..
-
-CPPFLAGS+=-I$(PROJ_SRC_ROOT)/include/llvm/Java
-BYTECODE_LIBRARY=1
-SHARED_LIBRARY=1
-LIBRARYNAME=test
-BUILT_SOURCES = Test.h
-
-include $(LEVEL)/Makefile.common
-
-EXTRA_OBJS = $(LibName.BCA)
-
-BUILD_JAVA_SOURCES=1
-
-include ../Makefile.singlesrc
-
-Test.h: Output/Test.class
-	$(Verb)$(Echo) Creating JNI header for class $(basename $(notdir $<))
-	$(Verb)$(RM) -f $@
-	$(Verb)$(JAVAH) -classpath Output Test
-
-clean::
-	$(Verb)rm -f Test.h
diff --git a/java/test/Programs/SingleSource/UnitTests/Maps.java b/java/test/Programs/SingleSource/UnitTests/Maps.java
deleted file mode 100644
index 8a2a5a4..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Maps.java
+++ /dev/null
@@ -1,25 +0,0 @@
-import java.util.*;
-
-public class Maps
-{
-    public static Random rand = new Random(0);
-
-    public static void fillMapWithRandomInts(Map m) {
-        int size = rand.nextInt(45) + 5;
-        for (int i = 0; i < size; ++i)
-            m.put(new Integer(i), new Integer(rand.nextInt()));
-    }
-
-    public static void printIntMap(Map m) {
-        for (int i = 0; i < m.size(); ++i) {
-            Integer I = (Integer) m.get(new Integer(i));
-            Test.println(I.intValue());
-        }
-    }
-
-    public static void main(String[] args) {
-        TreeMap map = new TreeMap();
-        fillMapWithRandomInts(map);
-        printIntMap(map);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Maps1.java b/java/test/Programs/SingleSource/UnitTests/Maps1.java
deleted file mode 100644
index d7c1025..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Maps1.java
+++ /dev/null
@@ -1,12 +0,0 @@
-import java.util.*;
-
-public class Maps1
-{
-    public static Random rand = new Random(0);
-
-    public static void main(String[] args) {
-        HashMap map = new HashMap();
-        Maps.fillMapWithRandomInts(map);
-        Maps.printIntMap(map);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/MultiArray.java b/java/test/Programs/SingleSource/UnitTests/MultiArray.java
deleted file mode 100644
index aacaf6e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/MultiArray.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class MultiArray
-{
-    public static void main(String[] args) {
-        int[][] intArray = new int[10][10];
-
-        for (int i = 0; i != intArray.length; ++i)
-            for (int j = 0; j != intArray[i].length; ++j)
-                intArray[i][j] = (j+1) * (i+1);
-
-        for (int i = 0; i != intArray.length; ++i)
-            for (int j = 0; j != intArray[i].length; ++j)
-                Test.println(intArray[i][j]);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/MultipleInterfaces.java b/java/test/Programs/SingleSource/UnitTests/MultipleInterfaces.java
deleted file mode 100644
index cbe3425..0000000
--- a/java/test/Programs/SingleSource/UnitTests/MultipleInterfaces.java
+++ /dev/null
@@ -1,43 +0,0 @@
-public class MultipleInterfaces
-{
-    interface I1
-    {
-        public boolean i1();
-    }
-
-    interface I2
-    {
-        public int i2();
-    }
-
-    interface I3 extends I1, I2
-    {
-        public float i3();
-    }
-
-    private static class C1 implements I3
-    {
-        public boolean i1() { return true; }
-        public int i2() { return 2; }
-        public float i3() { return 3.0F; }
-    }
-
-    public static void main(String[] args) {
-        C1 o = new C1();
-        I1 i1 = o;
-        I2 i2 = o;
-        I3 i3 = o;
-
-        Test.println(o.i1());
-        Test.println(o.i2());
-        Test.println(o.i3());
-
-        Test.println(i1.i1());
-
-        Test.println(i2.i2());
-
-        Test.println(i3.i1());
-        Test.println(i3.i2());
-        Test.println(i3.i3());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Numbers.java b/java/test/Programs/SingleSource/UnitTests/Numbers.java
deleted file mode 100644
index 54615b7..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Numbers.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class Numbers
-{
-    public static void main(String[] args) {
-        Number[] numbers = new Number[4];
-
-        numbers[0] = new Byte((byte)123);
-        numbers[1] = new Integer(1234567890);
-        numbers[2] = new Long(1234567890987654321L);
-        numbers[3] = new Short((short)12345);
-
-        for (int i = 0; i != numbers.length; ++i) {
-            Number n = numbers[i];
-            Test.println(n.longValue());
-            Test.println(n.doubleValue());
-         }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/PrivateCall.java b/java/test/Programs/SingleSource/UnitTests/PrivateCall.java
deleted file mode 100644
index 8f4bb9a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/PrivateCall.java
+++ /dev/null
@@ -1,17 +0,0 @@
-public class PrivateCall
-{
-    private int a;
-
-    public PrivateCall(int i) {
-        a = i;
-    }
-
-    private int foo(int i) {
-        return i * i / a;
-    }
-
-    public static void main(String[] args) {
-        PrivateCall p = new PrivateCall(7);
-        Test.println(p.foo(123));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/RandomTest.java b/java/test/Programs/SingleSource/UnitTests/RandomTest.java
deleted file mode 100644
index 82393f7..0000000
--- a/java/test/Programs/SingleSource/UnitTests/RandomTest.java
+++ /dev/null
@@ -1,11 +0,0 @@
-import java.util.*;
-
-public class RandomTest
-{
-    public static Random rand = new Random(0);
-
-    public static void main(String[] args) {
-        for (int i = 0; i < 1000; ++i)
-            Test.println(rand.nextInt());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/StaticInitializers.java b/java/test/Programs/SingleSource/UnitTests/StaticInitializers.java
deleted file mode 100644
index 10aac27..0000000
--- a/java/test/Programs/SingleSource/UnitTests/StaticInitializers.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class StaticInitializers
-{
-    static int foo = 0;
-    static int bar = init();
-    static int baz = init();
-
-     static int init() {
-        return ++foo;
-    }
-
-    public static void main(String[] args) {
-        Test.println(foo);
-        Test.println(bar);
-        Test.println(baz);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Strings.java b/java/test/Programs/SingleSource/UnitTests/Strings.java
deleted file mode 100644
index 92b498e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Strings.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class Strings
-{
-    public static void main(String[] args) {
-        String foo = "foo";
-        String bar = "bar";
-        String foobar = "foobar";
-
-        Test.println(foobar == foo + bar);
-        Test.println(foobar.equals(foo + bar));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/TableSwitch.java b/java/test/Programs/SingleSource/UnitTests/TableSwitch.java
deleted file mode 100644
index bb32edb..0000000
--- a/java/test/Programs/SingleSource/UnitTests/TableSwitch.java
+++ /dev/null
@@ -1,13 +0,0 @@
-public class TableSwitch
-{
-    public static void main(String[] args) {
-        switch (4) {
-        case 0: Test.println(4);
-        case 1: Test.println(3);
-        case 2: Test.println(2);
-        case 3: Test.println(1);
-        case 4: Test.println(0);
-        default: Test.println(-1);
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Test.java b/java/test/Programs/SingleSource/UnitTests/Test.java
deleted file mode 100644
index 908861b..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Test.java
+++ /dev/null
@@ -1,86 +0,0 @@
-public class Test
-{
-    // Fields to test JNI getFieldID and get<TYPE>Field functions.
-    public boolean z = false;
-    public int i = 123;
-    public long l = 1234567890123456789L;
-    public float f = 753.46F;
-    public double d = -46.75346;
-    public short s = 456;
-    public byte b = 78;
-
-    // Fields to test JNI getStaticFieldID and getStatic<TYPE>Field functions.
-    public static boolean Z = true;
-    public static int I = 321;
-    public static long L = 1234567890987654321L;
-    public static float F = 46.753F;
-    public static double D = -75346.46;
-    public static short S = 654;
-    public static byte B = 87;
-
-    // Methods to test JNI getMethodID and call<TYPE>Method functions.
-    public boolean z() { return z; }
-    public int i(int ii) { return i + ii; }
-    public long j(byte bb, short ss) { return l + bb + ss; }
-    public float f(byte bb) { return f + bb; }
-    public double d(int ii, long ll) { return d + ii + ll; }
-    public short s(double dd, byte bb) { return (short) (s + dd + bb); }
-    public byte b(short ss, float ff) { return (byte)(B + ff + ss); }
-
-    // Methods to test JNI getStaticMethodID and
-    // callStatic<TYPE>Method functions.
-    public static boolean Z() { return Z; }
-    public static int I(int jj) { return I + jj; }
-    public static long J(byte bb, short ss) { return L + bb + ss; }
-    public static float F(byte bb) { return F + bb; }
-    public static double D(int ii, long ll) { return D + ii + ll; }
-    public static short S(double dd, byte bb) { return (short) (S + dd + bb); }
-    public static byte B(short ss, float ff) { return (byte)(B + ff + ss); }
-
-    static {
-        System.loadLibrary("test");
-    }
-
-    public static native void println(boolean b);
-    public static native void println(int i);
-    public static native void println(long l);
-    public static native void println(float f);
-    public static native void println(double d);
-    public static void println(Object o) {
-        println(o.toString());
-    }
-    public static void println(String s) {
-        byte[] bytes = new byte[s.length()];
-        s.getBytes(0, s.length(), bytes, 0);
-        println(bytes);
-    }
-    private static native void println(byte[] a);
-
-    public native void printFields();
-    public static native void printStaticFields();
-    public native void printMethods();
-    public static native void printStaticMethods();
-
-    public static void main(String[] args) {
-        println(true);
-        println(false);
-        println(123);
-        println(-321);
-        println(1234567890123456789L);
-        println(-1234567890123456789L);
-        println(753.46F);
-        println(-753.46F);
-        println(753.46);
-        println(-753.46);
-        println(new byte[] { 'H', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' });
-        println("Hello world");
-        println("Printing static fields:");
-        printStaticFields();
-        println("Printing member fields:");
-        new Test().printFields();
-        println("Calling static methods:");
-        printStaticMethods();
-        println("Calling member methods:");
-        new Test().printMethods();
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/Util.java b/java/test/Programs/SingleSource/UnitTests/Util.java
deleted file mode 100644
index a949fd8..0000000
--- a/java/test/Programs/SingleSource/UnitTests/Util.java
+++ /dev/null
@@ -1,184 +0,0 @@
-import java.util.*;
-
-public class Util
-{
-    private static Random rand = new Random(0);
-
-    public static void randomFill(boolean[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(boolean[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextBoolean();
-    }
-
-    public static void randomFill(byte[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(byte[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = (byte) rand.nextInt();
-    }
-
-    public static void randomFill(char[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(char[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = (char) rand.nextInt();
-    }
-
-    public static void randomFill(double[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(double[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextDouble();
-    }
-
-    public static void randomFill(float[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(float[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextFloat();
-    }
-
-    public static void randomFill(int[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(int[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextInt();
-    }
-
-    public static void randomFill(long[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(long[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = rand.nextLong();
-    }
-
-    public static void randomFill(short[] a) {
-        randomFill(a, 0, a.length);
-    }
-
-    public static void randomFill(short[] a, int from, int to) {
-        for (; from < to; ++from)
-            a[from] = (short) rand.nextInt();
-    }
-
-    public static void printlnElements(boolean[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(boolean[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(byte[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(byte[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(char[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(char[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(double[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(double[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(float[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(float[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(int[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(int[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(long[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(long[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void printlnElements(short[] a) {
-        printlnElements(a, 0, a.length);
-    }
-
-    public static void printlnElements(short[] a, int from, int to) {
-        for (; from < to; ++from)
-            Test.println(a[from]);
-    }
-
-    public static void main(String[] args) {
-        boolean[] az = new boolean[rand.nextInt(100)];
-        randomFill(az);
-        printlnElements(az);
-
-        byte[] ab = new byte[rand.nextInt(100)];
-        randomFill(ab);
-        printlnElements(ab);
-
-        char[] ac = new char[rand.nextInt(100)];
-        randomFill(ac);
-        printlnElements(ac);
-
-        double[] ad = new double[rand.nextInt(100)];
-        randomFill(ad);
-        printlnElements(ad);
-
-        float[] af = new float[rand.nextInt(100)];
-        randomFill(af);
-        printlnElements(af);
-
-        int[] ai = new int[rand.nextInt(100)];
-        randomFill(ai);
-        printlnElements(ai);
-
-        long[] al = new long[rand.nextInt(100)];
-        randomFill(al);
-        printlnElements(al);
-
-        short[] as = new short[rand.nextInt(100)];
-        randomFill(as);
-        printlnElements(as);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/VTable.java b/java/test/Programs/SingleSource/UnitTests/VTable.java
deleted file mode 100644
index 2bbda18..0000000
--- a/java/test/Programs/SingleSource/UnitTests/VTable.java
+++ /dev/null
@@ -1,30 +0,0 @@
-class VTableBase
-{
-    public int foo() { return 0; }
-    public int bar() { return 1; }
-}
-
-interface VTableInterface
-{
-    public int baz();
-}
-
-public class VTable extends VTableBase implements VTableInterface
-{
-    public int foo() { return 2; }
-    public int baz() { return 3; }
-
-    public static void main(String[] args) {
-        VTableBase a = new VTableBase();
-        Test.println(a.foo());
-        Test.println(a.bar());
-
-        a = new VTable();
-        Test.println(a.foo());
-        Test.println(a.bar());
-        Test.println(((VTableInterface)a).baz());
-
-        VTableInterface i = new VTable();
-        Test.println(i.baz());
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/VirtualCall.java b/java/test/Programs/SingleSource/UnitTests/VirtualCall.java
deleted file mode 100644
index 9e18f9d..0000000
--- a/java/test/Programs/SingleSource/UnitTests/VirtualCall.java
+++ /dev/null
@@ -1,37 +0,0 @@
-public class VirtualCall
-{
-    static class A
-    {
-        public void m1() { Test.println(1); m2(); m3(); }
-        public void m2() { Test.println(2); m3(); }
-        public void m3() { Test.println(3); }
-    }
-
-    static class B extends A
-    {
-        public void m2() { Test.println(22); }
-        public void m3() { Test.println(33); }
-    }
-
-    static class C extends B
-    {
-        public void m2() { Test.println(222); m3(); }
-    }
-
-    public static void main(String[] args) {
-        A a = new A();
-        a.m1();
-        a.m2();
-        a.m3();
-
-        a = new B();
-        a.m1();
-        a.m2();
-        a.m3();
-
-        a = new C();
-        a.m1();
-        a.m2();
-        a.m3();
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ackermann.java b/java/test/Programs/SingleSource/UnitTests/ackermann.java
deleted file mode 100644
index 2fe3ab3..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ackermann.java
+++ /dev/null
@@ -1,9 +0,0 @@
-public class ackermann {
-    public static void main(String[] args) {
-        Test.println(Ack(3, 10));
-    }
-    public static int Ack(int m, int n) {
-        return (m == 0) ? (n + 1) : ((n == 0) ? Ack(m-1, 1) :
-                                     Ack(m-1, Ack(m, n - 1)));
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/ary.java b/java/test/Programs/SingleSource/UnitTests/ary.java
deleted file mode 100644
index 86f1f60..0000000
--- a/java/test/Programs/SingleSource/UnitTests/ary.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class ary {
-    public static void main(String args[]) {
-        int i, j, k, n = 9000;
-        int x[] = new int[n];
-        int y[] = new int[n];
-
-        for (i = 0; i < n; i++)
-            x[i] = i + 1;
-        for (k = 0; k < 1000; k++ )
-            for (j = n-1; j >= 0; j--)
-                y[j] += x[j];
-
-        Test.println(y[0]);
-        Test.println(y[n-1]);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/fibo.java b/java/test/Programs/SingleSource/UnitTests/fibo.java
deleted file mode 100644
index 335a42a..0000000
--- a/java/test/Programs/SingleSource/UnitTests/fibo.java
+++ /dev/null
@@ -1,10 +0,0 @@
-public class fibo {
-    public static void main(String args[]) {
-        int N = 32;
-        Test.println(fib(N));
-    }
-    public static int fib(int n) {
-        if (n < 2) return(1);
-        return( fib(n-2) + fib(n-1) );
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/heapsort.java b/java/test/Programs/SingleSource/UnitTests/heapsort.java
deleted file mode 100644
index 7ae87ee..0000000
--- a/java/test/Programs/SingleSource/UnitTests/heapsort.java
+++ /dev/null
@@ -1,53 +0,0 @@
-public class heapsort {
-
-    public static final long IM = 139968;
-    public static final long IA =   3877;
-    public static final long IC =  29573;
-
-    public static void main(String args[]) {
-        int N = 100000;
-        double []ary = new double[N+1];
-        for (int i=1; i<=N; i++) {
-            ary[i] = gen_random(1);
-        }
-        heapsort(N, ary);
-        Test.println(ary[N]);
-    }
-
-    public static long last = 42;
-    public static double gen_random(double max) {
-        return( max * (last = (last * IA + IC) % IM) / IM );
-    }
-
-    public static void heapsort(int n, double ra[]) {
-        int l, j, ir, i;
-        double rra;
-
-        l = (n >> 1) + 1;
-        ir = n;
-        for (;;) {
-            if (l > 1) {
-                rra = ra[--l];
-            } else {
-                rra = ra[ir];
-                ra[ir] = ra[1];
-                if (--ir == 1) {
-                    ra[1] = rra;
-                    return;
-                }
-            }
-            i = l;
-            j = l << 1;
-            while (j <= ir) {
-                if (j < ir && ra[j] < ra[j+1]) { ++j; }
-                if (rra < ra[j]) {
-                    ra[i] = ra[j];
-                    j += (i = j);
-                } else {
-                    j = ir + 1;
-                }
-            }
-            ra[i] = rra;
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/methcall.java b/java/test/Programs/SingleSource/UnitTests/methcall.java
deleted file mode 100644
index 00e57cc..0000000
--- a/java/test/Programs/SingleSource/UnitTests/methcall.java
+++ /dev/null
@@ -1,52 +0,0 @@
-public class methcall {
-    private static class Toggle {
-        boolean state = true;
-        public Toggle(boolean start_state) {
-            this.state = start_state;
-        }
-        public boolean value() {
-            return(this.state);
-        }
-        public Toggle activate() {
-            this.state = !this.state;
-            return(this);
-        }
-    }
-
-    private static class NthToggle extends Toggle {
-        int count_max = 0;
-        int counter = 0;
-
-        public NthToggle(boolean start_state, int max_counter) {
-            super(start_state);
-            this.count_max = max_counter;
-            this.counter = 0;
-        }
-        public Toggle activate() {
-            this.counter += 1;
-            if (this.counter >= this.count_max) {
-                this.state = !this.state;
-                this.counter = 0;
-            }
-            return(this);
-        }
-    }
-
-    public static void main(String args[]) {
-        int n = 1000000;
-
-        boolean val = true;
-        Toggle toggle = new Toggle(val);
-        for (int i=0; i<n; i++) {
-            val = toggle.activate().value();
-        }
-        Test.println(val);
-
-        val = true;
-        NthToggle ntoggle = new NthToggle(true, 3);
-        for (int i=0; i<n; i++) {
-            val = ntoggle.activate().value();
-        }
-        Test.println(val);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/nestedloop.java b/java/test/Programs/SingleSource/UnitTests/nestedloop.java
deleted file mode 100644
index 61df19e..0000000
--- a/java/test/Programs/SingleSource/UnitTests/nestedloop.java
+++ /dev/null
@@ -1,14 +0,0 @@
-public class nestedloop {
-    public static void main(String args[]) {
-        int n = 18;
-        int x = 0;
-        for (int a=0; a<n; a++)
-            for (int b=0; b<n; b++)
-                for (int c=0; c<n; c++)
-                    for (int d=0; d<n; d++)
-                        for (int e=0; e<n; e++)
-                            for (int f=0; f<n; f++)
-                                x++;
-        Test.println(x);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/objinst.java b/java/test/Programs/SingleSource/UnitTests/objinst.java
deleted file mode 100644
index 3be4949..0000000
--- a/java/test/Programs/SingleSource/UnitTests/objinst.java
+++ /dev/null
@@ -1,53 +0,0 @@
-public class objinst {
-    private static class Toggle {
-        boolean state = true;
-        public Toggle(boolean start_state) {
-            this.state = start_state;
-        }
-        public boolean value() {
-            return(this.state);
-        }
-        public Toggle activate() {
-            this.state = !this.state;
-            return(this);
-        }
-    }
-
-    private static class NthToggle extends Toggle {
-        int count_max = 0;
-        int counter = 0;
-
-        public NthToggle(boolean start_state, int max_counter) {
-            super(start_state);
-            this.count_max = max_counter;
-            this.counter = 0;
-        }
-        public Toggle activate() {
-            this.counter += 1;
-            if (this.counter >= this.count_max) {
-                this.state = !this.state;
-                this.counter = 0;
-            }
-            return(this);
-        }
-    }
-
-    public static void main(String args[]) {
-        int n = 1500000;
-        Toggle toggle1 = new Toggle(true);
-        for (int i=0; i<5; i++) {
-            Test.println(toggle1.activate().value());
-        }
-        for (int i=0; i<n; i++) {
-            Toggle toggle = new Toggle(true);
-        }
-
-        NthToggle ntoggle1 = new NthToggle(true, 3);
-        for (int i=0; i<8; i++) {
-            Test.println(ntoggle1.activate().value());
-        }
-        for (int i=0; i<n; i++) {
-            NthToggle toggle = new NthToggle(true, 3);
-        }
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/random.java b/java/test/Programs/SingleSource/UnitTests/random.java
deleted file mode 100644
index b5f83e6..0000000
--- a/java/test/Programs/SingleSource/UnitTests/random.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class random {
-
-    public static final int IM = 139968;
-    public static final int IA = 3877;
-    public static final int IC = 29573;
-
-    public static void main(String args[]) {
-        int N = 900000;
-
-        while (--N > 0) {
-            gen_random(100);
-        }
-        Test.println(gen_random(100));
-    }
-
-    public static int last = 42;
-    public static double gen_random(double max) {
-        return( max * (last = (last * IA + IC) % IM) / IM );
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/sieve.java b/java/test/Programs/SingleSource/UnitTests/sieve.java
deleted file mode 100644
index da1841b..0000000
--- a/java/test/Programs/SingleSource/UnitTests/sieve.java
+++ /dev/null
@@ -1,23 +0,0 @@
-public class sieve {
-    public static void main(String args[]) {
-        int NUM = 1200;
-        boolean [] flags = new boolean[8192 + 1];
-        int count = 0;
-        while (NUM-- > 0) {
-            count = 0;
-            for (int i=2; i <= 8192; i++) {
-                flags[i] = true;
-            }
-            for (int i=2; i <= 8192; i++) {
-                if (flags[i]) {
-                    // remove all multiples of prime: i
-                    for (int k=i+i; k <= 8192; k+=i) {
-                        flags[k] = false;
-                    }
-                    count++;
-                }
-            }
-        }
-        Test.println(count);
-    }
-}
diff --git a/java/test/Programs/SingleSource/UnitTests/takfp.java b/java/test/Programs/SingleSource/UnitTests/takfp.java
deleted file mode 100644
index e716ac1..0000000
--- a/java/test/Programs/SingleSource/UnitTests/takfp.java
+++ /dev/null
@@ -1,11 +0,0 @@
-public class takfp {
-    public static void main(String args[]) {
-        int n = 10;
-        Test.println( Tak(n*3.0f, n*2.0f, n*1.0f) );
-    }
-
-  public static float Tak (float x, float y, float z) {
-    if (y >= x) return z;
-    else return Tak(Tak(x-1.0f,y,z), Tak(y-1.0f,z,x), Tak(z-1.0f,x,y));
-  }
-}
\ No newline at end of file
diff --git a/java/test/Programs/SingleSource/UnitTests/test.c b/java/test/Programs/SingleSource/UnitTests/test.c
deleted file mode 100644
index 83438f1..0000000
--- a/java/test/Programs/SingleSource/UnitTests/test.c
+++ /dev/null
@@ -1,240 +0,0 @@
-#include <stdio.h>
-
-#include "Test.h"
-
-void Java_Test_println__Z(JNIEnv *env, jclass clazz, jboolean aBoolean)
-{
-  if (aBoolean)
-    puts("true");
-  else
-    puts("false");
-}
-
-void Java_Test_println__I(JNIEnv *env, jclass clazz, jint aInt)
-{
-  printf("%d\n", aInt);
-}
-
-void Java_Test_println__J(JNIEnv *env, jclass clazz, jlong aLong)
-{
-  printf("%Ld\n", aLong);
-}
-
-void Java_Test_println__F(JNIEnv *env, jclass clazz, jfloat aFloat)
-{
-  printf("%f\n", aFloat);
-}
-
-void Java_Test_println__D(JNIEnv *env, jclass clazz, jdouble aDouble)
-{
-  printf("%f\n", aDouble);
-}
-
-void Java_Test_println___3B(JNIEnv *env, jclass clazz, jbyteArray array)
-{
-  jint size = (*env)->GetArrayLength(env, array);
-  jbyte* elements = (*env)->GetByteArrayElements(env, array, NULL);
-  printf("%.*s\n", size, elements);
-  // Since we didn't modify the array there is no point in copying it back
-  (*env)->ReleaseByteArrayElements(env, array, elements, JNI_ABORT);
-}
-
-void Java_Test_printFields(JNIEnv *env, jobject obj)
-{
-  jclass classTest;
-  jclass objClass;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsInstanceOf(env, obj, classTest))
-    printf("ERROR: IsInstanceOf\n");
-  objClass = (*env)->GetObjectClass(env, obj);
-  if (!(*env)->IsAssignableFrom(env, objClass, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetFieldID(env, objClass, "z", "Z");
-  z = (*env)->GetBooleanField(env, obj, id);
-  Java_Test_println__Z(env, objClass, z);
-
-  id = (*env)->GetFieldID(env, objClass, "i", "I");
-  i = (*env)->GetIntField(env, obj, id);
-  Java_Test_println__I(env, objClass, i);
-
-  id = (*env)->GetFieldID(env, objClass, "l", "J");
-  l = (*env)->GetLongField(env, obj, id);
-  Java_Test_println__J(env, objClass, l);
-
-  id = (*env)->GetFieldID(env, objClass, "f", "F");
-  f = (*env)->GetFloatField(env, obj, id);
-  Java_Test_println__F(env, objClass, f);
-
-  id = (*env)->GetFieldID(env, objClass, "d", "D");
-  d = (*env)->GetDoubleField(env, obj, id);
-  Java_Test_println__D(env, objClass, d);
-
-  id = (*env)->GetFieldID(env, objClass, "s", "S");
-  s = (*env)->GetShortField(env, obj, id);
-  Java_Test_println__I(env, objClass, s);
-
-  id = (*env)->GetFieldID(env, objClass, "b", "B");
-  b = (*env)->GetByteField(env, obj, id);
-  Java_Test_println__I(env, objClass, b);
-}
-
-void Java_Test_printStaticFields(JNIEnv *env, jclass clazz)
-{
-  jclass classTest;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsAssignableFrom(env, clazz, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetStaticFieldID(env, clazz, "Z", "Z");
-  z = (*env)->GetStaticBooleanField(env, clazz, id);
-  Java_Test_println__Z(env, clazz, z);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "I", "I");
-  i = (*env)->GetStaticIntField(env, clazz, id);
-  Java_Test_println__I(env, clazz, i);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "L", "J");
-  l = (*env)->GetStaticLongField(env, clazz, id);
-  Java_Test_println__J(env, clazz, l);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "F", "F");
-  f = (*env)->GetStaticFloatField(env, clazz, id);
-  Java_Test_println__F(env, clazz, f);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "D", "D");
-  d = (*env)->GetStaticDoubleField(env, clazz, id);
-  Java_Test_println__D(env, clazz, d);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "S", "S");
-  s = (*env)->GetStaticShortField(env, clazz, id);
-  Java_Test_println__I(env, clazz, s);
-
-  id = (*env)->GetStaticFieldID(env, clazz, "B", "B");
-  b = (*env)->GetStaticByteField(env, clazz, id);
-  Java_Test_println__I(env, clazz, b);
-}
-
-void Java_Test_printMethods(JNIEnv *env, jobject obj)
-{
-  jclass classTest;
-  jclass objClass;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsInstanceOf(env, obj, classTest))
-    printf("ERROR: IsInstanceOf\n");
-  objClass = (*env)->GetObjectClass(env, obj);
-  if (!(*env)->IsAssignableFrom(env, objClass, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetMethodID(env, objClass, "z", "()Z");
-  z = (*env)->CallBooleanMethod(env, obj, id);
-  Java_Test_println__Z(env, objClass, z);
-
-  id = (*env)->GetMethodID(env, objClass, "i", "(I)I");
-  i = (*env)->CallIntMethod(env, obj, id, 2);
-  Java_Test_println__I(env, objClass, i);
-
-  id = (*env)->GetMethodID(env, objClass, "j", "(BS)J");
-  l = (*env)->CallLongMethod(env, obj, id, 23, 45);
-  Java_Test_println__J(env, objClass, l);
-
-  id = (*env)->GetMethodID(env, objClass, "f", "(B)F");
-  f = (*env)->CallFloatMethod(env, obj, id, 123);
-  Java_Test_println__F(env, objClass, f);
-
-  id = (*env)->GetMethodID(env, objClass, "d", "(IJ)D");
-  d = (*env)->CallDoubleMethod(env, obj, id, 654, 123ll);
-  Java_Test_println__D(env, objClass, d);
-
-  id = (*env)->GetMethodID(env, objClass, "s", "(DB)S");
-  s = (*env)->CallShortMethod(env, obj, id, 2.0, 123);
-  Java_Test_println__I(env, objClass, s);
-
-  id = (*env)->GetMethodID(env, objClass, "b", "(SF)B");
-  b = (*env)->CallByteMethod(env, obj, id, 23, -2.0);
-  Java_Test_println__I(env, objClass, b);
-}
-
-void Java_Test_printStaticMethods(JNIEnv *env, jobject clazz)
-{
-  jclass classTest;
-  jfieldID id;
-  jboolean z;
-  jint i;
-  jlong l;
-  jfloat f;
-  jdouble d;
-  jshort s;
-  jbyte b;
-
-  classTest = (*env)->FindClass(env, "Test");
-  if (!classTest)
-    printf("ERROR: Class Test not found!\n");
-
-  if (!(*env)->IsAssignableFrom(env, clazz, classTest))
-    printf("ERROR: IsAssignableFrom\n");
-
-  id = (*env)->GetStaticMethodID(env, clazz, "Z", "()Z");
-  z = (*env)->CallStaticBooleanMethod(env, clazz, id);
-  Java_Test_println__Z(env, clazz, z);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "I", "(I)I");
-  i = (*env)->CallStaticIntMethod(env, clazz, id, 2);
-  Java_Test_println__I(env, clazz, i);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "J", "(BS)J");
-  l = (*env)->CallStaticLongMethod(env, clazz, id, 23, 45);
-  Java_Test_println__J(env, clazz, l);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "F", "(B)F");
-  f = (*env)->CallStaticFloatMethod(env, clazz, id, 123);
-  Java_Test_println__F(env, clazz, f);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "D", "(IJ)D");
-  d = (*env)->CallStaticDoubleMethod(env, clazz, id, 654, 12354123ll);
-  Java_Test_println__D(env, clazz, d);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "S", "(DB)S");
-  s = (*env)->CallStaticShortMethod(env, clazz, id, 2.0, 123);
-  Java_Test_println__I(env, clazz, s);
-
-  id = (*env)->GetStaticMethodID(env, clazz, "B", "(SF)B");
-  b = (*env)->CallStaticByteMethod(env, clazz, id, 21, -58.0);
-  Java_Test_println__I(env, clazz, b);
-}
diff --git a/java/test/Regression/ClassFile/Catch.java b/java/test/Regression/ClassFile/Catch.java
deleted file mode 100644
index b0a417b..0000000
--- a/java/test/Regression/ClassFile/Catch.java
+++ /dev/null
@@ -1,16 +0,0 @@
-public class Catch
-{
-    public static int main(String[] args) {
-        int i = 0;
-
-        try {
-            i += 10;
-        }
-        catch (Exception e) {
-            System.err.println("caught exception: " + e);
-            i += 20;
-        }
-
-        return i;
-    }
-}
diff --git a/java/test/Regression/ClassFile/Finally.java b/java/test/Regression/ClassFile/Finally.java
deleted file mode 100644
index f65e3d5..0000000
--- a/java/test/Regression/ClassFile/Finally.java
+++ /dev/null
@@ -1,20 +0,0 @@
-public class Finally
-{
-    public static int main(String[] args) {
-        int i = 0;
-
-        try {
-            i += 10;
-        }
-        catch (Exception e) {
-            System.err.println("caught exception: " + e);
-            i += 20;
-        }
-        finally {
-            System.err.println("executing finally clause");
-            i += 30;
-        }
-
-        return 0;
-    }
-}
diff --git a/java/test/Regression/ClassFile/Hello.java b/java/test/Regression/ClassFile/Hello.java
deleted file mode 100644
index 737a219..0000000
--- a/java/test/Regression/ClassFile/Hello.java
+++ /dev/null
@@ -1,8 +0,0 @@
-public class Hello
-{
-    public static int main(String[] args) {
-        System.out.println("Hello world");
-        return 0;
-    }
-}
-
diff --git a/java/test/Regression/ClassFile/Makefile b/java/test/Regression/ClassFile/Makefile
deleted file mode 100644
index 7b10fe0..0000000
--- a/java/test/Regression/ClassFile/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Regression/ClassFile/Makefile ------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../../..
-
-JAVAFILES := $(wildcard *.java)
-
-include $(LEVEL)/test/Makefile.test
diff --git a/java/test/Regression/ClassFile/Simple.java b/java/test/Regression/ClassFile/Simple.java
deleted file mode 100644
index 370f0d4..0000000
--- a/java/test/Regression/ClassFile/Simple.java
+++ /dev/null
@@ -1,6 +0,0 @@
-public class Simple
-{
-    public static int main(String[] args) {
-        return 0;
-    }
-}
diff --git a/java/test/Regression/Makefile b/java/test/Regression/Makefile
deleted file mode 100644
index 58520dd..0000000
--- a/java/test/Regression/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- test/Regression/Makefile ----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-PARALLEL_DIRS := ClassFile
-
-include $(LEVEL)/test/Makefile.test
diff --git a/java/tools/Makefile b/java/tools/Makefile
deleted file mode 100755
index a5d15b6..0000000
--- a/java/tools/Makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-##===- tools/Makefile --------------------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ..
-
-PARALLEL_DIRS := classdump class2llvm
-
-include $(LEVEL)/Makefile.common
diff --git a/java/tools/class2llvm/Makefile b/java/tools/class2llvm/Makefile
deleted file mode 100644
index abbca4f..0000000
--- a/java/tools/class2llvm/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#===- tools/class2llvm/Makefile ----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-TOOLNAME := class2llvm
-
-USEDLIBS := LLVMJavaCompiler.a LLVMJavaClassfile.a
-LLVMLIBS := LLVMBCWriter LLVMCore LLVMSupport.a LLVMbzip2 LLVMSystem.a
-
-include $(LEVEL)/Makefile.common
diff --git a/java/tools/class2llvm/class2llvm.cpp b/java/tools/class2llvm/class2llvm.cpp
deleted file mode 100644
index 5e5d1a6..0000000
--- a/java/tools/class2llvm/class2llvm.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===-- class2llvm.cpp - class2llvm utility ---------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a sample class reader driver. It is used to drive class
-// reader tests.
-//
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Java/Compiler.h>
-#include <llvm/PassManager.h>
-#include <llvm/Analysis/Verifier.h>
-#include <llvm/Bytecode/WriteBytecodePass.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-
-#include <cstddef>
-#include <fstream>
-#include <iostream>
-
-using namespace llvm;
-
-static cl::opt<std::string>
-InputClass(cl::Positional, cl::desc("<input class>"));
-
-static cl::opt<std::string>
-OutputFilename("o", cl::desc("Output filename"), cl::value_desc("filename"));
-
-int main(int argc, char* argv[])
-{
-  sys::PrintStackTraceOnErrorSignal();
-  cl::ParseCommandLineOptions(argc, argv,
-                              "classfile to llvm utility");
-
-  std::ostream* out = &std::cout;
-  if (!OutputFilename.empty()) {
-    sys::RemoveFileOnSignal(sys::Path(OutputFilename));
-    out = new std::ofstream(OutputFilename.c_str());
-  }
-
-  try {
-    std::auto_ptr<Module> module = Java::compile(InputClass);
-
-    PassManager passes;
-    passes.add(createVerifierPass());
-    passes.add(new WriteBytecodePass(out));
-    passes.run(*module);
-  }
-  catch (std::exception& e) {
-    std::cerr << e.what() << '\n';
-    sys::Path(OutputFilename).eraseFromDisk();
-    return EXIT_FAILURE;
-  }
-
-  if (!OutputFilename.empty())
-    delete out;
-
-  return EXIT_SUCCESS;
-}
diff --git a/java/tools/classdump/Makefile b/java/tools/classdump/Makefile
deleted file mode 100755
index 576fe65..0000000
--- a/java/tools/classdump/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-#===- tools/classdump/Makefile -----------------------------*- Makefile -*-===##
-#
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-#
-##===----------------------------------------------------------------------===##
-LEVEL := ../..
-
-TOOLNAME := classdump
-
-USEDLIBS := LLVMJavaClassfile.a
-LLVMLIBS := LLVMCore LLVMSupport.a LLVMbzip2 LLVMSystem.a
-
-include $(LEVEL)/Makefile.common
diff --git a/java/tools/classdump/classdump.cpp b/java/tools/classdump/classdump.cpp
deleted file mode 100644
index e65ef44..0000000
--- a/java/tools/classdump/classdump.cpp
+++ /dev/null
@@ -1,683 +0,0 @@
-//===-- classdump.cpp - classdump utility -----------------------*- C++ -*-===//
-//
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This is a sample class reader driver. It is used to drive class
-// reader tests.
-//
-//===----------------------------------------------------------------------===//
-
-#include <llvm/Java/ClassFile.h>
-#include <llvm/Java/BytecodeParser.h>
-#include <llvm/Support/CommandLine.h>
-#include <llvm/System/Signals.h>
-
-#include <cstddef>
-#include <iostream>
-
-using namespace llvm;
-
-namespace {
-
-  enum DumpType { code, constantPool };
-
-  cl::opt<std::string>
-  InputClass(cl::Positional, cl::desc("<input class>"));
-
-  cl::opt<DumpType>
-  DumpMode(
-    "dumptype",
-    cl::desc("Dump type: (default = code)"),
-    cl::Prefix,
-    cl::values(
-      clEnumVal(code,         "code"),
-      clEnumVal(constantPool, "constant pool"),
-      clEnumValEnd),
-    cl::init(code));
-
-  using namespace llvm::Java;
-
-  class ClassDump : public BytecodeParser<ClassDump> {
-    const ClassFile* CF;
-    std::ostream& Out;
-
-  public:
-    ClassDump(const ClassFile* cf, std::ostream& out)
-      : CF(cf), Out(out) {
-
-      if (CF->isPublic())
-        Out << "public ";
-      if (CF->isFinal())
-        Out << "final ";
-
-      Out << "class " << CF->getThisClass()->getName()->str() << ' ';
-
-      if (ConstantClass* super = CF->getSuperClass())
-        Out << "extends " << super->getName()->str() << ' ';
-
-      if (CF->getNumInterfaces()) {
-        Out << "implements " << CF->getInterface(0)->getName()->str();
-        for (unsigned i = 1, e = CF->getNumInterfaces(); i != e; ++i)
-          Out << ", " << CF->getInterface(i)->getName()->str();
-        Out << ' ';
-      }
-      Out << "{\n";
-
-      const Fields& fields = CF->getFields();
-      // Dump static fields.
-      for (unsigned i = 0, e = fields.size(); i != e; ++i)
-        if (fields[i]->isStatic())
-          dumpField(fields[i]);
-      // Dump instance fields.
-      for (unsigned i = 0, e = fields.size(); i != e; ++i)
-        if (!fields[i]->isStatic())
-          dumpField(fields[i]);
-
-      const Methods& methods = CF->getMethods();
-      for (unsigned i = 0, e = methods.size(); i != e; ++i)
-        dumpMethod(methods[i]);
-
-      Out << "\n}\n";
-    }
-
-    void dumpField(const Field* F) {
-      Out << '\n';
-      if (F->isPublic())
-        Out << "public ";
-      else if (F->isProtected())
-        Out << "protected ";
-      else if (F->isPrivate())
-        Out << "private ";
-
-      if (F->isStatic())
-        Out << "static ";
-
-      if (F->isFinal())
-        Out << "final ";
-
-      if (F->isTransient())
-        Out << "transient ";
-
-      Out << getPrettyString(F->getDescriptor()->str()) << ' '
-          << F->getName()->str() << ";\n";
-    }
-
-    void dumpMethod(const Method* M) {
-      Out << '\n';
-      if (M->isPublic())
-        Out << "public ";
-      else if (M->isProtected())
-        Out << "protected ";
-      else if (M->isPrivate())
-        Out << "private ";
-
-      if (M->isStatic())
-        Out << "static ";
-
-      if (M->isAbstract())
-        Out << "abstract ";
-
-      if (M->isFinal())
-        Out << "final ";
-
-      if (M->isSynchronized())
-        Out << "synchronized ";
-
-      std::string Signature = getPrettyString(M->getDescriptor()->str());
-      Signature.insert(Signature.find('('), M->getName()->str());
-
-      Out << Signature << ";\n";
-      if (CodeAttribute* CodeAttr = M->getCodeAttribute()) {
-        Out << "\tCode:";
-        parse(CodeAttr->getCode(), 0, CodeAttr->getCodeSize());
-        Out << '\n';
-      }
-    }
-
-    std::string getPrettyString(const std::string& Desc) {
-      unsigned I = 0;
-      std::string prettyString = getPrettyStringHelper(Desc, I);
-      for (unsigned i = 0, e = prettyString.size(); i != e; ++i)
-        if (prettyString[i] == '/')
-          prettyString[i] = '.';
-      return prettyString;
-    }
-
-    std::string getPrettyStringHelper(const std::string& Desc, unsigned& I) {
-      if (Desc.size() == I)
-        return "";
-
-      switch (Desc[I++]) {
-      case 'B': return "byte";
-      case 'C': return "char";
-      case 'D': return "double";
-      case 'F': return "float";
-      case 'I': return "int";
-      case 'J': return "long";
-      case 'S': return "short";
-      case 'Z': return "boolean";
-      case 'V': return "void";
-      case 'L': {
-        unsigned E = Desc.find(';', I);
-        std::string ClassName = Desc.substr(I, E - I);
-        I = E + 1;
-        return ClassName;
-      }
-      case '[': {
-        std::string ArrayPart;
-        ArrayPart += "[]";
-        while (Desc[I] == '[') {
-          ArrayPart += "[]";
-          ++I;
-        }
-
-        return getPrettyStringHelper(Desc, I) + ArrayPart;
-      }
-      case '(': {
-        std::string Params;
-        while (Desc[I] != ')') {
-          if (Desc[I-1] != '(')
-            Params += ',';
-          Params += getPrettyStringHelper(Desc, I);
-        }
-        return getPrettyStringHelper(Desc, ++I) + " (" + Params + ')';
-      }
-      }
-
-      return "";
-    }
-
-    /// @brief called before every bytecode
-    void pre_inst(unsigned bcI) { Out << "\n\t " << bcI << ":\t"; }
-    /// @brief called on ACONST_NULL
-    void do_aconst_null() { Out << "aconst_null"; }
-    /// @brief called on ICONST_<n>, SIPUSH and BIPUSH
-    void do_iconst(int value) {
-      if (value == -1)
-        Out << "iconst_m1";
-      else if (value >=0 && value <= 5)
-        Out << "iconst_" << value;
-      else if (value >= -128 && value <= 127)
-        Out << "bipush " << value;
-      else
-        Out << "sipush " << value;
-    }
-    /// @brief called on LCONST_<n>
-    void do_lconst(long long value) {
-      if (value == 0 || value == 1)
-        Out << "lconst_" << value;
-      else
-        Out << "lconst " << value;
-    }
-    /// @brief called on FCONST_<n>
-    void do_fconst(float value) {
-      if (value >= 0 && value <= 2)
-        Out << "fconst_" << value;
-      else
-        Out << "fconst " << value;
-    }
-    /// @brief called on DCONST_<n>
-    void do_dconst(double value) {
-      if (value == 0 || value == 1)
-        Out << "dconst_" << value;
-      else
-        Out << "dconst " << value;
-    }
-    /// @brief called on LDC and LDC_W
-    void do_ldc(unsigned index) {
-      if (index <= 255)
-        Out << "ldc";
-      else
-        Out << "ldc_w";
-      Out <<  "\t#" << index << "; //" << *CF->getConstant(index);      
-    }
-    /// @brief called on LDC2_W
-    void do_ldc2(unsigned index) {
-      Out << "ldc2_w \t#" << index << "; //" << *CF->getConstant(index);
-    }
-    /// @brief called on ILOAD and ILOAD_<n>
-    void do_iload(unsigned index) {
-      if (index <= 3)
-        Out << "iload_" << index;
-      else
-        Out << "iload " << index;
-    }
-    /// @brief called on LLOAD and LLOAD_<n>
-    void do_lload(unsigned index) {
-      if (index <= 3)
-        Out << "lload_" << index;
-      else
-        Out << "lload " << index;
-    }
-    /// @brief called on FLOAD and FLOAD_<n>
-    void do_fload(unsigned index) {
-      if (index <= 3)
-        Out << "fload_" << index;
-      else
-        Out << "fload " << index;
-    }
-    /// @brief called on DLOAD and DLOAD_<n>
-    void do_dload(unsigned index) {
-      if (index <= 3)
-        Out << "dload_" << index;
-      else
-        Out << "dload " << index;
-    }
-    /// @brief called on ALOAD and ALOAD_<n>
-    void do_aload(unsigned index) {
-      if (index <= 3)
-        Out << "aload_" << index;
-      else
-        Out << "aload " << index;
-    }
-    /// @brief called on IALOAD
-    void do_iaload() { Out << "iaload"; }
-    /// @brief called on LALOAD
-    void do_laload() { Out << "laload"; }
-    /// @brief called on FALOAD
-    void do_faload() { Out << "faload"; }
-    /// @brief called on DALOAD
-    void do_daload() { Out << "daload"; }
-    /// @brief called on AALOAD
-    void do_aaload() { Out << "aaload"; }
-    /// @brief called on BALOAD
-    void do_baload() { Out << "baload"; }
-    /// @brief called on CALOAD
-    void do_caload() { Out << "caload"; }
-    /// @brief called on SALOAD
-    void do_saload() { Out << "saload"; }
-    /// @brief called on ISTORE and ISTORE_<n>
-    void do_istore(unsigned index) {
-      if (index <= 3)
-        Out << "istore_" << index;
-      else
-        Out << "istore " << index;
-    }
-    /// @brief called on LSTORE and LSTORE_<n>
-    void do_lstore(unsigned index) {
-      if (index <= 3)
-        Out << "lstore_" << index;
-      else
-        Out << "lstore " << index;
-    }
-    /// @brief called on FSTORE and FSTORE_<n>
-    void do_fstore(unsigned index) {
-      if (index <= 3)
-        Out << "fstore_" << index;
-      else
-        Out << "fstore " << index;
-    }
-    /// @brief called on DSTORE and DSTORE_<n>
-    void do_dstore(unsigned index) {
-      if (index <= 3)
-        Out << "dstore_" << index;
-      else
-        Out << "dstore " << index;
-    }
-    /// @brief called on ASTORE and ASTORE_<n>
-    void do_astore(unsigned index) {
-      if (index <= 3)
-        Out << "astore_" << index;
-      else
-        Out << "astore " << index;
-    }
-    /// @brief called on IASTORE
-    void do_iastore() { Out << "iastore"; }
-    /// @brief called on LASTORE
-    void do_lastore() { Out << "lastore"; }
-    /// @brief called on FASTORE
-    void do_fastore() { Out << "fastore"; }
-    /// @brief called on DASTORE
-    void do_dastore() { Out << "dastore"; }
-    /// @brief called on AASTORE
-    void do_aastore() { Out << "aastore"; }
-    /// @brief called on BASTORE
-    void do_bastore() { Out << "bastore"; }
-    /// @brief called on CASTORE
-    void do_castore() { Out << "castore"; }
-    /// @brief called on SASTORE
-    void do_sastore() { Out << "sastore"; }
-    /// @brief called on POP
-    void do_pop() { Out << "pop"; }
-    /// @brief called on POP2
-    void do_pop2() { Out << "pop2"; }
-    /// @brief called on DUP
-    void do_dup() { Out << "dup"; }
-    /// @brief called on DUP_X1
-    void do_dup_x1() { Out << "dup_x1"; }
-    /// @brief called on DUP_X2
-    void do_dup_x2() { Out << "dup_x2"; }
-    /// @brief called on DUP2
-    void do_dup2() { Out << "dup2"; }
-    /// @brief called on DUP2_X1
-    void do_dup2_x1() { Out << "dup2_x1"; }
-    /// @brief called on DUP2_X2
-    void do_dup2_x2() { Out << "dup2_x2"; }
-    /// @brief called on SWAP
-    void do_swap() { Out << "swap"; }
-    /// @brief called on IADD
-    void do_iadd() { Out << "iadd"; }
-    /// @brief called on LADD
-    void do_ladd() { Out << "ladd"; }
-    /// @brief called on FADD
-    void do_fadd() { Out << "fadd"; }
-    /// @brief called on DADD
-    void do_dadd() { Out << "dadd"; }
-    /// @brief called on ISUB
-    void do_isub() { Out << "isub"; }
-    /// @brief called on LSUB
-    void do_lsub() { Out << "lsub"; }
-    /// @brief called on FSUB
-    void do_fsub() { Out << "fsub"; }
-    /// @brief called on DSUB
-    void do_dsub() { Out << "dsub"; }
-    /// @brief called on IMUL
-    void do_imul() { Out << "imul"; }
-    /// @brief called on LMUL
-    void do_lmul() { Out << "lmul"; }
-    /// @brief called on FMUL
-    void do_fmul() { Out << "fmul"; }
-    /// @brief called on DMUL
-    void do_dmul() { Out << "dmul"; }
-    /// @brief called on IDIV
-    void do_idiv() { Out << "idiv"; }
-    /// @brief called on LDIV
-    void do_ldiv() { Out << "ldiv"; }
-    /// @brief called on FDIV
-    void do_fdiv() { Out << "fdiv"; }
-    /// @brief called on DDIV
-    void do_ddiv() { Out << "ddiv"; }
-    /// @brief called on IREM
-    void do_irem() { Out << "irem"; }
-    /// @brief called on LREM
-    void do_lrem() { Out << "lrem"; }
-    /// @brief called on FREM
-    void do_frem() { Out << "frem"; }
-    /// @brief called on DREM
-    void do_drem() { Out << "drem"; }
-    /// @brief called on INEG
-    void do_ineg() { Out << "ineg"; }
-    /// @brief called on LNEG
-    void do_lneg() { Out << "lneg"; }
-    /// @brief called on FNEG
-    void do_fneg() { Out << "fneg"; }
-    /// @brief called on DNEG
-    void do_dneg() { Out << "dneg"; }
-    /// @brief called on ISHL
-    void do_ishl() { Out << "ishl"; }
-    /// @brief called on LSHL
-    void do_lshl() { Out << "lshl"; }
-    /// @brief called on ISHR
-    void do_ishr() { Out << "ishr"; }
-    /// @brief called on LSHR
-    void do_lshr() { Out << "lshr"; }
-    /// @brief called on IUSHR
-    void do_iushr() { Out << "iushr"; }
-    /// @brief called on LUSHR
-    void do_lushr() { Out << "lushr"; }
-    /// @brief called on IAND
-    void do_iand() { Out << "iand"; }
-    /// @brief called on LAND
-    void do_land() { Out << "land"; }
-    /// @brief called on IOR
-    void do_ior() { Out << "ior"; }
-    /// @brief called on LOR
-    void do_lor() { Out << "lor"; }
-    /// @brief called on IXOR
-    void do_ixor() { Out << "ixor"; }
-    /// @brief called on LXOR
-    void do_lxor() { Out << "lxor"; }
-    /// @brief called on IINC
-    void do_iinc(unsigned index, int amount) {
-      Out << "iinc " << index << ", " << amount;
-    }
-    /// @brief called on I2L
-    void do_i2l() { Out << "i2l"; }
-    /// @brief called on I2F
-    void do_i2f() { Out << "i2f"; }
-    /// @brief called on I2D
-    void do_i2d() { Out << "i2d"; }
-    /// @brief called on L2I
-    void do_l2i() { Out << "l2i"; }
-    /// @brief called on L2F
-    void do_l2f() { Out << "l2f"; }
-    /// @brief called on L2D
-    void do_l2d() { Out << "l2d"; }
-    /// @brief called on F2I
-    void do_f2i() { Out << "f2i"; }
-    /// @brief called on F2L
-    void do_f2l() { Out << "f2l"; }
-    /// @brief called on F2D
-    void do_f2d() { Out << "f2d"; }
-    /// @brief called on D2I
-    void do_d2i() { Out << "d2i"; }
-    /// @brief called on D2L
-    void do_d2l() { Out << "d2l"; }
-    /// @brief called on D2F
-    void do_d2f() { Out << "d2f"; }
-    /// @brief called on I2B
-    void do_i2b() { Out << "i2b"; }
-    /// @brief called on I2C
-    void do_i2c() { Out << "i2c"; }
-    /// @brief called on I2S
-    void do_i2s() { Out << "i2s"; }
-    /// @brief called on LCMP
-    void do_lcmp() { Out << "lcmp"; }
-    /// @brief called on FCMPL
-    void do_fcmpl() { Out << "fcmpl"; }
-    /// @brief called on DCMPL
-    void do_dcmpl() { Out << "dcmpl"; }
-    /// @brief called on FCMPG
-    void do_fcmpg() { Out << "fcmpg"; }
-    /// @brief called on DCMPG
-    void do_dcmpg() { Out << "dcmpg"; }
-    /// @brief called on IFEQ
-    void do_ifeq(unsigned t, unsigned f) { Out << "ifeq " << t; }
-    /// @brief called on IFNE
-    void do_ifne(unsigned t, unsigned f) { Out << "ifne " << t; }
-    /// @brief called on IFLT
-    void do_iflt(unsigned t, unsigned f) { Out << "iflt " << t; }
-    /// @brief called on IFGE
-    void do_ifge(unsigned t, unsigned f) { Out << "ifge " << t; }
-    /// @brief called on IFGT
-    void do_ifgt(unsigned t, unsigned f) { Out << "ifgt " << t; }
-    /// @brief called on IFLE
-    void do_ifle(unsigned t, unsigned f) { Out << "ifle " << t; }
-    /// @brief called on IF_ICMPEQ
-    void do_if_icmpeq(unsigned t, unsigned f) { Out << "if_icmpeq " << t; }
-    /// @brief called on IF_ICMPNE
-    void do_if_icmpne(unsigned t, unsigned f) { Out << "if_icmpne " << t; }
-    /// @brief called on IF_ICMPLT
-    void do_if_icmplt(unsigned t, unsigned f) { Out << "if_icmplt " << t; }
-    /// @brief called on IF_ICMPGE
-    void do_if_icmpge(unsigned t, unsigned f) { Out << "if_icmpge " << t; }
-    /// @brief called on IF_ICMPGT
-    void do_if_icmpgt(unsigned t, unsigned f) { Out << "if_icmpgt " << t; }
-    /// @brief called on IF_ICMPLE
-    void do_if_icmple(unsigned t, unsigned f) { Out << "if_icmple " << t; }
-    /// @brief called on IF_ACMPEQ
-    void do_if_acmpeq(unsigned t, unsigned f) { Out << "if_acmpeq " << t; }
-    /// @brief called on IF_ACMPNE
-    void do_if_acmpne(unsigned t, unsigned f) { Out << "if_acmpne " << t; }
-    /// @brief called on GOTO and GOTO_W
-    void do_goto(unsigned target) { Out << "goto " << target; }
-    /// @brief called on JSR and JSR_W
-    void do_jsr(unsigned target, unsigned retAddress) { abort(); }
-    /// @brief called on RET
-    void do_ret(unsigned index) { abort(); }
-    /// @brief called on TABLESWITCH
-    void do_tableswitch(unsigned defTarget, const SwitchCases& sw) {
-      Out << "tableswitch{ //" << sw.front().first << " to " << sw.back().first;
-      for (unsigned i = 0, e = sw.size(); i != e; ++i)
-        Out << "\n\t\t\t" << sw[i].first << ": " << sw[i].second << ';';
-      Out << ";\n\t\t\tdefault: " << defTarget << " }";
-    }
-    /// @brief called on LOOKUPSWITCH
-    void do_lookupswitch(unsigned defTarget, const SwitchCases& sw) { abort(); }
-    /// @brief called on IRETURN
-    void do_ireturn() { Out << "ireturn"; }
-    /// @brief called on LRETURN
-    void do_lreturn() { Out << "lreturn"; }
-    /// @brief called on FRETURN
-    void do_freturn() { Out << "freturn"; }
-    /// @brief called on DRETURN
-    void do_dreturn() { Out << "dreturn"; }
-    /// @brief called on ARETURN
-    void do_areturn() { Out << "areturn"; }
-    /// @brief called on RETURN
-    void do_return() { Out << "return"; }
-    /// @brief called on GETSTATIC
-    void do_getstatic(unsigned index) {
-      Out << "getstatic #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on PUTSTATIC
-    void do_putstatic(unsigned index) {
-      Out << "putstatic #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on GETFIELD
-    void do_getfield(unsigned index) {
-      Out << "getfield #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on PUTFIELD
-    void do_putfield(unsigned index) {
-      Out << "putfield #" << index << "; //Field ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKEVIRTUAL
-    void do_invokevirtual(unsigned index) {
-      Out << "invokevirtual #" << index << "; //Method ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKESPECIAL
-    void do_invokespecial(unsigned index) {
-      Out << "invokespecial #" << index << "; //Method ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKESTATIC
-    void do_invokestatic(unsigned index) {
-      Out << "invokestatic #" << index << "; //Method ";
-      printMemberRef(index);
-    }
-    /// @brief called on INVOKEINTERFACE
-    void do_invokeinterface(unsigned index) {
-      Out << "invokeinterface #" << index << "; //InterfaceMethod ";
-      printMemberRef(index);
-    }
-    /// @brief called on NEW
-    void do_new(unsigned index) {
-      Out << "new #" << index << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on NEWARRAY
-    void do_newarray(JType type) {
-      Out << "newarray ";
-      switch (type) {
-      case BOOLEAN: Out << "boolean"; break;
-      case CHAR: Out << "char"; break;
-      case FLOAT: Out << "float"; break;
-      case DOUBLE: Out << "double"; break;
-      case BYTE: Out << "byte"; break;
-      case SHORT: Out << "short"; break;
-      case INT: Out << "int"; break;
-      case LONG: Out << "long"; break;
-      default: assert(0 && "Unknown type for newarray!");
-      }
-    }
-
-    /// @brief called on ANEWARRAY
-    void do_anewarray(unsigned index) {
-      Out << "anewarray #" << index << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on ARRAYLENGTH
-    void do_arraylength() { Out << "arraylength"; }
-    /// @brief called on ATHROW
-    void do_athrow() { Out << "athrow"; }
-    /// @brief called on CHECKCAST
-    void do_checkcast(unsigned index) {
-      Out << "checkcast #" << index
-          << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on INSTANCEOF
-    void do_instanceof(unsigned index) {
-      Out << "instanceof #" << index
-          << "; //class ";
-      printClassRef(index);
-    }
-    /// @brief called on MONITORENTER
-    void do_monitorenter() { Out << "monitorenter"; }
-    /// @brief called on MONITOREXIT
-    void do_monitorexit() { Out << "monitorexit"; }
-    /// @brief called on MULTIANEWARRAY
-    void do_multianewarray(unsigned index, unsigned dims) { }
-    /// @brief called on IFNULL
-    void do_ifnull(unsigned t, unsigned f) { Out << "ifnull " << t; }
-    /// @brief called on IFNONNULL
-    void do_ifnonnull(unsigned t, unsigned f) { Out << "ifnonnull " << t; }
-
-    void printMemberRef(unsigned index) {
-      ConstantMemberRef* Ref = CF->getConstantMemberRef(index);
-      ConstantClass* Class = Ref->getClass();
-      if (Class != CF->getThisClass())
-        Out << Class->getName()->str() << '.';
-      Out << Ref->getNameAndType()->getName()->str()
-          << ':'
-          << Ref->getNameAndType()->getDescriptor()->str();
-    }
-
-    void printClassRef(unsigned index) {
-      const std::string& FQCN = CF->getConstantClass(index)->getName()->str();
-      Out << FQCN.substr(FQCN.rfind('/')+1);
-    }
-  };
-}
-
-int main(int argc, char* argv[])
-{
-  sys::PrintStackTraceOnErrorSignal();
-  cl::ParseCommandLineOptions(argc, argv,
-                              "class dump utility");
-
-  try {
-    const Java::ClassFile* cf(Java::ClassFile::get(InputClass));
-
-    switch (DumpMode) {
-    default:
-      std::cerr << "no dump type selected";
-      abort();
-    case code: {
-      ClassDump(cf, std::cout);
-      break;
-    }
-    case constantPool: {
-      for (unsigned i = 0, e = cf->getNumConstants(); i != e; ++i) {
-        Constant* c = cf->getConstant(i);
-        std::cout.width(6);
-        std::cout << i << ": ";
-        std::cout.width(0);
-        if (c)
-          std::cout << *cf->getConstant(i);
-        else
-          std::cout << "empty";
-        std::cout << '\n';
-      }
-      break;
-    }
-    }
-  }
-  catch (std::exception& e) {
-    std::cerr << e.what() << '\n';
-    return EXIT_FAILURE;
-  }
-
-  return EXIT_SUCCESS;
-}
diff --git a/nightly-test-server/NewTestingGuide.html b/nightly-test-server/NewTestingGuide.html
deleted file mode 100644
index c597c5b..0000000
--- a/nightly-test-server/NewTestingGuide.html
+++ /dev/null
@@ -1,627 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-                      "http://www.w3.org/TR/html4/strict.dtd">
-<html>
-<head>
-  <title>LLVM Test Suite Guide</title>
-  <link rel="stylesheet" href="llvm.css" type="text/css">
-</head>
-<body>
-      
-<div class="doc_title">
-  LLVM Test Suite Guide
-</div>
-
-<ol>
-  <li><a href="#overview">Overview</a></li>
-  <li><a href="#Requirements">Requirements</a></li>
-  <li><a href="#quick">Quick Start</a></li>
-  <li><a href="#org">LLVM Test Suite Organization</a>
-    <ul>
-      <li><a href="#codefragments">Code Fragments</a></li>
-      <li><a href="#wholeprograms">Whole Programs</a></li>
-    </ul>
-  </li>
-  <li><a href="#tree">LLVM Test Suite Tree</a></li>
-  <li><a href="#dgstructure">DejaGNU Structure</a></li>
-  <li><a href="#progstructure"><tt>llvm-test</tt> Structure</a></li>
-  <li><a href="#run">Running the LLVM Tests</a>
-    <ul>
-      <li><a href="#customtest">Writing custom tests for llvm-test</a></li>
-    </ul>
-  </li>
-  <li><a href="#nightly">Running the nightly tester</a></li>
-</ol>
-
-<div class="doc_author">
-  <p>Written by John T. Criswell, <a
-  href="http://llvm.x10sys.com/rspencer">Reid Spencer</a>, and Tanya Lattner</p>
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="overview">Overview</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>This document is the reference manual for the LLVM test suite.  It documents
-the structure of the LLVM test suite, the tools needed to use it, and how to add
-and run tests.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="Requirements">Requirements</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>In order to use the LLVM test suite, you will need all of the software
-required to build LLVM, plus the following:</p>
-
-<dl>
-<dt><a href="http://www.gnu.org/software/dejagnu/">DejaGNU</a></dt>
-<dd>The Feature and Regressions tests are organized and run by DejaGNU.</dd>
-<dt><a href="http://expect.nist.gov/">Expect</a></dt>
-<dd>Expect is required by DejaGNU.</dd>
-<dt><a href="http://www.tcl.tk/software/tcltk/">tcl</a></dt>
-<dd>Tcl is required by DejaGNU. </dd>
-
-<dt><a href="http://www.netlib.org/f2c">F2C</a></dt>
-<dd>For now, LLVM does not have a Fortran front-end, but using F2C, we can run
-Fortran benchmarks.  F2C support must be enabled via <tt>configure</tt> if not
-installed in a standard place.  F2C requires three items: the <tt>f2c</tt>
-executable, <tt>f2c.h</tt> to compile the generated code, and <tt>libf2c.a</tt>
-to link generated code.  By default, given an F2C directory <tt>$DIR</tt>, the
-configure script will search <tt>$DIR/bin</tt> for <tt>f2c</tt>,
-<tt>$DIR/include</tt> for <tt>f2c.h</tt>, and <tt>$DIR/lib</tt> for
-<tt>libf2c.a</tt>.  The default <tt>$DIR</tt> values are: <tt>/usr</tt>,
-<tt>/usr/local</tt>, <tt>/sw</tt>, and <tt>/opt</tt>.  If you installed F2C in a
-different location, you must tell <tt>configure</tt>:
-
-<ul>
-<li><tt>./configure --with-f2c=$DIR</tt><br>
-This will specify a new <tt>$DIR</tt> for the above-described search
-process.  This will only work if the binary, header, and library are in their
-respective subdirectories of <tt>$DIR</tt>.</li>
-
-<li><tt>./configure --with-f2c-bin=/binary/path --with-f2c-inc=/include/path
---with-f2c-lib=/lib/path</tt><br>
-This allows you to specify the F2C components separately.  Note: if you choose
-this route, you MUST specify all three components, and you need to only specify
-<em>directories</em> where the files are located; do NOT include the
-filenames themselves on the <tt>configure</tt> line.</li>
-</ul></dd>
-</dl>
-
-<p>Darwin (Mac OS X) developers can simplify the installation of Expect and tcl
-by using fink.  <tt>fink install expect</tt> will install both. Alternatively,
-Darwinports users can use <tt>sudo port install expect</tt> to install Expect
-and tcl.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="quick">Quick Start</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>The tests are located in two separate CVS modules. The basic feature and 
-regression tests are in the main "llvm" module under the directory 
-<tt>llvm/test</tt>. A more comprehensive test suite that includes whole 
-programs in C and C++ is in the <tt>llvm-test</tt> module. This module should 
-be checked out to the <tt>llvm/projects</tt> directory. When you
-<tt>configure</tt> the <tt>llvm</tt> module, the <tt>llvm-test</tt> module
-will be automatically configured. Alternatively, you can configure the
- <tt>llvm-test</tt> module manually.</p>
-<p>To run all of the simple tests in LLVM using DejaGNU, use the master Makefile
- in the <tt>llvm/test</tt> directory:</p>
-<pre>
-% gmake -C llvm/test
-</pre>
-or<br>
-<pre>
-% gmake check
-</pre>
-
-<p>To run only a subdirectory of tests in llvm/test using DejaGNU (ie.
-Regression/Transforms), just set the TESTSUITE variable to the path of the
-subdirectory (relative to <tt>llvm/test</tt>):</p>
-<pre>
-% gmake -C llvm/test TESTSUITE=Regression/Transforms
-</pre>
-
-<p><b>Note: If you are running the tests with <tt>objdir != subdir</tt>, you
-must have run the complete testsuite before you can specify a
-subdirectory.</b></p>
-
-<p>To run the comprehensive test suite (tests that compile and execute whole 
-programs), run the <tt>llvm-test</tt> tests:</p>
-
-<pre>
-% cd llvm/projects
-% cvs co llvm-test
-% cd llvm-test
-% ./configure --with-llvmsrc=$LLVM_SRC_ROOT --with-llvmobj=$LLVM_OBJ_ROOT
-% gmake
-</pre>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="org">LLVM Test Suite Organization</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>The LLVM test suite contains two major categories of tests: code
-fragments and whole programs. Code fragments are in the <tt>llvm</tt> module
-under the <tt>llvm/test</tt> directory. The whole programs
-test suite is in the <tt>llvm-test</tt> module under the main directory.</p>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection"><a name="codefragments">Code Fragments</a></div>
-<!-- _______________________________________________________________________ -->
-
-<div class="doc_text">
-
-<p>Code fragments are small pieces of code that test a specific feature of LLVM
-or trigger a specific bug in LLVM.  They are usually written in LLVM assembly
-language, but can be written in other languages if the test targets a particular
-language front end.</p>
-
-<p>Code fragments are not complete programs, and they are never executed to
-determine correct behavior.</p> 
-
-<p>These code fragment tests are located in the <tt>llvm/test/Features</tt> and 
-<tt>llvm/test/Regression</tt> directories.</p>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection"><a name="wholeprograms">Whole Programs</a></div>
-<!-- _______________________________________________________________________ -->
-
-<div class="doc_text">
-
-<p>Whole Programs are pieces of code which can be compiled and linked into a
-stand-alone program that can be executed.  These programs are generally written
-in high level languages such as C or C++, but sometimes they are written
-straight in LLVM assembly.</p>
-
-<p>These programs are compiled and then executed using several different
-methods (native compiler, LLVM C backend, LLVM JIT, LLVM native code generation,
-etc).  The output of these programs is compared to ensure that LLVM is compiling
-the program correctly.</p>
-
-<p>In addition to compiling and executing programs, whole program tests serve as
-a way of benchmarking LLVM performance, both in terms of the efficiency of the
-programs generated as well as the speed with which LLVM compiles, optimizes, and
-generates code.</p>
-
-<p>All "whole program" tests are located in the <tt>llvm-test</tt> CVS
-module.</p> 
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="tree">LLVM Test Suite Tree</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>Each type of test in the LLVM test suite has its own directory. The major
-subtrees of the test suite directory tree are as follows:</p>
-    
-<ul>
-<li><tt>llvm/test/Features</tt>
-<p>This directory contains sample codes that test various features of the
-LLVM language.  These pieces of sample code are run through various
-assembler, disassembler, and optimizer passes.</p>
-</li>
-
-<li><tt>llvm/test/Regression</tt>
-<p>This directory contains regression tests for LLVM.  When a bug is found
-in LLVM, a regression test containing just enough code to reproduce the
-problem should be written and placed somewhere underneath this directory.
-In most cases, this will be a small piece of LLVM assembly language code,
-often distilled from an actual application or benchmark.</p>
-</li>
-
-<li><tt>llvm-test</tt>
-<p>The <tt>llvm-test</tt> CVS module contains programs that can be compiled 
-with LLVM and executed.  These programs are compiled using the native compiler
-and various LLVM backends.  The output from the program compiled with the 
-native compiler is assumed correct; the results from the other programs are
-compared to the native program output and pass if they match.</p>
-
-<p>In addition for testing correctness, the <tt>llvm-test</tt> directory also
-performs timing tests of various LLVM optimizations.  It also records
-compilation times for the compilers and the JIT.  This information can be
-used to compare the effectiveness of LLVM's optimizations and code
-generation.</p></li>
-
-<li><tt>llvm-test/SingleSource</tt>
-<p>The SingleSource directory contains test programs that are only a single 
-source file in size.  These are usually small benchmark programs or small 
-programs that calculate a particular value.  Several such programs are grouped 
-together in each directory.</p></li>
-
-<li><tt>llvm-test/MultiSource</tt>
-<p>The MultiSource directory contains subdirectories which contain entire 
-programs with multiple source files.  Large benchmarks and whole applications 
-go here.</p></li>
-
-<li><tt>llvm-test/External</tt>
-<p>The External directory contains Makefiles for building code that is external
-to (i.e., not distributed with) LLVM.  The most prominent members of this
-directory are the SPEC 95 and SPEC 2000 benchmark suites.  The presence and
-location of these external programs is configured by the llvm-test
-<tt>configure</tt> script.</p></li>
-      
-</ul>
-
-</div>
-<!--=========================================================================-->
-<div class="doc_section"><a name="dgstructure">DejaGNU Structure</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-<p>The LLVM test suite is partially driven by DejaGNU and partially
-driven by GNU Make. Specifically, the Features and Regression tests
-are all driven by DejaGNU. The <tt>llvm-test</tt>
-module is currently driven by a set of Makefiles.</p>
-
-<p>The DejaGNU structure is very simple, but does require some
-information to be set. This information is gathered via <tt>configure</tt> and
-is written to a file, <tt>site.exp</tt> in <tt>llvm/test</tt>. The
-<tt>llvm/test</tt>
-Makefile does this work for you.</p>
-
-<p>In order for DejaGNU to work, each directory of tests must have a
-<tt>dg.exp</tt> file. This file is a program written in tcl that calls
-the <tt>llvm-runtests</tt> procedure on each test file. The
-llvm-runtests procedure is defined in
-<tt>llvm/test/lib/llvm-dg.exp</tt>. Any directory that contains only
-directories does not need the <tt>dg.exp</tt> file.</p>
-
-<p>In order for a test to be run, it must contain information within
-the test file on how to run the test. These are called <tt>RUN</tt>
-lines. Run lines are specified in the comments of the test program
-using the keyword <tt>RUN</tt> followed by a colon, and lastly the
-commands to execute. These commands will be executed in a bash script,
-so any bash syntax is acceptable. You can specify as many RUN lines as
-necessary.  Each RUN line translates to one line in the resulting bash
-script. Below is an example of legal RUN lines in a <tt>.ll</tt>
-file:</p>
-<pre>
-; RUN: llvm-as < %s | llvm-dis > %t1
-; RUN: llvm-dis < %s.bc-13 > %t2
-; RUN: diff %t1 %t2
-</pre>
-<p>There are a couple patterns within a <tt>RUN</tt> line that the
-llvm-runtest procedure looks for and replaces with the appropriate
-syntax:</p>
-
-<dl style="margin-left: 25px">
-<dt>%p</dt> 
-<dd>The path to the source directory. This is for locating
-any supporting files that are not generated by the test, but used by
-the test.</dd> 
-<dt>%s</dt> 
-<dd>The test file.</dd> 
-
-<dt>%t</dt>
-<dd>Temporary filename: testscript.test_filename.tmp, where
-test_filename is the name of the test file. All temporary files are
-placed in the Output directory within the directory the test is
-located.</dd> 
-
-<dt>%prcontext</dt> 
-<dd>Path to a script that performs grep -C. Use this since not all
-platforms support grep -C.</dd>
-
-<dt>%llvmgcc</dt> <dd>Full path to the llvm-gcc executable.</dd>
-<dt>%llvmgxx</dt> <dd>Full path to the llvm-g++ executable.</dd>
-</dl>
-
-<p>There are also several scripts in the llvm/test/Scripts directory
-that you might find useful when writing <tt>RUN</tt> lines.</p>
-
-<p>Lastly, you can easily mark a test that is expected to fail on a
-specific platform or with a specific version of llvmgcc by using the
- <tt>XFAIL</tt> keyword. Xfail lines are
-specified in the comments of the test program using <tt>XFAIL</tt>,
-followed by a colon, and one or more regular expressions (separated by
-a comma) that will match against the target triplet or llvmgcc version for the
-machine. You can use * to match all targets. You can specify the major or full
- version (i.e. 3.4) for llvmgcc. Here is an example of an
-<tt>XFAIL</tt> line:</p>
-<pre>
-; XFAIL: darwin,sun,llvmgcc4
-</pre>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="progstructure"><tt>llvm-test</tt> 
-Structure</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>As mentioned previously, the <tt>llvm-test</tt> module  provides three types
-of tests: MultiSource, SingleSource, and External.  Each tree is then subdivided
-into several categories, including applications, benchmarks, regression tests,
-code that is strange grammatically, etc.  These organizations should be
-relatively self explanatory.</p>
-
-<p>In addition to the regular "whole program"  tests, the <tt>llvm-test</tt>
-module also provides a mechanism for compiling the programs in different ways.
-If the variable TEST is defined on the gmake command line, the test system will
-include a Makefile named <tt>TEST.&lt;value of TEST variable&gt;.Makefile</tt>.
-This Makefile can modify build rules to yield different results.</p>
-
-<p>For example, the LLVM nightly tester uses <tt>TEST.nightly.Makefile</tt> to
-create the nightly test reports.  To run the nightly tests, run <tt>gmake
-TEST=nightly</tt>.</p>
-
-<p>There are several TEST Makefiles available in the tree.  Some of them are
-designed for internal LLVM research and will not work outside of the LLVM
-research group.  They may still be valuable, however, as a guide to writing your
-own TEST Makefile for any optimization or analysis passes that you develop with
-LLVM.</p>
-
-<p>Note, when configuring the <tt>llvm-test</tt> module, you might want to
-specify the following configuration options:</p>
-<dl>
-  <dt><i>--enable-spec2000</i>
-  <dt><i>--enable-spec2000=&lt;<tt>directory</tt>&gt;</i>
-  <dd>
-    Enable the use of SPEC2000 when testing LLVM.  This is disabled by default
-    (unless <tt>configure</tt> finds SPEC2000 installed).  By specifying
-    <tt>directory</tt>, you can tell configure where to find the SPEC2000
-    benchmarks.  If <tt>directory</tt> is left unspecified, <tt>configure</tt>
-    uses the default value
-    <tt>/home/vadve/shared/benchmarks/speccpu2000/benchspec</tt>.
-    <p>
-  <dt><i>--enable-spec95</i>
-  <dt><i>--enable-spec95=&lt;<tt>directory</tt>&gt;</i>
-  <dd>
-    Enable the use of SPEC95 when testing LLVM.  It is similar to the
-    <i>--enable-spec2000</i> option.
-    <p>
-  <dt><i>--enable-povray</i>
-  <dt><i>--enable-povray=&lt;<tt>directory</tt>&gt;</i>
-  <dd>
-    Enable the use of Povray as an external test.  Versions of Povray written
-    in C should work.  This option is similar to the <i>--enable-spec2000</i>
-    option.
-</dl>
-</div>
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="run">Running the LLVM Tests</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>First, all tests are executed within the LLVM object directory tree.  They
-<i>are not</i> executed inside of the LLVM source tree. This is because the
-test suite creates temporary files during execution.</p>
-
-<p>The master Makefile in llvm/test is capable of running only the DejaGNU
-driven tests. By default, it will run all of these tests.</p>
-
-<p>To run only the DejaGNU driven tests, run <tt>gmake</tt> at the
-command line in <tt>llvm/test</tt>.  To run a specific directory of tests, use
-the TESTSUITE variable.
-</p>
-
-<p>For example, to run the Regression tests, type 
-<tt>gmake TESTSUITE=Regression</tt> in <tt>llvm/tests</tt>.</p>
-
-<p>Note that there are no Makefiles in <tt>llvm/test/Features</tt> and
-<tt>llvm/test/Regression</tt>. You must use DejaGNU from the <tt>llvm/test</tt>
-directory to run them.</p>
-
-<p>To run the <tt>llvm-test</tt> suite, you need to use the following steps:
-</p>
-<ol>
-  <li>cd into the llvm/projects directory</li>
-  <li>check out the <tt>llvm-test</tt> module with:<br/>
-  <tt>cvs -d :pserver:anon@llvm.org:/var/cvs/llvm co -PR llvm-test</tt><br> 
-  This will get the test suite into <tt>llvm/projects/llvm-test</tt></li>
-  <li>configure the test suite. You can do this one of two ways:
-  <ol>
-    <li>Use the regular llvm configure:<br/>
-    <tt>cd $LLVM_OBJ_ROOT ; $LLVM_SRC_ROOT/configure</tt><br/>
-    This will ensure that the <tt>projects/llvm-test</tt> directory is also
-    properly configured.</li>
-    <li>Use the <tt>configure</tt> script found in the <tt>llvm-test</tt> source
-    directory:<br/>
-    <tt>$LLVM_SRC_ROOT/projects/llvm-test/configure
-     --with-llvmsrc=$LLVM_SRC_ROOT --with-llvmobj=$LLVM_OBJ_ROOT</tt>
-    </li>
-  </ol>
-  <li>gmake</li>
-</ol>
-<p>Note that the second and third steps only need to be done once. After you
-have the suite checked out and configured, you don't need to do it again (unless
-the test code or configure script changes).</p>
-
-<p>To make a specialized test (use one of the
-<tt>llvm-test/TEST.&lt;type&gt;.Makefile</tt>s), just run:<br/>
-<tt>gmake TEST=&lt;type&gt; test</tt><br/>For example, you could run the
-nightly tester tests using the following commands:</p>
-
-<pre>
- % cd llvm/projects/llvm-test
- % gmake TEST=nightly test
-</pre>
-
-<p>Regardless of which test you're running, the results are printed on standard
-output and standard error.  You can redirect these results to a file if you
-choose.</p>
-
-<p>Some tests are known to fail.  Some are bugs that we have not fixed yet;
-others are features that we haven't added yet (or may never add).  In DejaGNU,
-the result for such tests will be XFAIL (eXpected FAILure).  In this way, you
-can tell the difference between an expected and unexpected failure.</p>
-
-<p>The tests in <tt>llvm-test</tt> have no such feature at this time. If the
-test passes, only warnings and other miscellaneous output will be generated.  If
-a test fails, a large &lt;program&gt; FAILED message will be displayed.  This
-will help you separate benign warnings from actual test failures.</p>
-
-</div>
-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection">
-<a name="customtest">Writing custom tests for llvm-test</a></div>
-<!-- _______________________________________________________________________ -->
-
-<div class="doc_text">
-
-<p>Assuming you can run llvm-test, (e.g. "<tt>gmake TEST=nightly report</tt>"
-should work), it is really easy to run optimizations or code generator
-components against every program in the tree, collecting statistics or running
-custom checks for correctness.  At base, this is how the nightly tester works,
-it's just one example of a general framework.</p>
-
-<p>Lets say that you have an LLVM optimization pass, and you want to see how
-many times it triggers.  First thing you should do is add an LLVM
-<a href="ProgrammersManual.html#Statistic">statistic</a> to your pass, which
-will tally counts of things you care about.</p>
-
-<p>Following this, you can set up a test and a report that collects these and
-formats them for easy viewing.  This consists of two files, an
-"<tt>llvm-test/TEST.XXX.Makefile</tt>" fragment (where XXX is the name of your
-test) and an "<tt>llvm-test/TEST.XXX.report</tt>" file that indicates how to
-format the output into a table.  There are many example reports of various
-levels of sophistication included with llvm-test, and the framework is very
-general.</p>
-
-<p>If you are interested in testing an optimization pass, check out the
-"libcalls" test as an example.  It can be run like this:<p>
-
-<div class="doc_code">
-<pre>
-% cd llvm/projects/llvm-test/MultiSource/Benchmarks  # or some other level
-% make TEST=libcalls report
-</pre>
-</div>
-
-<p>This will do a bunch of stuff, then eventually print a table like this:</p>
-
-<div class="doc_code">
-<pre>
-Name                                  | total | #exit |
-...
-FreeBench/analyzer/analyzer           | 51    | 6     | 
-FreeBench/fourinarow/fourinarow       | 1     | 1     | 
-FreeBench/neural/neural               | 19    | 9     | 
-FreeBench/pifft/pifft                 | 5     | 3     | 
-MallocBench/cfrac/cfrac               | 1     | *     | 
-MallocBench/espresso/espresso         | 52    | 12    | 
-MallocBench/gs/gs                     | 4     | *     | 
-Prolangs-C/TimberWolfMC/timberwolfmc  | 302   | *     | 
-Prolangs-C/agrep/agrep                | 33    | 12    | 
-Prolangs-C/allroots/allroots          | *     | *     | 
-Prolangs-C/assembler/assembler        | 47    | *     | 
-Prolangs-C/bison/mybison              | 74    | *     | 
-...
-</pre>
-</div>
-
-<p>This basically is grepping the -stats output and displaying it in a table.
-You can also use the "TEST=libcalls report.html" target to get the table in HTML
-form, similarly for report.csv and report.tex.</p>
-
-<p>The source for this is in llvm-test/TEST.libcalls.*.  The format is pretty
-simple: the Makefile indicates how to run the test (in this case, 
-"<tt>opt -simplify-libcalls -stats</tt>"), and the report contains one line for
-each column of the output.  The first value is the header for the column and the
-second is the regex to grep the output of the command for.  There are lots of
-example reports that can do fancy stuff.</p>
-
-</div>
-
-
-<!--=========================================================================-->
-<div class="doc_section"><a name="nightly">Running the nightly tester</a></div>
-<!--=========================================================================-->
-
-<div class="doc_text">
-
-<p>
-The <a href="http://llvm.org/testresults/">LLVM Nightly Testers</a>
-automatically check out an LLVM tree, build it, run the "nightly" 
-program test (described above), run all of the feature and regression tests, 
-delete the checked out tree, and finally submit the test results to the
-llvm nightlytest results server.  This tester is designed to ensure that 
-programs don't break as well as keep track of LLVM's progress over time.</p>
-
-<p>If you'd like to set up an instance of the nightly tester to run on your
-machine, take a look at the comments at the top of the
-<tt>utils/NightlyTest.pl</tt> file.  We usually run it from a crontab entry
-that looks like this:</p>
-
-<div class="doc_code">
-<pre>
-5 3 * * *  $HOME/llvm/utils/NightlyTest.pl -parallel $CVSROOT \
-           $HOME/buildtest $HOME/cvs/testresults
-</pre>
-</div>
-
-<p>Or, you can create a shell script to encapsulate the running of the script.
-The optimized x86 Linux nightly test is run from just such a script:</p>
-
-<div class="doc_code">
-<pre>
-#!/bin/bash
-BASE=/proj/work/llvm/nightlytest
-export CVSROOT=:pserver:anon@llvm.org:/var/cvs/llvm
-export BUILDDIR=$BASE/build 
-export WEBDIR=$BASE/testresults 
-export LLVMGCCDIR=/proj/work/llvm/cfrontend/install
-export PATH=/proj/install/bin:$LLVMGCCDIR/bin:$PATH
-export LD_LIBRARY_PATH=/proj/install/lib
-cd $BASE
-cp /proj/work/llvm/llvm/utils/NightlyTest.pl .
-nice ./NightlyTest.pl -nice -release -verbose -parallel -enable-linscan \
-   -noexternals 2&gt;&amp;1 &gt; output.log
-mail -s 'X86 nightly tester results' <a href="http://mail.cs.uiuc.edu/mailman/\
-   listinfo/llvm-testresults">llvm-testresults@cs.uiuc.edu</a> &lt; output.log
-</pre>
-</div>
-
-<p>Please examine the LLVM Nightly Tester Page and choose a nickname for your 
-machine that has that has not already been used. You can specify the 
-nickname that will appear on the Nightly Tester Page for your machine by 
-using the flag  <tt>-nickname YourNickname</tt> when you invoke 
-<tt>NightlyTest.pl</tt>.
-
-<p>Take a look at the <tt>NightlyTest.pl</tt> file to see what all of the flags
-and strings do.  If you start running the nightly tests, please let us know. 
-Thanks!</p>
-
-</div>
-
-<!-- *********************************************************************** -->
-
-<hr>
-<address>
-  <a href="http://jigsaw.w3.org/css-validator/check/referer"><img
-  src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"></a>
-  <a href="http://validator.w3.org/check/referer"><img
-  src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
-
-  John T. Criswell, Reid Spencer, and Tanya Lattner<br>
-  <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br/>
-  Last modified: $Date$
-</address>
-</body>
-</html>
diff --git a/nightly-test-server/NightlyTestAccept.php b/nightly-test-server/NightlyTestAccept.php
deleted file mode 100755
index f395f06..0000000
--- a/nightly-test-server/NightlyTestAccept.php
+++ /dev/null
@@ -1,980 +0,0 @@
-<?php
-/*******************************************************************************
- *
- * Background: Written on June 1st 2006 by Patrick Jenkins <pjenkins@apple.com>
- * to accept test results  from the llvm NightlyTest.pl script.
- * Rewritten by Jim Laskey to use php, so that we can reuse code in
- * ProgramResults.php
- *
- *******************************************************************************/
- 
-/*******************************************************************************
- *
- * Start response early for debugging purposes
- *
- *******************************************************************************/
-print "content-type: text/text\n\n";
-
-$print_debug = 0;
-$print_env = 0;
-
-
-if ($print_debug) {
-  print "Debug Printing On\n";
-}
-
-if ($print_env) {
-  foreach ($_ENV as $key => $value) {
-    print "_ENV $key => $value<br>\n";
-  }
-  
-  foreach ($_SERVER as $key => $value) {
-    print "_SERVER $key => $value<br>\n";
-  }
-  
-  foreach ($_GET as $key => $value) {
-    print "_GET $key => $value<br>\n";
-  }
-  
-  foreach ($_POST as $key => $value) {
-    print "_POST $key => $value<br>\n";
-  }
-  
-  foreach ($_COOKIE as $key => $value) {
-    print "_COOKIE $key => $value<br>\n";
-  }
-  
-  foreach ($_FILES as $key => $value) {
-  print "_FILES $key => $value<br>\n";
-  }
-  
-  // Same as _POST
-  foreach ($_REQUEST as $key => $value) {
-    print "_REQUEST $key => $value<br>\n";
-  }
-}
-
-/*******************************************************************************
- *
- * Include support code
- *
- *******************************************************************************/
-
-if(!(include "NightlyTester.php")){
-  print "Error: could not load necessary files!\n";
-  die();
-}
-
-if(!(include"ProgramResults.php")){
-  print "Error: could not load necessary files!\n";
-  die();
-}
-
-if ($print_debug) {
-  print "Support Included\n";
-}
-
-/*******************************************************************************
- *
- * Important variables
- *
- *******************************************************************************/
-$database = "nightlytestresults";
-$loginname = "llvm";
-$password = "ll2002vm";
-
-/*******************************************************************************
- *
- * Connecting to the database
- *
- *******************************************************************************/
-$mysql_link = mysql_connect("127.0.0.1", $loginname, $password) or die("Error: could not connect to database!");
-mysql_select_db($database) or die("Error: could not find \"$database\" database!");
-
-if ($print_debug) {
-  print "Database connected\n";
-}
-
-/*******************************************************************************
- *
- * Some methods to help the process
- *
- *******************************************************************************/
- 
-/*******************************************************************************
- *
- * Test if two values are equal as strings
- *
- *******************************************************************************/
-function StringEqual($value1, $value2) {
-  return strcmp("$value1", "$value2") == 0;
-}
-
-/*******************************************************************************
- *
- * Test if a value is equal to null string
- *
- *******************************************************************************/
-function StringIsNull($value) {
-  return strlen("$value") == 0;
-}
-
-/*******************************************************************************
- *
- * Opens a file handle to the specified filename, then writes the contents out,
- * and finally closes the filehandle.
- *
- *******************************************************************************/
-function WriteFile($filename, $contents) {
-  $file = fopen($filename, "w") or die("Could not open file $filename for writing");
-  fwrite($file, $contents) or die("Could not write to file $filename");
-  fclose($file);
-}
-
-/*******************************************************************************
- *
- * Queries database to see if there is a machine with the same uname as
- * the value passed in
- *
- *******************************************************************************/
-function DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version) {
-  $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND hardware=\"$hardware\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\"";
-
-  $machine_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($machine_query);
-  mysql_free_result($machine_query);
-    
-  if ($row) {
-    return true;
-  }
-
-  return false;
-}
-
-/*******************************************************************************
- *
- * mysql> describe machine;
- * +-----------+----------+------+-----+---------+----------------+
- * | Field     | Type     | Null | Key | Default | Extra          |
- * +-----------+----------+------+-----+---------+----------------+
- * | id        | int(11)  |      | PRI | NULL    | auto_increment |
- * | uname     | text     |      |     |         |                |
- * | hardware  | text     |      |     |         |                |
- * | os        | text     |      |     |         |                |
- * | name      | text     |      |     |         |                |
- * | nickname  | tinytext | YES  |     | NULL    |                |
- * | gcc       | text     | YES  |     | NULL    |                |
- * | directory | text     | YES  |     | NULL    |                |
- * +-----------+----------+------+-----+---------+----------------+
- * 8 rows in set (0.00 sec)
- *
- *
- * Creates an entry in the machine table in the database
- *
- *******************************************************************************/
-function AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, $directory) {
-  $query = "INSERT INTO machine (uname, hardware, os, name, nickname, gcc, directory) " .
-           "VALUES (\"$uname\",\"$hardware\",\"$os\",\"$name\",\"$nickname\",\"$gcc_version\",\"$directory\")";
-  $insert_query = mysql_query($query) or die(mysql_error());
-  mysql_free_result($insert_query);
-}
-
-/*******************************************************************************
- *
- * Returns the id number of the machine with the passed in uname
- *
- *******************************************************************************/
-function GetMachineId($uname, $hardware, $os, $name, $nickname, $gcc_version) {
-  $query = "SELECT * FROM machine WHERE uname=\"$uname\" AND hardware=\"$hardware\" AND nickname=\"$nickname\" AND gcc=\"$gcc_version\"";
-  $machine_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($machine_query);
-  mysql_free_result($machine_query);
-
-  if($row) {
-    return $row['id'];
-  } else {
-    return -1;
-  }
-}
-
-/*******************************************************************************
- *Since this is ugly, iv included an example call and a view of the table.
- *
- * +---------------------+------------+------+-----+---------+----------------+
- * | Field               | Type       | Null | Key | Default | Extra          |
- * +---------------------+------------+------+-----+---------+----------------+
- * | id                  | int(11)    |      | PRI | NULL    | auto_increment |
- * | machine             | text       |      |     |         |                |
- * | added               | datetime   | YES  |     | NULL    |                |
- * | buildstatus         | tinytext   | YES  |     | NULL    |                |
- * | getcvstime_cpu      | double     | YES  |     | NULL    |                |
- * | getcvstime_wall     | double     | YES  |     | NULL    |                |
- * | configuretime_cpu   | double     | YES  |     | NULL    |                |
- * | configuretime_wall  | double     | YES  |     | NULL    |                |
- * | buildtime_cpu       | double     | YES  |     | NULL    |                |
- * | buildtime_wall      | double     | YES  |     | NULL    |                |
- * | dejagnutime_cpu     | double     | YES  |     | NULL    |                |
- * | dejagnutime_wall    | double     | YES  |     | NULL    |                |
- * | warnings            | mediumtext | YES  |     | NULL    |                |
- * | warnings_added      | text       | YES  |     | NULL    |                |
- * | warnings_removed    | text       | YES  |     | NULL    |                |
- * | teststats_exppass   | int(11)    | YES  |     | NULL    |                |
- * | teststats_unexpfail | int(11)    | YES  |     | NULL    |                |
- * | teststats_expfail   | int(11)    | YES  |     | NULL    |                |
- * | all_tests           | text       | YES  |     | NULL    |                |
- * | passing_tests       | text       | YES  |     | NULL    |                |
- * | unexpfail_tests     | text       | YES  |     | NULL    |                |
- * | expfail_tests       | text       | YES  |     | NULL    |                |
- * | newly_passing_tests | text       | YES  |     | NULL    |                |
- * | newly_failing_tests | text       | YES  |     | NULL    |                |
- * | new_tests           | text       | YES  |     | NULL    |                |
- * | removed_tests       | text       | YES  |     | NULL    |                |
- * | cvs_added           | text       | YES  |     | NULL    |                |
- * | cvs_removed         | text       | YES  |     | NULL    |                |
- * | cvs_modified        | text       | YES  |     | NULL    |                |
- * | cvs_usersadd        | text       | YES  |     | NULL    |                |
- * | cvs_usersco         | text       | YES  |     | NULL    |                |
- * | a_file_size         | text       | YES  |     | NULL    |                |
- * | o_file_size         | text       | YES  |     | NULL    |                |
- * +---------------------+------------+------+-----+---------+----------------+
- *
- *
- *******************************************************************************/
-
-function CreateNight($machine_id,
-                $added,
-                $buildstatus,
-                $getcvstime_cpu,
-                $getcvstime_wall,
-                $configuretime_cpu,
-                $configuretime_wall,
-                $buildtime_cpu,
-                $buildtime_wall,
-                $dejagnutime_cpu,
-                $dejagnutime_wall,
-                $warnings,
-                $warnings_added,
-                $warnings_removed,
-                $teststats_exppass,
-                $teststats_unexpfail,
-                $teststats_expfail,
-                $all_tests,
-                $passing_tests,
-                $unexpfail_tests,
-                $expfail_tests,
-                $newly_passing_tests,
-                $newly_failing_tests,
-                $new_tests,
-                $removed_tests,
-                $cvs_added,
-                $cvs_removed,
-                $cvs_modified,
-                $cvs_usersadd,
-                $cvs_usersco,
-                $a_file_size,
-                $o_file_size) {
-  $query = "INSERT INTO night (".
-      "machine, added, buildstatus, configuretime_cpu, configuretime_wall," .
-      "getcvstime_cpu, getcvstime_wall, buildtime_cpu, buildtime_wall," .
-      "dejagnutime_cpu, dejagnutime_wall, warnings, warnings_added, warnings_removed," .
-      "teststats_exppass, teststats_unexpfail, teststats_expfail," .
-      "all_tests, passing_tests, unexpfail_tests, expfail_tests," .
-      "newly_passing_tests, newly_failing_tests, new_tests, removed_tests," .
-      "cvs_added, cvs_removed, cvs_modified, cvs_usersadd, cvs_usersco" .
-      ") VALUES (".
-      "\"$machine_id\", \"$added\", \"$buildstatus\", \"$configuretime_cpu\", \"$configuretime_wall\"," .
-      "\"$getcvstime_cpu\", \"$getcvstime_wall\", \"$buildtime_cpu\", \"$buildtime_wall\"," .
-      "\"$dejagnutime_cpu\", \"$dejagnutime_wall\", \"$warnings\", \"$warnings_added\", \"$warnings_removed\"," .
-      "\"$teststats_exppass\", \"$teststats_unexpfail\", \"$teststats_expfail\"," .
-      "\"$all_tests\", \"$passing_tests\", \"$unexpfail_tests\", \"$expfail_tests\", \"$newly_passing_tests\"," .
-      "\"$newly_failing_tests\", \"$new_tests\", \"$removed_tests\", \"$cvs_added\"," .
-      "\"$cvs_removed\", \"$cvs_modified\", \"$cvs_usersadd\", \"$cvs_usersco\"" .
-      ")";
-  $insert_query = mysql_query($query) or die(mysql_error());
-  mysql_free_result($insert_query);
-  
-  $query = "SELECT id FROM night WHERE machine=$machine_id AND added=\"$added\"";
-  $machine_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($machine_query);
-  mysql_free_result($machine_query);
-  
-  if($row) {
-    return $row['id'];
-  } else {
-    return -1;
-  }
-}
-
-/*******************************************************************************
- *******************************************************************************/
-function GetMachineNights($machine_id) {
-  $result = array();
-  $query = "SELECT * FROM night WHERE machine = \"$machine_id\"";
-  $night_query = mysql_query($query) or die(mysql_error());
-  while ($row = mysql_fetch_assoc($night_query)) {
-    array_push($result, $row['id']);
-  }
-  mysql_free_result($night_query);
-  return $result;
-}
-
-/*******************************************************************************
- *
- * mysql> describe program;
- * +---------+---------+------+-----+---------+-------+
- * | Field   | Type    | Null | Key | Default | Extra |
- * +---------+---------+------+-----+---------+-------+
- * | program | text    |      |     |         |       |
- * | result  | text    | YES  |     | NULL    |       |
- * | type    | text    | YES  |     | NULL    |       |
- * | night   | int(11) |      |     | 0       |       |
- * +---------+---------+------+-----+---------+-------+
- * 4 rows in set (0.00 sec)
- *
- *******************************************************************************/
-function AddProgram($program, $result, $type, $night) {
-  if (!StringIsNull($program)) {
-    $query = "INSERT INTO program (program, result, type, night) VALUES".
-             " (\"$program\", \"$result\", \"$type\", $night)";
-    $program_query = mysql_query($query) or die(mysql_error());
-    mysql_free_result($program_query);
-  }
-}
-
-/*******************************************************************************
- *
- * mysql> describe tests;
- * +---------+-----------------------------+------+-----+---------+-------+
- * | Field   | Type                        | Null | Key | Default | Extra |
- * +---------+-----------------------------+------+-----+---------+-------+
- * | program | tinytext                    |      |     |         |       |
- * | result  | enum('PASS','FAIL','XFAIL') |      |     | PASS    |       |
- * | measure | tinytext                    | YES  |     | NULL    |       |
- * | night   | int(11)                     | YES  |     | NULL    |       |
- * +---------+-----------------------------+------+-----+---------+-------+
- * 4 rows in set (0.00 sec)
- *
- *******************************************************************************/
-function AddTests($program, $result, $measure, $night) {
-  if (!StringIsNull($program)) {
-    $query = "INSERT INTO tests (program, result, measure, night) VALUES".
-             " (\"$program\", \"$result\", \"$measure\", $night)";
-    $program_query = mysql_query($query) or die(mysql_error());
-    mysql_free_result($program_query);
-  }
-}
-
-
-/*******************************************************************************
- *
- * mysql> describe file;
- * +-------+---------+------+-----+---------+-------+
- * | Field | Type    | Null | Key | Default | Extra |
- * +-------+---------+------+-----+---------+-------+
- * | file  | text    |      |     |         |       |
- * | size  | int(11) |      |     | 0       |       |
- * | night | int(11) |      |     | 0       |       |
- * | type  | text    | YES  |     | NULL    |       |
- * +-------+---------+------+-----+---------+-------+
- * 4 rows in set (0.00 sec)
- *
- *******************************************************************************/
-function AddFile($file, $size, $night, $type) {
-  $query = "INSERT INTO file (file, size, night, type) VALUES".
-           " (\"$file\", \"$size\", \"$night\", \"$type\")";
-  $file_query = mysql_query($query) or die(mysql_error());
-  mysql_free_result($file_query);
-}
-
-/*******************************************************************************
- *
- * mysql> describe code;
- * +-------+----------+------+-----+---------------------+-------+
- * | Field | Type     | Null | Key | Default             | Extra |
- * +-------+----------+------+-----+---------------------+-------+
- * | added | datetime |      |     | 0000-00-00 00:00:00 |       |
- * | loc   | int(11)  |      |     | 0                   |       |
- * | files | int(11)  |      |     | 0                   |       |
- * | dirs  | int(11)  |      |     | 0                   |       |
- * +-------+----------+------+-----+---------------------+-------+
- * 4 rows in set (0.00 sec)
- *
- * This function checks to see if the last entered values in the database
- * about code information are the same as our current information. If they
- * differ we will put our information into the database.
- *
- *******************************************************************************/
-function UpdateCodeInfo($date, $loc, $files, $dirs) {
-  $query = "SELECT * FROM code ORDER BY added DESC";
-  $code_query = mysql_query($query) or die(mysql_error());
-  $row = mysql_fetch_assoc($code_query);
-  mysql_free_result($code_query);
-  if ($row &&
-      ($row['loc'] != $loc ||
-       $row['files'] != $files ||
-       $row['dirs'] != $dirs)) {
-    $query = "INSERT INTO code (added, loc, files, dirs) VALUES (\"$date\", \"$loc\", \"$files\", \"$dirs\")";
-    $code_query = mysql_query($query) or die(mysql_error());
-    mysql_free_result($code_query);
-  }
-}
-
-/*******************************************************************************
- *
- * Match one substring and return string result.
- *
- *******************************************************************************/
-function MatchOne($pattern, $string, $default) {
-  $subpatterns = array();
-  if (isset($string) && preg_match($pattern, $string, $subpatterns)) {
-    return rtrim($subpatterns[1]);
-  }
-  
-  return $default;
-}
-
-/*******************************************************************************
- *
- * Match all substrings and return array result.
- *
- *******************************************************************************/
-function Match($pattern, $string) {
-  $subpatterns = array();
-  if (isset($string) && preg_match($pattern, $string, $subpatterns)) {
-    return $subpatterns;
-  }
-  
-  return array();
-}
-
-/*******************************************************************************
- *
- * ProcessProgram Test Table Logs
- *
- * The logs are start out like;
- *    Program,GCCAS,Bytecode,LLC compile,LLC-BETA compile,JIT codegen,GCC,CBE,LLC,LLC-BETA,JIT,GCC/CBE,GCC/LLC,GCC/LLC-BETA
- *    Benchmarks/CoyoteBench/almabench,0.0230,11702,0.0278,0.0211,0.0255,  15.26,  14.36,  14.40,   0.01,  16.26,1.06,1.06,-,-
- *    ...
- *
- *******************************************************************************/
-function ProcessProgramLogs($tests) {
-  $processed = array();
-  $headings = $tests[0];
-  $headings = preg_replace("/<br>/", " ", $headings);
-  $headings = split(",", $headings);
-  for ($i = 1; $i < count($tests); $i++) {
-    $results = split(",", $tests[$i]);
-    $program = $results[0];
-    $outcome = "";
-    for ($j = 1; $j < count($headings); $j++) {
-      $heading = $headings[$j];
-      $result = $results[$j];
-      $outcome .= "$heading: $result, ";
-    }
-    $processed[$program] = $outcome;
-  }
-  return $processed;
-}
- 
-/*******************************************************************************
- *
- * Setting up variables
- *
- *******************************************************************************/
-if ($print_debug) {
-  print "Reading _POST Variables\n";
-}
-
-$spliton ="\n";
-
-$machine_data = $_POST['machine_data'];
-if (!isset($machine_data)) {
-  $machine_data = "";
-}
-$MACHINE_DATA = split($spliton, $machine_data);
-
-$cvs_log = $_POST['cvs_data'];
-if (!isset($cvs_log)) {
-  $cvs_log = "";
-}
-$CVS_LOG = split($spliton, $cvs_log);
-
-$build_log = $_POST['build_data'];
-if (!isset($build_log)) {
-  $build_log = "";
-}
-$BUILD_LOG = split($spliton, $build_log);
-
-$dejagnutests_results = $_POST['dejagnutests_results'];
-if (!isset($dejagnutests_results)) {
-  $dejagnutests_results = "";
-}
-$DEJAGNUTESTS_RESULTS = split($spliton, $dejagnutests_results);
-
-$dejagnutests_log = $_POST['dejagnutests_log'];
-if (!isset($dejagnutests_log)) {
-  $dejagnutests_log = "";
-}
-$DEJAGNUTESTS_LOG = split($spliton, $dejagnutests_log);
-
-$singlesource_tests = $_POST['singlesource_programstable'];
-if (!isset($singlesource_tests)) {
-  $singlesource_tests = "";
-}
-$SINGLESOURCE_TESTS = split($spliton, $singlesource_tests);
-
-$multisource_tests = $_POST['multisource_programstable'];
-if (!isset($multisource_tests)) {
-  $multisource_tests = "";
-}
-$MULTISOURCE_TESTS = split($spliton, $multisource_tests);
-
-$external_tests = $_POST['externalsource_programstable'];
-if (!isset($external_tests)) {
-  $external_tests = "";
-}
-$EXTERNAL_TESTS = split($spliton, $external_tests);
-
-$o_file_size = $_POST['o_file_sizes']; 
-if (!isset($o_file_size)) {
-  $o_file_size = "";
-}
-$o_file_size = rtrim($o_file_size);
-$O_FILE_SIZE = split($spliton, $o_file_size);
-
-$a_file_size = $_POST['a_file_sizes']; 
-if (!isset($a_file_size)) {
-  $a_file_size = "";
-}
-$a_file_size = rtrim($a_file_size);
-$A_FILE_SIZE = split($spliton, $a_file_size);
-
-$filesincvs = $_POST['cvs_file_count'];
-$dirsincvs = $_POST['cvs_dir_count'];
-$loc = $_POST['lines_of_code'];
-$nickname = $_POST['nickname'];
-$cvscheckouttime_cpu = $_POST['cvscheckouttime_cpu'];
-$cvscheckouttime_wall = $_POST['cvscheckouttime_wall'];
-$configtime_wall = $_POST['configtime_wall'];
-$configtime_cpu = $_POST['configtime_cpu'];
-$buildtime_cpu = $_POST['buildtime_cpu'];
-$buildtime_wall = $_POST['buildtime_wall'];
-$dejagnutime_cpu = $_POST['dejagnutime_cpu'];
-$dejagnutime_wall = $_POST['dejagnutime_wall'];
-$buildwarnings = $_POST['warnings'];
-$cvsaddedfiles = $_POST['cvsaddedfiles'];
-$cvsremovedfiles = $_POST['cvsremovedfiles'];
-$cvsmodifiedfiles = $_POST['cvsmodifiedfiles'];
-$cvsusercommitlist = $_POST['cvsusercommitlist'];
-$cvsuserupdatelist = $_POST['cvsuserupdatelist'];
-$buildstatus = $_POST['buildstatus'];
-$warnings_added = $_POST['warnings_removed'];
-$warnings_removed = $_POST['warnings_added'];
-$all_tests = $_POST['all_tests'];
-$unexpfail_tests = $_POST['unexpfail_tests'];
-$passing_tests = $_POST['passing_tests'];
-$expfail_tests = $_POST['expfail_tests'];
-$newly_passing_tests = $_POST['newly_passing_tests'];
-$newly_failing_tests = $_POST['newly_failing_tests'];
-$new_tests = $_POST['new_tests'];
-$removed_tests = $_POST['removed_tests'];
-$gcc_version = $_POST['gcc_version'];            
-$warnings = $_POST['warnings'];            
-$lines_of_code = $_POST['lines_of_code'];
-
-if ($print_debug) {
-  print "Finished Reading _POST Variables\n";
-}
-
-/*******************************************************************************
- *
- * Extracting the machine information
- *
- *******************************************************************************/
-$uname    = MatchOne("/uname\:\s*(.+)/",    $MACHINE_DATA[0], "");
-$hardware = MatchOne("/hardware\:\s*(.+)/", $MACHINE_DATA[1], "");
-$os       = MatchOne("/os\:\s*(.+)/",       $MACHINE_DATA[2], "");
-$name     = MatchOne("/name\:\s*(.+)/",     $MACHINE_DATA[3], "");
-$date     = MatchOne("/date\:\s*(.+)/",     $MACHINE_DATA[4], "");
-$time     = MatchOne("/time\:\s*(.+)/",     $MACHINE_DATA[5], "");
-
-if ($print_debug) {
-  print "uname: $uname\n";
-  print "hardware: $hardware\n";
-  print "os: $os\n";
-  print "name: $name\n";
-  print "date: $date\n";
-  print "time: $time\n";
-}
-
-/*******************************************************************************
- *
- * Extracting the dejagnu test numbers
- *
- *******************************************************************************/
-
-$dejagnu_exp_passes     = MatchOne("/\# of expected passes\s*([0-9]+)/",   $dejagnutests_log, 0);
-$dejagnu_unexp_failures = MatchOne("/unexpected failures\s*([0-9]+)/",     $dejagnutests_log, 0);
-$dejagnu_exp_failures   = MatchOne("/\# of expected failures\s*([0-9]+)/", $dejagnutests_log, 0);
-
-if ($print_debug) {
-  print "dejagnu_exp_passes: $dejagnu_exp_passes\n";
-  print "dejagnu_unexp_failures: $dejagnu_unexp_failures\n";
-  print "dejagnu_exp_failures: $dejagnu_exp_failures\n";
-}
-
-/*******************************************************************************
- *
- * Processing Program Test Table Logs
- *
- *******************************************************************************/
- 
-$singlesource_processed = ProcessProgramLogs($SINGLESOURCE_TESTS);
-$multisource_processed = ProcessProgramLogs($MULTISOURCE_TESTS);
-$external_processed = ProcessProgramLogs($EXTERNAL_TESTS);
-
-if ($print_debug) {
-  $singlesource_processed_count = count($singlesource_processed);
-  $multisource_processed_count = count($multisource_processed);
-  $external_processed_count = count($external_processed);
-  print "singlesource_processed#: $singlesource_processed_count\n";
-  print "multisource_processed#: $multisource_processed_count\n";
-  print "external_processed#: $external_processed_count\n";
-}
-
-/*******************************************************************************
- *
- * creating the response
- *
- *******************************************************************************/
-if (!DoesMachineExist($uname, $hardware, $os, $name, $nickname, $gcc_version)) {
-  AddMachine($uname, $hardware, $os, $name, $nickname, $gcc_version, "test");
-}
-$machine_id = GetMachineId($uname, $hardware, $os, $name, $nickname, $gcc_version);
-
-if ($print_debug) {
-  print "machine_id: $machine_id\n";
-}
-
-/*******************************************************************************
- *
- * Submitting information to database
- *
- *******************************************************************************/
-$db_date = date("Y-m-d H:i:s");
-$blank="";
-$night_id= CreateNight($machine_id, $db_date, $buildstatus, 
-            $configtime_cpu, $configtime_wall, $cvscheckouttime_cpu,
-            $cvscheckouttime_wall, $buildtime_cpu, $buildtime_wall,
-            $dejagnutime_cpu, $dejagnutime_wall, $warnings, 
-            $warnings_added, $warnings_removed,
-            $dejagnu_exp_passes, $dejagnu_unexp_failures, $dejagnu_exp_failures,
-            $blank, $blank, $blank,       // $all_tests, $passing_tests, $unexpfail_tests, 
-            $blank, $blank, $blank,       // $expfail_tests, $TestsFixed, $TestsBroken,
-            $blank, $blank,               // $TestsAdded, $TestsRemoved,
-            $cvsaddedfiles, $cvsremovedfiles, $cvsmodifiedfiles,
-            $cvsusercommitlist, $cvsuserupdatelist);
-
-if ($print_debug) {
-  print "db_date: $db_date\n";
-  print "night_id: $night_id\n";
-}
-
-foreach ($singlesource_processed as $key => $value) {
-   AddProgram($key, $value, "singlesource", $night_id); 
-}
-
-foreach ($multisource_processed as $key => $value) {
-   AddProgram($key, $value, "multisource", $night_id); 
-}
-
-foreach ($external_processed as $key => $value) {
-   AddProgram($key, $value, "external", $night_id); 
-}
-
-if ($print_debug) {
-  print "Programs Added\n";
-}
-
-foreach ($O_FILE_SIZE as $info) {
-  list($ignore, $size, $file, $type) = Match("/(.+)\s+(.+)\s+(.+)/", $info);
-  AddFile($file, $size, $night_id, $type);
-}
-
-if ($print_debug) {
-  $O_FILE_SIZE_COUNT = count($O_FILE_SIZE);
-  print "o file sizes#: $O_FILE_SIZE_COUNT\n";
-}
-
-foreach ($A_FILE_SIZE as $info) {
-  list($ignore, $size, $file, $type) = Match("/(.+)\s+(.+)\s+(.+)/", $info);
-  AddFile($file, $size, $night_id, $type);
-}
-
-if ($print_debug) {
-  $A_FILE_SIZE_COUNT = count($A_FILE_SIZE);
-  print "a file sizes#: $A_FILE_SIZE_COUNT\n";
-}
-
-/*******************************************************************************
- *
- * Adding test results pass/fail/xfail status to database
- *
- *******************************************************************************/
-$ALL_TESTS = split("\n", $all_tests);
-foreach ($ALL_TESTS as $info) {
-  $subpatterns = array();
-  if (preg_match("/(TEST-)?(XPASS|PASS|XFAIL|FAIL):\s(.+?)\s(.+)/", $info, $subpatterns)) {
-    list($ignore1, $ignore2, $result, $measure, $program) = $subpatterns;
-    AddTests($program, $result, $measure, $night_id);
-  }
-}
-
-if ($print_debug) {
-  print "Program Tests Added\n";
-}
-
-foreach ($DEJAGNUTESTS_RESULTS as $info) {
-  $subpatterns = array();
-  if (preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns)) {
-    list($ignore, $result, $program) = $subpatterns;
-    AddTests($program, $result, "dejagnu", $night_id);
-  }
-}
-
-if ($print_debug) {
-  print "Dejagnu Test Results Added\n";
-}
-
-/*******************************************************************************
- *
- * Adding lines of code to the database
- *
- *******************************************************************************/
-if(StringEqual($buildstatus, "OK")) {
-  // only update loc if successful build
-  UpdateCodeInfo($db_date, $loc, $filesincvs, $dirsincvs);
-}
-
-print "received ${_SERVER['CONTENT_LENGTH']} bytes\n";
-         
-$nights = GetMachineNights($machine_id);
-$length = count($nights);
-print "DB date : $db_date\n";
-print "Machine $machine_id now has ids [$nights]{$length} ".
-      "associated with it in the database\n";
-
-/*******************************************************************************
- *
- * building hash of arrays of signifigant changes to place into the nightly
- * test results email. This is ugly code and is somewhat of a hack. However, it
- * adds very useful information to the nightly test email.
- *
- *******************************************************************************/
-$query = "SELECT id FROM night WHERE id<$night_id AND machine=$machine_id AND ".
-         "buildstatus=\"OK\" ORDER BY id DESC";
-$night_query = mysql_query($query) or die(mysql_error());
-$row = mysql_fetch_assoc($night_query);
-$prev_night = $row['id'];
-if (!isset($prev_night)) {
-  $prev_night = $night_id;
-}
-mysql_free_result($night_query);
-
-if ($print_debug) {
-  print "prev_night: $prev_night\n";
-}
-
-$query = "SELECT * FROM program WHERE night=$night_id";
-$program_query = mysql_query($query) or die(mysql_error());
-
-$prog_hash_new = array();
-while ($row = mysql_fetch_assoc($program_query)) {
-  $program = $row['type']."/".$row['program'];
-  $result = $row['result'];
-  $prog_hash_new[$program] = $result;
-}
-mysql_free_result($program_query);
-
-if ($print_debug) {
-  print "Gathered all tonight\'s programs\n";
-}
-
-$query = "SELECT * FROM program WHERE night=$prev_night";
-$program_query = mysql_query($query) or die(mysql_error());
-
-$prog_hash_old = array();
-while ($row = mysql_fetch_assoc($program_query)) {
-  $program = $row['type']."/".$row['program'];
-  $result = $row['result'];
-  $prog_hash_old[$program] = $result;
-}
-mysql_free_result($program_query);
-
-if ($print_debug) {
-  print "Gathered all previous night\'s programs\n";
-}
-
-$monitoring = array("Bytecode", "CBE", "GCCAS", "JIT", "LLC", "LLC-BETA", "LLC compile", "LLC-BETA compile");
-$output_big_changes = array();
-foreach ($prog_hash_new as $prog => $prog_new) {
-  $prog_old = $prog_hash_old[$prog];
-    
-  // get data from server
-  $vals_new = split(", ", $prog_new);
-  $vals_old = split(", ", $prog_old);
-  
-  // get list of values measured from newest test
-  $new_measures = array();
-  foreach ($vals_new as $measure) {
-    list($measure, $value) = split(": ", $measure);
-    $new_measures[$measure] = $value;
-  }
-  
-  // get list of values measured from older test
-  $old_measures = array();
-  foreach ($vals_old as $measure) {
-    list($measure, $value) = split(": ", $measure);
-    $old_measures[$measure] = $value;
-  }
-
-  // put measures into hash of arrays
-  foreach ($monitoring as $measure) {
-    $value_new = MatchOne("/(\d+\.?\d*)/", $new_measures[$measure], "");
-    $value_old = MatchOne("/(\d+\.?\d*)/", $old_measures[$measure], "");
-    
-    if (StringIsNull($value_new) || StringIsNull($value_old)) continue;
-    
-    $diff = ($value_old - $value_new);
-    $perc = 0;
-    
-    if ($value_old != 0 && ($diff > 0.2 || $diff < -0.2) ) {
-      $perc = ($diff / $value_old) * 100;
-    }
-    
-    if ($perc > 5 || $perc < -5) {
-      $changes = $output_big_changes[$measure];
-      
-      if (!isset($changes)) {
-        $changes = array();
-      }
-      
-      $rounded_perc = sprintf("%1.2f", $perc);
-      array_push($changes, "$prog: $rounded_perc% ($value_old => $value_new)\n");
-      $output_big_changes[$measure] = $changes;
-    }
-  }
-}
-
-if ($print_debug) {
-  print "Determined measures\n";
-}
-
-/*******************************************************************************
- *
- * Determining changes in new tests and old tests
- *
- *******************************************************************************/
- 
-$removed = getRemovedTests($night_id, $prev_night);
-$added = getNewTests($night_id, $prev_night);
-$passing = getFixedTests($night_id, $prev_night);
-$failing = getBrokenTests($night_id, $prev_night);
-
-if ($print_debug) {
-  print "Determined changes in new tests and old tests\n";
-}
-
-/*******************************************************************************
- *
- * Encode date for file name use
- *
- *******************************************************************************/
- 
-$db_date = preg_replace("/ /", "_", $db_date);
-
-/*******************************************************************************
- *
- * Sending email to nightly test email archive
- *
- *******************************************************************************/
-$link_to_page="http://llvm.org/nightlytest/test.php?machine=$machine_id&".
-              "night=$night_id";
-$email  = "$link_to_page\n";
-$email .= "Name: $name\n";
-$email .= "Nickname: $nickname\n";
-$email .= "Buildstatus: $buildstatus\n";
-
-if(StringEqual($buildstatus, "OK")) {
-  if (StringIsNull($passing)) {
-    $passing = "None";
-  } 
-  $email .= "\nNew Test Passes:\n$passing\n";
-  if (StringIsNull($failing)) {
-    $failing = "None";
-  } 
-  $email .= "\nNew Test Failures:\n$failing\n";
-  if (StringIsNull($added)) {
-    $added = "None";
-  } 
-  $email .= "\nAdded Tests:\n$added\n";
-  if (StringIsNull($removed)) {
-    $removed= "None";
-  } 
-  $email .= "\nRemoved Tests:\n$removed\n";
-
-  $email .= "\nSignificant changes in test results:\n";
-  foreach ($output_big_changes as $measure => $values) {
-    $email.= "$measure:\n";
-    foreach ($values as $value) {
-      $email.= " $value";
-    }
-  }
-}
-else{
-  $email .= "\nBuildlog available at http://llvm.org/nightlytest/".
-            "machines/$machine_id/$db_date-Build-Log.txt\n";
-}
-
-$email_addr = "llvm-testresults\@cs.uiuc.edu";
-`echo "$email" | mail -s '$nickname $hardware nightly tester results' $email_addr`;
-
-/*******************************************************************************
- *
- * writing logs to directory
- *
- *******************************************************************************/
-$cwd = getcwd();
-
-if (!file_exists('machines')) {
-  mkdir('machines', 777);
-}
-chdir("$cwd/machines");
-
-if (!file_exists("$machine_id")) {
-  mkdir("$machine_id", 777);
-}
-chdir("$cwd/machines/$machine_id");
-
-WriteFile("$db_date-Build-Log.txt", $build_log);
-
-$sentdata="";
-foreach ($_GET as $key => $value) {
-  if(strpos($value, "\n") == 0) {
-	  $sentdata .= "'$key'  =>  \"$value\",\n";
-	} else {
-	  $sentdata .= "'$key'  =>  <<EOD\n$value\nEOD\n,\n";
-	}
-}
-foreach ($_POST as $key => $value) {
-  if(strpos($value, "\n") == 0) {
-	  $sentdata .= "'$key'  =>  \"$value\",\n";
-	} else {
-	  $sentdata .= "'$key'  =>  <<EOD\n$value\nEOD\n,\n";
-	}
-}
-WriteFile("$db_date-senddata.txt", $sentdata);
-
-
-mysql_close($mysql_link);
-?>
diff --git a/nightly-test-server/NightlyTester.php b/nightly-test-server/NightlyTester.php
deleted file mode 100644
index 067d9d3..0000000
--- a/nightly-test-server/NightlyTester.php
+++ /dev/null
@@ -1,362 +0,0 @@
-<?php
-
-$meaningfull_names = array('getcvstime_wall' => 'CVS Checkout Wall Time',
-                        'getcvstime_cpu' => 'CVS Checkout CPU Time',
-                        'configuretime_cpu' => 'Configure CPU Time',
-                        'configuretime_wall' => 'Configure Wall Time',
-                        'buildtime_cpu' => 'Build CPU Time',
-                        'buildtime_wall' => 'Build Wall Time',
-                        'dejagnutime_wall' => 'Dejagnu Wall Time',
-                        'dejagnutime_cpu' => 'Dejagnu CPU Time',
-                        'teststats_exppass' => 'Expected Test Passes',
-                        'teststats_unexpfail' => 'Unexpected Test Failures',
-                        'teststats_expfail' => 'Expected Test Failures');
-
-/*****************************************************
- *
- * Purpose: Get information about a certain machine
- * Returns: A hash of a table row with the keys
- *          being the column names 
- *
- *****************************************************/
-function getMachineInfo($machine_id){
-  $query="SELECT * FROM machine WHERE id=$machine_id";
-  $machine_query = mysql_query($query) or die ("$night failed! " . mysql_error());
-  $row = mysql_fetch_array($machine_query);
-  mysql_free_result($machine_query);
-  return $row;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about all machines
- * Returns: A mysql query resource of machine table
- *          rows.
- *
- *****************************************************/
-function getMachineResource(){
-  $machine_query = mysql_query("SELECT * FROM machine ORDER BY nickname ASC") or die (mysql_error());
-  return $machine_query;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about machines that have 
- *          submitted a test in the last month
- * Returns: A mysql query resource of machine table
- *          rows.
- *
- *****************************************************/
-function getRecentMachineResource(){
-  $night_query = mysql_query("SELECT machine FROM night where DATE_SUB(NOW(), INTERVAL 14 DAY) <= added") or die (mysql_error());
-  $machines="where id=0";
-  $machine_arr = array();
-  while($row = mysql_fetch_array($night_query)){
-    if(!isset($machine_arr["{$row['machine']}"])){
-      $machine_arr["{$row['machine']}"]=1;
-      $machines.=" or id={$row['machine']}";
-    }
-  }
-  mysql_free_result($night_query);
-  $machine_query = mysql_query("SELECT * FROM machine $machines ORDER BY nickname ASC") or die (mysql_error());
-
-  return $machine_query;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about machines that have not 
- *          submitted a test in the last month
- * Returns: A mysql query resource of machine table
- *          rows.
- *
- *****************************************************/
-function getOldMachineResource(){
-  $night_query = mysql_query("SELECT machine FROM night where DATE_SUB(NOW(), INTERVAL 1 MONTH) > added") or die (mysql_error());
-  $machines="where id=0";
-  $machine_arr = array();
-  while($row = mysql_fetch_array($night_query)){
-    if(!isset($machine_arr["{$row['machine']}"])){
-      $machine_arr["{$row['machine']}"]=1;
-      $machines.=" or id={$row['machine']}";
-    }
-  }
-  mysql_free_result($night_query);
-  $machine_query = mysql_query("SELECT * FROM machine $machines ORDER BY nickname ASC") or die (mysql_error());
-
-  return $machine_query;
-}
-
-/*****************************************************
- *
- * Purpose: Get information about a certain night
- * Returns: A hash of a table row with the keys
- *          being the column names 
- *
- *****************************************************/
-function getNightInfo($night_id){
- $query="SELECT * FROM night WHERE id=$night_id";
- $today_query = mysql_query("SELECT * FROM night WHERE id=$night_id") or die ("$query failed! " . mysql_error());
- $today_row = mysql_fetch_array($today_query);
- mysql_free_result($today_query); 
- return $today_row;
-}
-
-/*****************************************************
- *
- * Purpose: Get the nights associated with a specific machine for
- *          which buildstatus is "OK"
- * Returns: A mysql query resource. Basically something you cal
- *          mysql_fetch_array on.
- *
- *****************************************************/
-function getNightsResource($machine_id, $start="2000-01-01 01:01:01", $end="2020-12-30 01:01:01", $order="DESC"){
- $query = mysql_query("SELECT * FROM night WHERE machine=$machine_id and added<=\"$end\" and added>=\"$start\" order by added $order") or die (mysql_error());
- return $query;
-}
-
-/*****************************************************
- *
- * Purpose: Get night ids and date added associated 
- *          with a specific machine for
- *          which buildstatus is "OK"
- * Returns: A mysql result
- *
- *****************************************************/
-function getNightsIDs($machine_id, $start="2000-01-01 01:01:01", $end="2020-12-30 01:01:01", $order="DESC"){
- $query = mysql_query("SELECT id, added FROM night WHERE machine=$machine_id and added<=\"$end\" and added>=\"$start\" ORDER BY added $order") or die (mysql_error());
- return $query;
-}
-
-/*****************************************************
- *
- * Purpose: Get the history of nights given a night and 
- *          specific machine 
- * Returns: A mysql query resource. Basically something you cal
- *          mysql_fetch_array on.
- *
- *****************************************************/
-function getSuccessfulNightsHistory($machine_id, $night_id, $order="DESC"){
-  $query="SELECT * FROM night WHERE machine=$machine_id and id<=$night_id and buildstatus=\"OK\" order by added $order";
-  $query = mysql_query($query) or die (mysql_error());
-  return $query;
-}
-
-
-/*****************************************************
- *
- * Purpose: Get all the tests in the last $hours hours
- * Returns: A mysql query resource.
- *
- *****************************************************/
-function getRecentTests($hours="24"){
- $result = mysql_query("select * from night where DATE_SUB(NOW(),INTERVAL $hours HOUR)<=added ORDER BY added DESC") or die (mysql_error());
- return $result;
-}
-
-/*****************************************************
- *
- * Purpose: Calculate a date in the past given a length
- *          and an origin date.
- * Returns: A string formatted as "Year-month-day H:M:S" 
- *
- *****************************************************/
-function calculateDate($time_frame="1 YEAR", $origin_date="CURDATE()"){
- if(strpos($origin_date, "CURDATE")===false){
-  $query=mysql_query("SELECT \"$origin_date\" - INTERVAL $time_frame") or die(mysql_error());
- }
- else{
-  $query=mysql_query("SELECT $origin_date - INTERVAL $time_frame") or die(mysql_error());
- }
- $row = mysql_fetch_array($query);
- mysql_free_result($query);
- $time = $row[0];
- return $time; 
-}
-
-/*****************************************************
- *
- * Purpose: get every file size reported on a specific
- * dat=y
- * Returns: An array with the key being the name of the
- * file and the value being the size of the file.
- *
- *****************************************************/
-function getAllFileSizes($night_id){
-  $select = "select * from file WHERE night=$night_id";
-  $query = mysql_query($select) or die (mysql_error());
-  $result=array();
-  while($file = mysql_fetch_array($query)){
-    $result["{$file['file']}"]=$file['size'];
-  } 
-  mysql_free_result($query);
-  return $result;
-}
-
-/*****************************************************
- *
- * Purpose: Get a list of all sizes measured on a 
- * particular machine for a specific file
- * Returns: an array with the key being the date and
- * the value being an array containing file name, size
- * night, and build type
- *
- *****************************************************/
-function get_file_history($machine_id, $file_name){
-  $nights_select = "select id, added from night WHERE machine=$machine_id ".
-                   "order by added desc";
-  $nights_query = mysql_query($nights_select) 
-       or die (mysql_error());
-  $result = array();
-  while($row = mysql_fetch_array($nights_query)){
-  $file_select = "select * from file where night={$row['id']} and ".
-          "file=\"$file_name\"";
-  $file_query = mysql_query($file_select);
-  $file_array = mysql_fetch_array($file_query);
-  if(isset($file_array['file'])){
-    $result["{$row['added']}"]=array("{$file_array['file']}",
-                                                   "{$file_array['size']}",
-                                                   "{$file_array['type']}");
-  }//end if
-  else {
-    $result["{$row['added']}"]=array("-",
-         "-",
-         "-");
-  }
-  mysql_free_result($file_query);
- }//end while
- mysql_free_result($nights_query);
- return $result;
-}
-
-/*****************************************************
- *
- * Purpose: build a comparison table for file size changes
- * Returns: An array with the key being the name of the
- * file and the value being an array with the following
- * data: [0]size of file for specified test [1] % change
- * in file size from previous test [2] % change in file size 
- * from a test >5 tests ago. If for any reason data is not
- * not available the array will contain -.
- *
- *****************************************************/
-function buildFileSizeTable($machine_id, $night_id){
-  $result=array();
-
-  //setting up the night ids
-  $select = "select id from night WHERE id<$night_id and machine=$machine_id ".
-            "and buildstatus=\"OK\" order by added desc";
-  $query = mysql_query($select) or die (mysql_error());
-  $row=mysql_fetch_array($query);
-  
-  $cur_night=$night_id;
-  $prev_night=$row['id'];
-  for($x=0; $x<4 && $row=mysql_fetch_array($query); $x++){}
-  $old_night=$row['id'];
-  mysql_free_result($query);
-  
-  if($cur_night>0) { $cur_data=getAllFileSizes($cur_night); }
-  if($prev_night>0) { $prev_data=getAllFileSizes($prev_night); }
-  if($old_night>0) { $old_data=getAllFileSizes($old_night); }
-
-  $cur_sum=0;
-  $prev_sum=0;
-  $old_sum=0;
-  $prev_diff=0;
-  $prev_delta=0;
-  $old_diff=0;
-  $old_delta=0;
-
-  foreach (array_keys($cur_data) as $file){
-    $cur_sum+=$cur_data["$file"];
-    
-    if(isset($prev_data[$file]) && isset($cur_data["$file"])) {
-      $prev_delta= ( $cur_data["$file"] - $prev_data["$file"] );
-      $prev_diff = (($cur_data["$file"] - $prev_data["$file"]) / $prev_data["$file"] ) * 100;
-      $prev_sum+=$prev_data["$file"];
-    } else {
-      $prev_diff="-";
-    }
-
-    if(isset($old_data["$file"]) && isset($cur_data["$file"])){
-      $old_delta= ( $cur_data["$file"] - $old_data["$file"] );
-      $old_diff = (($cur_data["$file"] - $old_data["$file"]) / $old_data["$file"] ) * 100;
-      $old_sum+=$old_data["$file"];
-    } else {
-      $old_diff = "-";
-    } 
-    $result["$file"]=array($cur_data["$file"], round($prev_diff,2), $prev_delta, round($old_diff,2), $old_delta);
-  }
-
-  
-  if($old_sum>0){
-    $old_delta = ($cur_sum - $old_sum);
-    $old_diff = (($cur_sum - $old_sum) / $old_sum ) * 100;
-  } else{
-    $old_diff="-";
-  }
-
-  if($prev_sum>0){
-    $prev_delta = ($cur_sum - $prev_sum);
-    $prev_diff = (($cur_sum - $prev_sum) / $prev_sum ) * 100;
-  } else{
-    $prev_diff="-";
-  }
-
-  $result["Total Sum"] = array($cur_sum, round($prev_diff,2), $prev_delta, round($old_diff,2), $old_delta);
-
-  return $result;
-}
-
-/*****************************************************
- *
- * Example uses of each function
- *
- *****************************************************/
-/*$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-$machine_id = 8;
-$file="./test/Regression/Archive/xpg4.a";
-
-$files = get_file_history($machine_id, $file);
-
-foreach (array_keys($files) as $f){
- print "$f = > {$files["$f"][0]}<br>\n";
-}
-
-$machine_info = getMachineInfo(21);
-foreach (array_keys($machine_info) as $key){
- print "$key => {$machine_info["$key"]}<br>\n";
-}
-print "<br><br><br>\n";
-
-$night_id=-1;
-$night_resource = getNightsResource($machine_info['id']);
- while($row = mysql_fetch_array($night_resource)){
- print "added => {$row['added']}<br>\n";
- $night_id=$row['id'];
-}
-mysql_free_result($night_resource);
-print "<br><br><br>\n";
-
-
-$night_info = getNightInfo($night_id);
-print "buildstatus => {$night_info['buildstatus']}<br>\n";
-print "<br><br><br>\n";
-
-$recent_resource = getRecentTests($machine_info['id']);
- while($row = mysql_fetch_array($recent_resource)){
- print "added => {$row['added']}<br>\n";
- $night_id=$row['id'];
-}
-mysql_free_result($recent_resource);
-print "<br><br><br>\n";
-
-$my_day = calculateDate("30 WEEK");
-print "today's date - 30 weeks = $my_day<br>\n";
-print "<br><br><br>\n";
-*/
-
-
-?>
diff --git a/nightly-test-server/ProgramResults.php b/nightly-test-server/ProgramResults.php
deleted file mode 100644
index e950a91..0000000
--- a/nightly-test-server/ProgramResults.php
+++ /dev/null
@@ -1,852 +0,0 @@
-<?php
-
-$DEBUG=0;
-
-if($DEBUG){
-  $mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Could not connect to server $!\n");
-  mysql_select_db("nightlytestresults");
-}
-
-/*
- * This variable is used to determine file size cutoffs for displaying
- */
-$byte_threshold=1000;
-
-/*
- * These variables are used in determining
- * how to color table cells;
- */
-$medium_number=0;
-$medium_change=5;
-$large_number=0;
-$large_change=15;
-$crazy_number=0;
-$crazy_change=30;
-$medium_increase="#FFD0D0";
-$large_increase="#FF8080";
-$crazy_increase="#FF2020";
-$medium_decrease="#CCFFCC";
-$large_decrease="#90FF90";
-$crazy_decrease="#20FF20";
-
-$category_match=array("GCCAS","Bytecode","LLC\<br\>compile",
-          "LLC-BETA\<br\>compile","JIT\<br\>codegen","GCC",
-          "CBE","LLC","LLC-BETA","JIT","GCC\/\<br\>CBE",
-          "GCC\/\<br\>LLC","GCC\/\<br\>LLC-BETA");
-$category_array=array("GCCAS","Bytecode","LLC compile","LLC\-BETA compile",
-                 "JIT codegen","GCC","CBE","LLC",
-                 "LLC\-BETA","JIT","GCC\/\s*CBE", "GCC\/\s*LLC",
-                 "GCC\/\s*LLC\-BETA","LLC\/\s*LLC\-BETA");
-$category_print_array=array("GCCAS","Bytecode","LLC compile","LLC-BETA compile",
-                 "JIT codegen","GCC","CBE","LLC",
-                 "LLC-BETA","JIT","GCC/ CBE", "GCC/ LLC",
-                 "GCC/ LLC-BETA","LLC/ LLC-BETA");
-                 
-$category_print_array_description=array("GCCAS - Time to run LLVM optimizers on the<br>".
-                    "program.",
-                        
-                    "Bytecode - The size of the bytecode for the<br>".
-                    "program.",
-                        
-                    "LLC compile - The time taken to compile with LLC<br>".
-                    "(the static backend).",
-                    
-                    "LLC-BETA compile - The time taken compile with LLC<br>".
-                    "using experimental features.",
-                        
-                    "JIT codegen - The amount of time spent in the JIT<br>".
-                    "itself, as opposed to executing the program.",
-                    
-                    "GCC - The time taken to execute the program when<br>".
-                    "compiled with GCC -O2.",
-                    
-                    "CBE - The time taken to execute the program after<br>".
-                    "compilation through the C backend, compiled with<br>".
-                    "-O2.",
-                        
-                    "LLC - The length of time the program generated by<br>".
-                    "the static backend LLC takes to execute.",
-                    
-                    "LLC-BETA - How long the program generated by the<br>".
-                    "experimental static back end takes to execute.",
-                        
-                    "JIT codegen - The amount of time spent in the JIT<br>".
-                    "itself, as opposed to executing the program.",
-                        
-                    "GCC/CBE - The speed-up of the CBE output vs the<br>".
-                    "native GCC output: greater than 1 is a speedup,<br>".
-                    "less than 1 is a slowdown.",
-                    
-                    "GCC/LLC - The speed-up of the LLC output vs the<br>".
-                    "native GCC output: greater than 1 is a speedup,<br>".
-                    "less than 1 is a slowdown.",
-                    
-                    "GCC/ LLC-BETA - The speed-up of the LLC output<br>".
-                    "vs the native GCC output: greater than 1 is a<br>".
-                    "speedup, less than 1 is a slowdown.",
-                    
-                    "LLC/ LLC-BETA - The speed-up of the LLC output<br>".
-                    "vs the LLV-BETA output: greater than 1 is a <br>".
-                    "speedup, less than 1 is a slowdown.");
-                 
-$category_print_array_ordered=array("CBE","LLC","JIT","GCCAS",
-    "Bytecode","LLC compile","LLC-BETA compile",
-                "JIT codegen", "LLC-BETA");
-                
-$category_print_array_ordered_description=array("CBE - The time taken to execute the program after<br>".
-                        "compilation through the C backend, compiled with<br>".
-                        "-O2.",
-                        
-                        "LLC - The length of time the program generated by<br>".
-                        "the static backend LLC takes to execute.",
-                        
-                        "JIT - The amount of time spent running the program<br>".
-                        "with the JIT; this includes the code generation<br>".
-                        "phase and actually running the program.",
-                        
-                        "GCCAS - Time to run LLVM optimizers on the<br>".
-                        "program.",
-                        
-                        "Bytecode - The size of the bytecode for the<br>".
-                        "program.",
-                        
-                        "LLC compile - The time taken to compile with LLC<br>".
-                        "(the static backend).",
-                        
-                        "LLC-BETA compile - The time taken compile with LLC<br>".
-                        "using experimental features.",
-                        
-                        "JIT codegen - The amount of time spent in the JIT<br>".
-                        "itself, as opposed to executing the program.",
-                        
-                        "LLC-BETA - How long the program generated by the<br>".
-                        "experimental static back end takes to execute.");    
-
-
-/*
- * Returns an array that contains the name of the program as the 
- * index and an array as the element of the array. The first element
- * in the second array will be either "multisource", "singlesource", or
- * "extenal." 
- *
- */
-function GetDayResults($night_id, $array_of_measures ){
-  $result=array();
-  $query = "SELECT program, type, result FROM program WHERE night=$night_id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while($row = mysql_fetch_assoc($program_query)){
-    $program = rtrim($row['program'], ": ");
-    $result[$program] = array();
-    array_push($result[$program], "{$row['type']}");
-    $index=0;
-    $data = $row['result'];
-    $data = str_replace("<br>", " ", $data);
-    foreach ($array_of_measures as $x){
-      $value=array();
-      $reg_exp="/$x:\s*([[0-9\.]+|\*|\-|n\/a|\?],)/";
-      #print "{$program} => running preg_match($reg_exp, $data, $value)<br>\n";
-      preg_match($reg_exp, $data, $value);
-      if(isset($value[1])){
-        array_push($result[$program], $value[1]);
-      }
-      else{
-        array_push($result[$program], "-");  
-      }
-      $index++;
-    }//end foreach
-  }//end while
-  mysql_free_result($program_query);
-  return $result;
-}//end function GetDayResults
-
-/*
- * returns an array with the differences of each measurement
- * for each program, It will ignore differences of $min_diff
- *
- */
-function CalculateChangeBetweenDays($yesterday_results, $today_results, $min_diff=2){
-  $result=array();
-  $medium_change=0;
-  $large_change=0;
-  $crazy_change=0;
-  foreach ( array_keys($today_results) as $x){
-    $result["$x"]=array();
-    array_push($result["$x"], "{$today_results["$x"][0]}");
-    for($y=1; $y<sizeof($today_results["$x"])-3; $y++){
-      if(isset($yesterday_results["$x"][$y]) && $yesterday_results["$x"][$y]!=0){
-        $delta=0;
-        #$delta = round($today_results["$x"][$y] - $yesterday_results["$x"][$y],2);
-        $delta = $today_results["$x"][$y] - $yesterday_results["$x"][$y];
-        if(($delta > $min_diff || $delta < (-1*$min_diff)) &&
-            $today_results["$x"][$y]!=0 &&
-            $yesterday_results["$x"][$y]!=0){
-          $result["$x"][$y-1]=(($today_results["$x"][$y] - $yesterday_results["$x"][$y])/$yesterday_results["$x"][$y])*100;
-        }
-        else{
-          $result["$x"][$y-1]="n/a";
-        }
-      }
-      else{
-        $result["$x"][$y-1]="n/a";
-      }
-      if($result["$x"][$y-1]>=$GLOBALS['medium_change']){
-        $GLOBALS['medium_number']++;        
-      }
-      if($result["$x"][$y-1]>=$GLOBALS['large_change']){
-        $GLOBALS['large_number']++;
-      }
-      if($result["$x"][$y-1]>=$GLOBALS['crazy_change']){
-        $GLOBALS['crazy_number']++;
-      }
-    }//end for        
-  }//end foreach
-  return $result;
-}//end function
-
-
-function CountSignifigantDifferences($percent_difference_arr, $measure_index, $delta){
-  $result=0;
-  foreach( array_keys($percent_difference_arr) as $x ){
-    if($percent_difference_arr["$x"][$measure_index]>=$delta ||
-       $percent_difference_arr["$x"][$measure_index]<=(-1*$delta)){
-      $result++;
-    }  
-  }
-  return $result;
-}
-
-function DetermineColor($number, $def_color="white"){  
-  $result=$def_color;
-  if($number>=$GLOBALS['crazy_change']){
-    $result=$GLOBALS['crazy_increase'];
-  }
-  else if($number>=$GLOBALS['large_change']){
-    $result=$GLOBALS['large_increase'];
-  }
-  else if($number>=$GLOBALS['medium_change']){
-    $result=$GLOBALS['medium_increase'];
-  }
-  else if($number<=($GLOBALS['crazy_change']*-1)){
-    $result=$GLOBALS['crazy_decrease'];
-  }
-  else if($number<=($GLOBALS['large_change']*-1)){
-    $result=$GLOBALS['large_decrease'];
-  }
-  else if($number<=($GLOBALS['medium_change']*-1)){
-    $result=$GLOBALS['medium_decrease'];
-  }
-  return $result;
-  
-}
-
-/*
- * This will return an array which contains:
- * program name, measure, test type, % change, old value, new value 
- * The keys of the array will be the numbers 0 - size of array
- *
- */
-function getSignifigantChanges($day, $prev_day, $diff, $measure){
-  $result=array();
-  foreach(array_keys($diff) as $program){
-    for($x=0; $x<sizeof($diff["$program"]); $x++){
-      if($diff["$program"][$x]>$GLOBALS['medium_change']){
-        array_push($result, array($program, $measure[$x], $day["$program"][0], round($diff["$program"][$x],2), $prev_day["$program"][$x+1], $day["$program"][$x+1]));   
-      }
-    }//end for
-  }//end foreach
-  return $result;
-}//end function
-
-/*
- * This will return an array which contains:
- * program name, measure, test type, % change from yesterday,
- * old value, new value 
- * The keys of the array will be the numbers 0 - size of array
- *
- */
-function getTwoDaySignifigantChanges($day, $prev_day, $diff, $measure){
-  $result=array();
-  foreach(array_keys($diff) as $program){
-    for($x=0; $x<sizeof($diff["$program"]); $x++){
-      if(strcmp($diff["$program"][$x],"-")!=0 && 
-         ($diff["$program"][$x]>$GLOBALS['medium_change'] ||
-          $diff["$program"][$x]<(-1 * $GLOBALS['medium_change']))){
-        array_push($result, 
-             array($program, 
-               $measure[$x], 
-             $day["$program"][0], 
-             round($diff["$program"][$x],2), 
-             "n/a", 
-             $prev_day["$program"][$x+1], 
-                         $day["$program"][$x+1]));   
-      }
-    }//end for
-  }//end foreach
-  return $result;
-}//end function
-
-/*
- * This will return an array which contains:
- * program name, measure, test type, % change from yesterday,
- * % change from two days ago , old value, new value 
- * The keys of the array will be the numbers 0 - size of array
- *
- */
-function getThreeDaySignifigantChanges($day, $prev_day, $old_day, $diff, $twoday_diff, $measure){
-  $result=array();
-  foreach(array_keys($diff) as $program){
-    for($x=0; $x<sizeof($diff["$program"]); $x++){
-      if(strcmp($diff["$program"][$x],"-")!=0 && 
-         ($diff["$program"][$x]>$GLOBALS['medium_change'] ||
-          $diff["$program"][$x]<(-1 * $GLOBALS['medium_change']))){
-        array_push($result, 
-             array($program, 
-               $measure[$x], 
-             $day["$program"][0], 
-             round($diff["$program"][$x],2), 
-             round($twoday_diff["$program"][$x],2), 
-             $prev_day["$program"][$x+1], 
-                         $day["$program"][$x+1]));   
-      }
-    }//end for
-  }//end foreach
-  return $result;
-}//end function
-
-/*
- * Reorders the signifigant changes array by the $index'd element
- * in the 2nd array
- *
- */
-function sortSignifigantChangeArray($changes, $index){
-  $temp_arr=array();
-  foreach (array_keys($changes) as $prog){
-    array_push($temp_arr, $changes["$prog"][$index]);
-  }
-  array_multisort($temp_arr, SORT_DESC, SORT_REGULAR, $changes, SORT_DESC, SORT_REGULAR);
-}
-
-
-/*
- * This function takes in a mysql link, start date, end date, 
- * machine id, an array of programs, and a measurement
- * and will return and array with the dates as 
- * keys and the data for each key
- * being an array containing (date in seconds since epoch, program[0], program[1], ... , 
- * program[n]) for all the data between the two dates
- */
-function buildResultsHistory($machine_id, $programs, $measure , $start="2000-01-01 01:01:01", $end="2020-01-01 01:01:01"){
-  $preg_measure = str_replace("/","\/", $measure);
-  $results_arr=array();
-  $query = "SELECT id, added FROM night WHERE machine=$machine_id ". 
-           "AND added >= \"$start\" AND added <= \"$end\" ORDER BY added DESC";
-  $night_table_query = mysql_query($query ) or die(mysql_error());
-  $night_arr=array();
-  $night_query="(";
-  while($row = mysql_fetch_assoc($night_table_query)){
-          $night_arr["{$row['id']}"]=$row['added'];
-    $results_arr["{$row['added']}"]=array();
-    preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", "{$row['added']}", $pjs);
-                $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-    array_push($results_arr["{$row['added']}"], $seconds);
-    $night_query.=" night={$row['id']} or";
-  }
-  $night_query.=" night=0 )";
-  mysql_free_result($night_table_query);
-
-  $RELEVANT_DATA=0; //will be 0 if all data is null, else will be 1
-  $prog_index=1;
-  foreach ($programs as $prog){
-    $prog=str_replace(" ", "+", $prog);
-    $query="SELECT night, result FROM program WHERE program=\"$prog\" ".
-           "AND $night_query ORDER BY night ASC";
-    $night_table_query=mysql_query($query) or die(mysql_error());
-    while($row=mysql_fetch_assoc($night_table_query)){
-      $row['result'] = str_replace("<br>", " ", "{$row['result']}");
-      $night_id=$row['night'];
-      $data="-";
-      $regexp = "/$preg_measure:\s*([0-9\.]+|\?)/";
-      preg_match($regexp, "{$row['result']}", $ans);
-      if(isset($ans[1])){
-        $data=$ans[1];
-        $RELEVANT_DATA++;
-      }//end if isset
-      $results_arr["{$night_arr["$night_id"]}"]["$prog_index"]=$data;
-    }//end while
-    mysql_free_result($night_table_query);
-    $prog_index++;
-  }//end foreach $programs
-
-  if($RELEVANT_DATA>0){
-    return $results_arr;
-  }
-  else{
-    return array();
-  }
-}
-
-/*
- * Return reasons why a llvm test failed as an array.
- */
-function getFailReasonsAsList($test_result) {
-  $result = array();
-  $phases = split(", ", $test_result);
-  
-  for ($i = 0; $i < count($phases); $i++) {
-    $phase = $phases[$i];
-    if (strpos($phase, "*") !== false) {
-      list($tool, $tool_result) = split(": ", $phase);
-      array_push($result, $tool);
-    }
-  }
-  
-  return $result;
-}
-
-/*
- * Return reasons why a llvm test failed as a string.
- */
-function FailReasonsAsString($reasons) {
-  if (count($reasons) != 0) {
-    $result = " [";
-    for ($i = 0; $i < count($reasons); $i++) {
-      if ($i != 0) {
-        $result .= ", ";
-      }
-      $result .= $reasons[$i];
-    }
-    
-    $result .= "] ";
-  }
-  
-  return $result;
-}
-
-/*
- * Trim test path to exclude redundant info.
- */
-function trimTestPath($program) {
-  list($head, $tail) = split("/llvm/test/", $program);
-  if (isset($tail)) {
-    $program = "test/" . $tail;
-  }
-  return rtrim($program, ": ");;
-}
- 
- 
-/*
- * Get failing tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getFailures($night_id) {
-  $result="";
-  if ($night_id >= 684) {
-    $query = "SELECT program FROM tests WHERE night=$night_id AND result=\"FAIL\" ORDER BY program ASC";
-    $program_query = mysql_query($query) or die (mysql_error());
-    while($row = mysql_fetch_assoc($program_query)) {
-      $program = trimTestPath($row['program']);
-      $result .= $program . "\n";
-    }
-    mysql_free_result($program_query);
-
-    $query = "SELECT program, result FROM program WHERE night=$night_id ORDER BY program ASC";
-    $program_query = mysql_query($query) or die (mysql_error());
-    while($row = mysql_fetch_assoc($program_query)) {
-      $test_result = $row['result'];
-      if (!isTestPass($test_result)) {
-        $program = trimTestPath($row['program']);
-        $reasons = FailReasonsAsString(getFailReasonsAsList($test_result));        
-        $result .= $program . $reasons . "\n";
-      }
-    }
-    mysql_free_result($program_query);
-  }
-  return $result;
-}
-
-/*
- * Get Unexpected failing tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getUnexpectedFailures($night_id){
-  $result="";
-  if($night_id<684){
-    $query = "SELECT unexpfail_tests FROM night WHERE id = $night_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result= $row['unexpfail_tests'];
-    mysql_free_result($program_query);
-  }
-  else{
-    $query = "SELECT program FROM tests WHERE night=$night_id AND result=\"FAIL\"";
-    $program_query = mysql_query($query) or die (mysql_error());
-    while($row = mysql_fetch_assoc($program_query)){
-      $program = trimTestPath($row['program']);
-      $result .= $program . "\n";
-    }
-    mysql_free_result($program_query);
-  }
-  return $result;
-}
-
-/*
- * HTMLify test results
- *
- */
-function htmlifyTestResults($result) {
-  $result = preg_replace("/\n/", "<br>\n", $result);
-  $result = preg_replace("/\[/", "<font color=\"grey\">[", $result);
-  $result = preg_replace("/\]/", "]</font>", $result);
-  return $result;
- }
-
-/*
- * Get set of tests
- *
- * Returns a hash of tests for a given night.
- */
-function getTestSet($id, $table){
-  $test_hash = array();
-  $query = "SELECT program, result FROM $table WHERE night=$id";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $test_hash[$program] = $row['result'];
-  }
-  mysql_free_result($program_query);
-  return $test_hash;
-}
-
-/*
- * Get list of excluded tests
- *
- * Returns a list of tests for a given night that were excluded from the
- * hash.
- */
-function getExcludedTests($id, $table, $test_hash){
-  $result = "";
-  $query = "SELECT program FROM $table WHERE night=$id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    if (!isset($test_hash[$program])) {
-      $result .= $program . "\n";
-    }
-  }
-  mysql_free_result($program_query);
-  return $result;
-}
-
-/*
- * Get New Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getNewTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-  
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT new_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['new_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestSet($prev_id, "tests");
-    $result .= getExcludedTests($cur_id, "tests", $test_hash);
-    
-    $test_hash = getTestSet($prev_id, "program");
-    $result .= getExcludedTests($cur_id, "program", $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Get Removed Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getRemovedTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-  
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT removed_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['removed_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestSet($cur_id, "tests");
-    $result .= getExcludedTests($prev_id, "tests", $test_hash);
-    
-    $test_hash = getTestSet($cur_id, "program");
-    $result .= getExcludedTests($prev_id, "program", $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Does the test pass
- *
- * Return true if the test result indicates a pass.  For "tests" the possible
- * conditions are "PASS", "FAIL" and "XFAIL" (expected to fail.)
- */
-function isTestPass($test_result) {
-  return !(strcmp($test_result, "FAIL") == 0 || strpos($test_result, "*") !== false);
-}
-
-/*
- * Get set of tests that fail
- *
- * Returns a hash of tests that fail for a given night.
- */
-function getTestFailSet($id) {
-  $test_hash = array();
-  
-  $query = "SELECT program, result, measure FROM tests WHERE night=$id AND result=\"FAIL\" ORDER BY program ASC, measure ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $measure = strtoupper($row['measure']);
-    $key = "$program [$measure]";
-    $test_hash[$key] = true;
-  }
-  mysql_free_result($program_query);
-  
-  $query = "SELECT program, result FROM program WHERE night=$id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $test_result = $row['result'];
-    $reasons = getFailReasonsAsList($test_result);
-    
-    if (count($reasons) != 0) {
-      $test_hash[$program] = $reasons;
-    }
-  }
-  mysql_free_result($program_query);
-  
-  return $test_hash;
-}
-
-/*
- * Get list of newly passing tests
- *
- * Returns a list of tests for a given night that were included in the
- * hash and now pass.
- */
-function getPassingTests($id, $test_hash) {
-  $passing = "";
-  $query = "SELECT program, result, measure FROM tests WHERE night=$id AND result<>\"FAIL\" ORDER BY program ASC, measure ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while ($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $measure = strtoupper($row['measure']);
-    $key = "$program [$measure]";
-    if (isset($test_hash[$key])) {
-      $passing .= "$key\n";
-    }
-  }
-  mysql_free_result($program_query);
-
-  $query = "SELECT program, result FROM program WHERE night=$id ORDER BY program ASC";
-  $program_query = mysql_query($query) or die (mysql_error());
-  while($row = mysql_fetch_assoc($program_query)) {
-    $program = trimTestPath($row['program']);
-    $test_result = $row['result'];
-    $new_reasons = getFailReasonsAsList($test_result);
-    $old_reasons = isset($test_hash[$program]) ? $test_hash[$program] : array();
-    $diff_reasons = array_diff($old_reasons, $new_reasons);
-
-    if (count($diff_reasons) > 0) {
-      $passing .= $program . FailReasonsAsString($diff_reasons) . "\n";   
-    }
-  }
-  mysql_free_result($program_query);
-
-  return $passing;
-}
-
-/*
- * Get Fixed Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test 
- * in their own table as opposed in the night table.
- */
-function getFixedTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-  
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT newly_passing_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['newly_passing_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestFailSet($prev_id);
-    $result .= getPassingTests($cur_id, $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Get Broken Tests
- *
- * This is somewhat of a hack because from night 684 forward we now store the test
- * in their own table as opposed in the night table.
- */
-function getBrokenTests($cur_id, $prev_id){
-  if (strlen($prev_id) === 0 || strlen($cur_id) === 0) {
-    return "";
-  }
-
-  $result="";
-  if($cur_id<684){
-    $query = "SELECT newly_failing_tests FROM night WHERE id = $cur_id";
-    $program_query = mysql_query($query) or die (mysql_error());
-    $row = mysql_fetch_assoc($program_query);
-    $result = $row['newly_failing_tests'];
-    mysql_free_result($program_query);
-  } else {
-    $test_hash = getTestFailSet($cur_id);
-    $result .= getPassingTests($prev_id, $test_hash);
-  }
-  return $result;
-}
-
-/*
- * Get previous working night
- *
- * Returns the night id for the machine of the night passed in
- * where build status = OK
- */
-function getPreviousWorkingNight($night_id ){
-  $query = "SELECT machine FROM night WHERE id=$night_id";
-  $program_query = mysql_query($query) or die (mysql_error());
-  $row = mysql_fetch_assoc($program_query);
-  $this_machine_id=$row['machine'];
-  mysql_free_result($program_query);
-  
-  $query = "SELECT id FROM night WHERE machine=$this_machine_id ".
-           "and id<$night_id and buildstatus=\"OK\" order by added desc";
-  $program_query = mysql_query($query) or die (mysql_error());
-  $row = mysql_fetch_assoc($program_query);
-  $prev_id=$row['id'];
-  mysql_free_result($program_query);
-
-  return $prev_id;
-}
-
-/*
- * Email report.
- *
- */
-function getEmailReport($cur_id, $prev_id) {
-  $passing = getFixedTests($cur_id, $prev_id);
-  $failing = getBrokenTests($cur_id, $prev_id);
-  $added = getNewTests($cur_id, $prev_id);
-  $removed = getRemovedTests($cur_id, $prev_id);
-  
-  $email = "";
-  if (strcmp($passing, "") == 0) {
-    $passing = "None";
-  } 
-  $email .= "\nNew Test Passes:\n$passing\n";
-  if (strcmp($failing, "") == 0) {
-    $failing = "None";
-  } 
-  $email .= "\nNew Test Failures:\n$failing\n";
-  if (strcmp($added, "") == 0) {
-    $added = "None";
-  } 
-  $email .= "\nAdded Tests:\n$added\n";
-  if (strcmp($removed, "") == 0) {
-    $removed = "None";
-  } 
-  $email .= "\nRemoved Tests:\n$removed\n";
-  
-  return $email;
-}
-
-
-/*$programs=array("Benchmarks/CoyoteBench/huffbench","Benchmarks/CoyoteBench/lpbench");
-$history = buildResultsHistory(18, $programs,"GCCAS" );
-foreach (array_keys($history) as $date){
-  print "$date => ";
-  foreach($history["$date"] as $data){
-    print "$data, ";
-  }
-  print "<br>\n";
-}*/
-
-if($DEBUG){
-  $today_results = GetDayResults(565, $category_array );
-  $yesterday_results = GetDayResults(564, $category_array );
-  $oldday_results = GetDayResults(563, $category_array );
-  $percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results, .2);
-  $twoday_difference = CalculateChangeBetweenDays($oldday_results, $today_results, .01);
-  $count = CountSignifigantDifferences($percent_difference, 1, 25);
-  $big_changes = getThreeDaySignifigantChanges($today_results, $yesterday_results, $oldday_results, $percent_difference, $twoday_difference, $category_print_array);
-}
-
-/*foreach ( array_keys($big_changes) as $x){
-  print "$x => ";
-  foreach ($big_changes["$x"] as $y){
-    print "$y, ";
-  }
-  print "<br>\n";
-}*/
-
-/*foreach ( array_keys($percent_difference) as $x){
-  print "$x => ";
-  foreach ($percent_difference["$x"] as $y){
-    print "$y, ";
-  }
-  print "<br>\n";
-}*/
-
-
-
-
-if($DEBUG){
-  print "<script type=\"text/javascript\" src=\"sorttable.js\"></script>\n";
-  print "<table class=\"sortable\" id=\"multisource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-  print "\t<tr bgcolor=#FFCC99>\n";
-  print "\t\t<th>index</th>\n";
-  print "\t\t<th>Program</th>\n";
-  print "\t\t<th>Measurement</th>\n";
-  print "\t\t<th>type</th>\n";
-  print "\t\t<th>% Change from yesterday</th>\n";
-  print "\t\t<th>% Change from two days ago</th>\n";
-  print "\t\t<th>Previous day's test value</th>\n";
-  print "\t\t<th>Current day's test value</th>\n";
-  print "\t</tr>\n";
-  print "\t<tr> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>\n";
-  foreach ( array_keys($big_changes) as $x){
-    print "\t<tr>";
-    print "<td>$x</td>";
-    foreach ($big_changes["$x"] as $y){
-      print "<td>$y</td>";
-    }
-    print "</tr>\n";
-  }
-  print "</table>";
-}
-
-
-?>
diff --git a/nightly-test-server/SQLQuery.php b/nightly-test-server/SQLQuery.php
deleted file mode 100644
index 8458e81..0000000
--- a/nightly-test-server/SQLQuery.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-$user = $_POST["User"];
-$password = $_POST["Password"];
-$queries = $_POST["Queries"];
-$was_query = isset($queries);
-if (!isset($user)) $user = "";
-if (!isset($password)) $password = "";
-if (!isset($queries)) $queries = "";
-?>
-
-<HTML>
-<HEAD>
-<STYLE TYPE="text/css">
-TD
-{
-	font-family: Arial, Helvetica, sans-serif;
-	font-size: 12px;
-}
-</STYLE>
-</HEAD>
-<BODY>
-
-<?php
-print <<<EOD
-<FORM ACTION="http://llvm.org/nightlytest/SQLQuery.php" METHOD="post" ID="MyForm">
-<TABLE>
-	<TR>
-		<TD>User:</TD> <TD><INPUT NAME="User" ID="User" TYPE="text" VALUE="$user" SIZE="30"><BR></TD>
-	</TR>
-	<TR>
-		<TD>Password:</TD> <TD><INPUT NAME="Password" ID="Password" TYPE="password" VALUE="$password" SIZE="30"><BR></TD>
-	</TR>
-	<TR>
-		<TD>Query:</TD> <TD><TEXTAREA ID="Queries" NAME="Queries" ROWS="10" COLS="100">$queries</TEXTAREA><BR></TD>
-	</TR>
-</TABLE>
-<BUTTON TYPE="submit" ID="Send" NAME="Send" VALUE="Send">Query</BUTTON><BR>
-</FORM>
-EOD;
-
-if ($was_query) {
-  $queries = split("\n", $queries);
-
-  $mysql_link = mysql_connect("127.0.0.1", $user, $password, false, CLIENT_MULTI_STATEMENTS) or die("Error: could not connect to database!\n");
-  mysql_select_db("nightlytestresults");
-  
-  foreach ($queries as $query) {
-    $query = rtrim($query);
-    if (strlen($query) == 0) continue;
-    
-    if ($my_query = mysql_query($query)) {
-      print "<TABLE>\n";
-      $heading = false;
-      
-      while ($row = mysql_fetch_assoc($my_query)) {
-        if (!$heading) {
-          print "  <TR STYLE=\"font-weight: bold;\">";
-          foreach ($row as $key => $value) {
-            print "    <TD>$key</TD>";
-          }
-          print "  </TR>\n";
-          $heading = true;
-        }
-        
-        print "  <TR>";
-        foreach ($row as $key => $value) {
-          print "    <TD>$value</TD>";
-        }
-        print "  </TR>\n";
-      }
-      
-      print "</TABLE><BR><BR><BR>\n";
-  
-      mysql_free_result($my_query);
-    } else {
-      $error = mysql_error();
-      print "<B>$error</B><BR><BR><BR>\n";
-    }
-  }
-  
-  mysql_close($mysql_link);
-}
-
-?>
-
-</BODY>
-</HTML>
-
diff --git a/nightly-test-server/common.php b/nightly-test-server/common.php
deleted file mode 100644
index 26171b0..0000000
--- a/nightly-test-server/common.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$params = $_SERVER['QUERY_STRING'];
-
-if(is_numeric($params)){
-	$query="SELECT url FROM tinyurl WHERE id=$params";
-	$resource = mysql_query($query);
-
-	if($row = mysql_fetch_array($resource)){
-		include("http://{$row['url']}");
-	}
-	else{
-		print "No such page!\n";
-	}
-	mysql_free_result($resource);
-}
-else if (strcmp($params, "")!=0){
-	$this_url = $params;	
-	$query="SELECT * FROM tinyurl WHERE url=\"$this_url\"";
-        $result = mysql_query($query);
-	if($row = mysql_fetch_array($result)){
-               header( "Location: http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?{$row['id']}" );
-               include("http://{$row['url']}");
-        }
-        else{
-		$query="INSERT INTO tinyurl (url) values (\"$this_url\")";
-		$add_url = mysql_query($query);
-		$query="SELECT * FROM tinyurl WHERE url=\"$this_url\"";
-	        $resource = mysql_query($query);
-	
-	        if($row = mysql_fetch_array($resource)){
-			header( "Location: http://{$_SERVER['SERVER_NAME']}{$_SERVER['SCRIPT_NAME']}?{$row['id']}" );
-			include("http://{$row['url']}");	
-	        }
-	        else{
-	                print "Error, could not create page!!\n";
-	        }
-	        mysql_free_result($add_url);
-		mysql_free_result($resource);
-	}
-	mysql_free_result($result);
-}
-else{
-	print "No such page!\n";
-}
-
-
-
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/drawfilesizegraph.php b/nightly-test-server/drawfilesizegraph.php
deleted file mode 100644
index eeb9e28..0000000
--- a/nightly-test-server/drawfilesizegraph.php
+++ /dev/null
@@ -1,250 +0,0 @@
-<?php
-include("jpgraph/jpgraph.php");
-include("jpgraph/jpgraph_line.php");
-include("jpgraph/jpgraph_utils.inc");
-include("jpgraph/jpgraph_date.php");
-include("NightlyTester.php");
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string , $DEBUG ){
-	if($DEBUG){
-		print "$error_string";
-	}
-	$xsize=500;
-	$ysize=300;	
-
-	
-	if(!$DEBUG){
-		$error_image = ImageCreate($xsize, $ysize);
-		$white = imagecolorallocate($error_image, 255, 255, 255);
-		$black = imagecolorallocate($error_image, 0,0,0);
-		ImageFill($error_image, 0, 0, $white);
-		imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-		imagestring($error_image, 14, 5, 5, $error_string, $black);
-		header("Content-type: image/png");
-		imagepng($error_image);
-		imagedestroy($error_image);
-	}
-	exit(0);
-}
-
-/********************************
- *
- * connecting to DB
- *
- ********************************/
-
-$mysql_link=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-if(isset($HTTP_GET_VARS['files'])){
-	$files=$HTTP_GET_VARS['files'];
-}
-else{$URL_ERROR=1;$error_msg="no value for files";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=300;}
-
-if(isset($HTTP_GET_VARS['name'])){
-	$name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-	$machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-	$end_query = "and added <= \"$end\"";
-	$start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added";
-}
-else{
-	$end = "";
-	$end_query = " ";
-	$start_query= "";
-}
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-	$start_query = "and added >= \"$start\"";
-}
-
-
-if(isset($HTTP_GET_VARS['normalize'])){
-	if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-		$NORMALIZE=1;
-	}
-	else{
-		$NORMALIZE=0;
-	}	
-}
-else{
-	$NORMALIZE=0;
-}
-
-if(isset($HTTP_GET_VARS['showdata'])){
-	if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-	}
-	else{
-		$SHOWDATA=0;
-	}	
-}
-else{
-	$SHOWDATA=0;
-}
-if(isset($HTTP_GET_VARS['showpoints'])){
-	if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-		$SHOWPOINTS=1;
-	}
-	else{
-		$SHOWPOINTS=0;
-	}	
-}
-else{
-	$SHOWPOINTS=0;
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-	printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG);
-}
-
-/********************************
- *
- * creating the graph
- *
- ********************************/
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" $name ");
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(50,10,30,110+sizeof($files)*18);
-$graph->xaxis->title->Set("");
-$graph->xaxis->title->SetMargin(80);
-$graph->yaxis->title->Set("");
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($files)*18)),'top','left');
-$graph->legend->hide(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-/********************************
- *
- * executing the query by...
- * 1.) finding all the nights associated with the provided machine
- * 2.) getting all the correct programs for that night
- *
- ********************************/
-
-$line_arr=array();
-$color_arr = array("red","blue","green","orange","black", "brown","gray");
-
-$RELEVANT_DATA=0;
-
-$index=0;
-foreach ($files as $file){
-
-  $data = get_file_history($machine_id, $file);
-
-  if($DEBUG){
-    print "get_file_history($machine_id, $file) returned...<br>\n";
-    foreach (array_keys($data) as $x){
-      print "$x {$data["$x"][0]} {$data["$x"][1]} {$data["$x"][2]}<br>\n";
-    }
-  }
-
-  $xdata=array();
-  $values=array();
-  $data_max=-1;
-	
-  foreach (array_keys($data) as $d){
-    if($data["$d"][1]>0){
-      preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $d, $pjs);
-      $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-      array_push($xdata, $seconds);
-      if($data["$d"][1] > $data_max){ $data_max=$data["$d"][1]; }
-      if($DEBUG){
-        print "adding $seconds => {$data["$d"][1]}<br>\n";
-      }
-      array_push($values, $data["$d"][1]);
-      $RELEVANT_DATA++;
-    }
-  }
- 
-  if($NORMALIZE){
-    for($i=0; $i<sizeof($values); $i++){
-      if(is_numeric($values[$i])){
-	$values[$i] = $values[$i] / $data_max;
-      }#end if
-}#end for
-}#end if
-
-			
-  $line_arr[$index] = new LinePlot($values, $xdata);
-  $line_arr[$index]->SetLegend("$file");
-  if($SHOWDATA==1){
-    $line_arr[$index]->value->Show();
-  }
-  if($SHOWPOINTS==1){
-    $line_arr[$index]->mark->SetType(MARK_UTRIANGLE);
-  }
-  $color_index=$index % sizeof($color_arr);
-  $line_arr[$index]->SetColor($color_arr[$color_index]);
-  $graph->Add($line_arr[$index]);
-  $index++;
-}#end foreach
-
-if($RELEVANT_DATA==0){
-	printErrorMsg("Error: Graph of $measure contains no data", $DEBUG);
-}
-
-if($DEBUG){
-	print "Finished!<br>$RELEVANT_DATA<br>\n";
-}
-else{	
-$graph->Stroke();		
-}
-
-?>
-
diff --git a/nightly-test-server/drawmachinegraph.php b/nightly-test-server/drawmachinegraph.php
deleted file mode 100644
index 316f82b..0000000
--- a/nightly-test-server/drawmachinegraph.php
+++ /dev/null
@@ -1,274 +0,0 @@
-<?php
-if(!(include "jpgraph/jpgraph.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph/jpgraph_line.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph/jpgraph_utils.inc")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph/jpgraph_date.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "ProgramResults.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-
-$DEBUG=0;
-
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string , $DEBUG ){
-	if($DEBUG){
-		print "$error_string";
-	}
-	$xsize=500;
-	$ysize=300;	
-
-	
-	if(!$DEBUG){
-		$error_image = ImageCreate($xsize, $ysize);
-		$white = imagecolorallocate($error_image, 255, 255, 255);
-		$black = imagecolorallocate($error_image, 0,0,0);
-		ImageFill($error_image, 0, 0, $white);
-		imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-		imagestring($error_image, 14, 5, 5, $error_string, $black);
-		header("Content-type: image/png");
-		imagepng($error_image);
-		imagedestroy($error_image);
-	}
-	exit(0);
-}
-
-/********************************
- *
- * connecting to DB
- *
- ********************************/
-
-$resultsgraphlink=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-if(isset($HTTP_GET_VARS['measure'])){
-	$measure=$HTTP_GET_VARS["measure"];
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=300;}
-
-if(isset($HTTP_GET_VARS['name'])){
-	$name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Machine Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-	$machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-	$end_query = "and added <= \"$end\"";
-	$start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added";
-}
-else{
-	$end = "";
-	$end_query = " ";
-	$start_query= "";
-}
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-	$start_query = "and added >= \"$start\"";
-}
-
-
-if(isset($HTTP_GET_VARS['normalize'])){
-	if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-		$NORMALIZE=1;
-	}
-	else{
-		$NORMALIZE=0;
-	}	
-}
-else{
-	$NORMALIZE=0;
-}
-
-if(isset($HTTP_GET_VARS['showdata'])){
-	if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-	}
-	else{
-		$SHOWDATA=0;
-	}	
-}
-else{
-	$SHOWDATA=0;
-}
-if(isset($HTTP_GET_VARS['showpoints'])){
-	if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-		$SHOWPOINTS=1;
-	}
-	else{
-		$SHOWPOINTS=0;
-	}	
-}
-else{
-	$SHOWPOINTS=0;
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-	printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG);
-}
-
-/********************************
- *
- * creating the graph
- *
- ********************************/
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" {$meaningfull_names["$name"]} ");
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(70,30,30,110+sizeof($measure)*18);
-$graph->xaxis->title->Set("");
-$graph->xaxis->title->SetMargin(80);
-$graph->yaxis->title->Set("");
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($measure)*18)),'top','left');
-$graph->legend->hide(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-/********************************
- *
- * executing the query by...
- * magic!!!
- *
- ********************************/
-$RELEVANT_DATA=0;
-$data_max=array();
-$index=0;
-$xdata=array();
-$values=array();
-foreach($measure as $m){
-	$values["$m"]=array();
-	$data_max["$m"]=-1;
-}
-
-$data_arr=array();
-$line_arr=array();
-$color_arr = array("red","blue","green","orange","black", "brown","gray");
-
-$night_table_statement = "SELECT * FROM night WHERE machine=$machine_id $start_query $end_query ORDER BY added DESC";
-if($DEBUG){
-	print "night_table_statement: $night_table_statement<br>\n";
-}
-$night_table_query = mysql_query($night_table_statement) or die(mysql_error());
-
-
-while($row = mysql_fetch_array($night_table_query)){
-	preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $row['added'], $pjs);
-        $seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-	array_push($xdata, $seconds);	
-	foreach($measure as $m){
-		if(is_numeric($row["$m"])){
-			$RELEVANT_DATA++;
-			array_push($values["$m"], (float)$row["$m"]);
-			if($DEBUG){
-				print "{$row["$m"]}<br>\n";
-			}
-			if($row["$m"]>$data_max["$m"]){
-				$data_max["$m"]=$row["$m"];
-			}#end if
-		}
-	} #end foreach	
-}#end foreach
-mysql_free_result($night_table_query);
-
-
-if($NORMALIZE){
-	foreach ($measure as $m){
-		for($i=0; $i<sizeof($values["$m"]); $i++){
-			if(is_numeric($values["$m"][$i])){
-				$values["$m"][$i]=$values["$m"][$i]/$data_max["$m"];
-			}#end if
-		}#end for
-	}# end foreach
-}#end if
-
-
-$line_arr=array();
-$index=0;
-foreach($measure as $m){
-	$line_arr[$index] = new LinePlot($values["$m"], $xdata);
-	$line_arr[$index]->SetLegend("{$meaningfull_names["$m"]}");
-	if($SHOWDATA==1){
-		$line_arr[$index]->value->Show();
-	}
-	if($SHOWPOINTS==1){
-		$line_arr[$index]->mark->SetType(MARK_UTRIANGLE);
-	}
-	$color_index=$index % sizeof($color_arr);
-	$line_arr[$index]->SetColor($color_arr[$color_index]);
-	$graph->Add($line_arr[$index]);
-	$index++;
-}
-
-if($RELEVANT_DATA==0){
-	printErrorMsg("Error: Graph of $measure[0] contains no data", $DEBUG);
-}
-
-if($DEBUG){
-	print "Finished!<br>$RELEVANT_DATA<br>\n";
-}
-else{	
-$graph->Stroke();		
-}
-
-?>
-
diff --git a/nightly-test-server/drawresultsgraph.php b/nightly-test-server/drawresultsgraph.php
deleted file mode 100644
index 9c6b259..0000000
--- a/nightly-test-server/drawresultsgraph.php
+++ /dev/null
@@ -1,308 +0,0 @@
-<?php
-include("jpgraph/jpgraph.php");
-include("jpgraph/jpgraph_line.php");
-include("jpgraph/jpgraph_utils.inc");
-include("jpgraph/jpgraph_date.php");
-include("ProgramResults.php");
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string , $DEBUG ){
-	if($DEBUG){
-		print "$error_string";
-	}
-	$xsize=500;
-	$ysize=300;	
-
-	
-	if(!$DEBUG){
-		$error_image = ImageCreate($xsize, $ysize);
-		$white = imagecolorallocate($error_image, 255, 255, 255);
-		$black = imagecolorallocate($error_image, 0,0,0);
-		ImageFill($error_image, 0, 0, $white);
-		imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-		imagestring($error_image, 14, 5, 5, $error_string, $black);
-		header("Content-type: image/png");
-		imagepng($error_image);
-		imagedestroy($error_image);
-	}
-	exit(0);
-}
-
-/********************************
- *
- * connecting to DB
- *
- ********************************/
-
-$resultsgraphlink=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-if(isset($HTTP_GET_VARS['measure'])){
-	$measure=$HTTP_GET_VARS["measure"];
-	$preg_measure = str_replace("/","\/", $measure);
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['program'])){
-	$program=$HTTP_GET_VARS['program'];
-}
-else{$URL_ERROR=1;$error_msg="no value for program";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=300;}
-
-if(isset($HTTP_GET_VARS['name'])){
-	$name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-	$machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-	$end_query = "and added <= \"$end\"";
-	$start_query = "and (\"$end\" - INTERVAL 6 MONTH) <= added";
-}
-else{
-	$end = "";
-	$end_query = " ";
-	$start_query= "";
-}
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-	$start_query = "and added >= \"$start\"";
-}
-
-
-if(isset($HTTP_GET_VARS['normalize'])){
-	if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-		$NORMALIZE=1;
-	}
-	else{
-		$NORMALIZE=0;
-	}	
-}
-else{
-	$NORMALIZE=0;
-}
-
-if(isset($HTTP_GET_VARS['showdata'])){
-	if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-	}
-	else{
-		$SHOWDATA=0;
-	}	
-}
-else{
-	$SHOWDATA=0;
-}
-if(isset($HTTP_GET_VARS['showpoints'])){
-	if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-		$SHOWPOINTS=1;
-	}
-	else{
-		$SHOWPOINTS=0;
-	}	
-}
-else{
-	$SHOWPOINTS=0;
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-	printErrorMsg("URL Error: $error_msg. Could not draw graph.", $DEBUG);
-}
-
-/********************************
- *
- * creating the graph
- *
- ********************************/
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" $name ");
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(50,10,30,110+sizeof($program)*18);
-$graph->xaxis->title->Set("");
-$graph->xaxis->title->SetMargin(80);
-$graph->yaxis->title->Set("");
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetAbsPos($xsize*.2,$ysize-(40+(sizeof($program)*18)),'top','left');
-$graph->legend->hide(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-/********************************
- *
- * executing the query by...
- * 1.) finding all the nights associated with the provided machine
- * 2.) getting all the correct programs for that night
- *
- ********************************/
-
-$night_table_statement = "SELECT * FROM night WHERE machine=$machine_id ";
-if(strcmp($start_query,"")!=0){
-	$night_table_statement.=" $start_query";
-}
-if(strcmp($end,"")!=0){
-	$night_table_statement.=" $end_query";
-}
-$night_table_statement.=" ORDER BY added DESC";
-if($DEBUG){
-	print "night_table_statement: $night_table_statement<br>\n";
-}
-$night_table_query = mysql_query($night_table_statement) or die(mysql_error());
-
-$night_arr=array();
-while($row = mysql_fetch_array($night_table_query)){
-	array_push($night_arr, $row['id']);
-}
-mysql_free_result($night_table_query);
-
-$data_arr=array();
-$line_arr=array();
-$color_arr = array("red","blue","green","orange","black", "brown","gray");
-
-$RELEVANT_DATA=0;
-
-$index=0;
-foreach ($program as $prog){
-	$prog=str_replace(" ", "+", $prog);	
-	$program_table_statement="SELECT * FROM program WHERE program=\"$prog\" and (";
-	$night_id_arr= array();
-
-	foreach ($night_arr as $night){
-		$program_table_statement.=" night=$night or";
-		if($DEBUG){
-			print "adding night $night <br>\n";
-		}
-	}
-	$program_table_statement.=" night=0 ) order by night asc";
-	if($DEBUG){
-		print "$program_table_statement <br>\n";	
-	}
-	$night_table_query=mysql_query($program_table_statement) or die(mysql_error());
-
-	$xdata=array();
-	$values=array();
-
-	$data_max=-1;
-
-	$regexp = "/$preg_measure:\s*([0-9\.]+|\?)/";
-	while($row=mysql_fetch_array($night_table_query)){
-		$night_id = $row['night'];
-		$query = mysql_query("select added from night where id=$night_id") or die(mysql_error());
-		$added = mysql_fetch_array($query);
-		mysql_free_result($query);
-		preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $added['added'], $pjs);
-		
-		$seconds = mktime($pjs[4], $pjs[5], $pjs[6], $pjs[2], $pjs[3],$pjs[1]);
-		
-		if($DEBUG){
-		  print "searching for $regexp <br>\n";
-		}
-		$row['result']=str_replace("<br>", " ", "{$row['result']}");
-		preg_match($regexp, "{$row['result']}", $ans);	
-		
-		if(isset($ans[1])){
-			array_push($values, "$ans[1]");
-			if(!isset($data_arr["$added"])){
-				$data_arr["$added"]=array();
-			}
-			$RELEVANT_DATA++;
-			if($DEBUG){
-				print "{$added['added']}: $ans[1] <br>\n";	
-			}
-			if($ans[1]>$data_max){
-				$data_max=$ans[1];
-			}
-		}
-		else{
-			array_push($values, "-");
-			if($DEBUG){
-				print "{$added['added']}: - <br>\n";	
-			}
-		}
-		array_push($xdata, $seconds);
-	} #end while	
-	mysql_free_result($night_table_query);
-
-	if($NORMALIZE){
-		for($i=0; $i<sizeof($values); $i++){
-			if(is_numeric($values[$i])){
-				$values[$i]=$values[$i]/$data_max;
-			}#end if
-		}#end for
-	}#end if
-	
-
-	$line_arr[$index] = new LinePlot($values, $xdata);
-	$line_arr[$index]->SetLegend("$prog");
-	if($SHOWDATA==1){
-		$line_arr[$index]->value->Show();
-	}
-	if($SHOWPOINTS==1){
-		$line_arr[$index]->mark->SetType(MARK_UTRIANGLE);
-	}
-	$color_index=$index % sizeof($color_arr);
-	$line_arr[$index]->SetColor($color_arr[$color_index]);
-	$graph->Add($line_arr[$index]);
-	$index++;
-}#end foreach
-
-if($RELEVANT_DATA==0){
-	printErrorMsg("Error: Graph of $measure contains no data", $DEBUG);
-}
-
-if($DEBUG){
-	print "Finished!<br>$RELEVANT_DATA<br>\n";
-}
-else{	
-$graph->Stroke();		
-}
-
-?>
-
diff --git a/nightly-test-server/fulltest.php b/nightly-test-server/fulltest.php
deleted file mode 100644
index 2227b42..0000000
--- a/nightly-test-server/fulltest.php
+++ /dev/null
@@ -1,815 +0,0 @@
-<?php
-include("ProgramResults.php");
-include("NightlyTester.php");
-
-$machine_id = $HTTP_GET_VARS['machine'];
-$night_id = $HTTP_GET_VARS['night'];
-
-if(!$machine_id || !$night_id){
-  print "Error, incorrect URL for test.php!\n";
-  die();
-}
-
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-$machine_query = mysql_query("SELECT * FROM machine WHERE id=$machine_id") or die (mysql_error());
-$row = mysql_fetch_array($machine_query);
-mysql_free_result($machine_query);
-
-$today_query = getSuccessfulNightsHistory($machine_id, $night_id);
-$today_row = mysql_fetch_array($today_query);
-$yesterday_row = mysql_fetch_array($today_query);
-$oldday_row = mysql_fetch_array($today_query);
-mysql_free_result($today_query);
-$cur_date=$today_row['added'];
-
-$previous_succesful_id = getPreviousWorkingNight($night_id);
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results For <?php print $cur_date; ?></title>
-<STYLE TYPE="text/css">
-<!--
-  @import url(style.css);
--->
-</STYLE>
-
-<script type="text/javascript" src="sorttable.js"></script>
-<script type="text/javascript" src="popup.js"></script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results For <?php print $cur_date; ?></b></font></center><br>
-
-<table cellspacing=0 cellpadding=0 border=0>
-  <tr>
-    <td valign=top>
-      <? 
-      $machine = $HTTP_GET_VARS['machine'];
-      $night = $HTTP_GET_VARS['night'];
-      include 'sidebar.php'; 
-      ?>      
-    </td>
-    <td>
-<?php
-
-/*****************************************************
- *
- * Printing machine information
- *
- ******************************************************/
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "<tr>\n";
-print "<td><b>Nickname:</b></td>";
-print "<td>{$row['nickname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>uname:</b></td>";
-print "<td>{$row['uname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hardware:</b></td>";
-print "<td>{$row['hardware']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>OS:</b></td>";
-print "<td>{$row['os']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hostname:</b></td>";
-print "<td>{$row['name']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>GCC:</b></td>";
-print "<td>{$row['gcc']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Machine ID:</b></td>";
-print "<td>{$row['id']}</td>\n";
-print "</tr>\n";
-print "</table>\n<br>\n";
-
-/*****************************************************
- *
- * Printing link to build log
- *
- ******************************************************/
-$buildfile=str_replace(" ", "_", $cur_date);
-if(file_exists("machines/$machine_id/$buildfile-Build-Log.txt")){
-  print "<h4><a href=\"machines/$machine_id/$buildfile-Build-Log.txt\">".
-      "View Build Log</a></h4>\n";
-}
-
-/*****************************************************
- *
- * Printing the times table
- *
- ******************************************************/
-$previous_query = mysql_query("SELECT * FROM night WHERE \"$cur_date\" > added and machine=$machine_id ORDER BY added DESC") or die (mysql_error());
-
-if(strpos($today_row['buildstatus'], "OK")===FALSE){
-  $disp="";
-  $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('buildStatus');\", id=\"buildStatus_\">$sign Build Status</a></font>\n";
-print "<div id=\"buildStatus\" style=\"display: $disp;\" class=\"hideable\">\n";
-print "<h3><u>Build Status </u></h3></p>";
-print "<font color=red>{$today_row['buildstatus']}</font><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing changes in test suite
- *
- ******************************************************/
-$new_tests=htmlifyTestResults(getNewTests($night_id, $previous_succesful_id));
-if(strcmp($new_tests,"")===0){
-  $new_tests="None";
-}
-$removed_tests=htmlifyTestResults(getRemovedTests($night_id, $previous_succesful_id));
-if(strcmp($removed_tests,"")===0){
-  $removed_tests="None";
-}
-$newly_passing_tests=htmlifyTestResults(getFixedTests($night_id, $previous_succesful_id));
-if(strcmp($newly_passing_tests,"")===0){
-  $newly_passing_tests="None";
-}
-$newly_failing_tests=htmlifyTestResults(getBrokenTests($night_id, $previous_succesful_id));
-if(strcmp($newly_failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-
-if(strpos($new_tests, "None")!==FALSE &&
-   strpos($removed_tests, "None")!==FALSE &&
-   strpos($newly_passing_tests, "None")!==FALSE &&
-   strpos($newly_failing_tests, "None")!==FALSE ){
-  $disp="none";
-  $sign="(-)";
-}
-else{
-  $disp="";
-  $sign="(+)";
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuite');\", id=\"testSuite_\">$sign Test Suite Changes</a></font>\n";
-print "<div id=\"testSuite\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite changes:</u></h3>\n";
-print"<b>New tests:</b><br>\n";
-print "$new_tests<br><br>\n";
-print"<b>Removed tests</b><br>\n";
-print "$removed_tests<br><br>\n";
-print"<b>Newly passing tests:</b><br>\n";
-print "$newly_passing_tests<br><br>\n";
-print"<b>Newly failing tests:</b><br>\n";
-print "$newly_failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing failures in test suite
- *
- ******************************************************/
-$failing_tests=htmlifyTestResults(getFailures($night_id));
-if(strcmp($failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-$disp="none";
-$sign="(-)";
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuiteFailures');\", id=\"testSuite_\">$sign Test Suite Failures</a></font>\n";
-print "<div id=\"testSuiteFailures\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite failures:</u></h3>\n";
-print"<b>Failing tests:</b><br>\n";
-print "$failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Dejagnu result go here
- *
- ******************************************************/
-$delta_exppass = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-$delta_expfail = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-$delta_unexpfail = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-$unexpected_failures = htmlifyTestResults(getUnexpectedFailures($night_id));
-
-if($delta_exppass==0 && $delta_expfail==0 && 
-   $delta_unexpfail==0 && strcmp($unexpected_failures, "")===0){
-        $disp="none";
-        $sign="(-)";
-}
-else{
-        $disp="";
-        $sign="(+)";
-}
-
-
-if(isset($today_row['teststats_exppass'])){
-        $exp_pass=$today_row['teststats_exppass'];
-}
-else{
-        $exp_pass=0;
-}
-if(isset($today_row['teststats_unexpfail'])){
-        $unexp_fail=$today_row['teststats_unexpfail'];
-}
-else{
-        $unexp_fail=0;
-}
-if(isset($today_row['teststats_expfail'])){
-        $exp_fail=$today_row['teststats_expfail'];
-}
-else{
-        $exp_fail=0;
-
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dejagnuTests');\", id=\"deja\
-gnuTests_\">$sign Dejagnu Tests</a></font>\n";
-print "<div id=\"dejagnuTests\" style=\"display: $disp;\" class=\"hideable\">\n";
-
-print"<h3><u>Dejagnu tests:</u></h3><br>\n";
-print "<table>\n";
-print "\t<tr>\n";
-print "\t\t<td></td><td># of tests</td><td>Change from yesterday</td>\n";
-print "\t</tr>\n";
-$delta = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-print "\t\t<td>Expected Passes:</td><td align=center>$exp_pass</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-print "\t\t<td>Unexpected Failures:</td><td align=center>$unexp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-print "\t\t<td>Expected Failures:</td><td align=center>$exp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<a name=\"unexpfail_tests\"><b>Unexpected test failures:</b></a><br>\n";
-print "$unexpected_failures<br><br>\n";
-
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing warning information
- *
- ******************************************************/
-if((strpos($today_row['warnings_added'], "none")==FALSE &&
-   strpos($today_row['warnings_removed'], "none")==FALSE) &&
-   (strcmp($today_row['warnings_added'], "")!=0 &&
-   strcmp($today_row['warnings_removed'], "")!=0)){
-        $disp=" ";
-        $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('warningsChanges');\", id=\"warningsChanges_\">$sign Warning Information</a></font>\n";
-print "<div id=\"warningsChanges\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Changes to warnings during the build:</u></h3>\n";
-print"<b>New Warnings:</b><br>\n";
-print "{$today_row['warnings_added']}<br><br>\n";
-print"<b>Removed Warnings:</b><br>\n";
-print "{$today_row['warnings_removed']}<br>\n";
-print"<a name=\"warnings\"><h3><u>Warnings during the build:</u></h3></a><tt>{$today_row['warnings']}</tt><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing execution
- *
- ******************************************************/
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('executionTimes');\", id=\"executionTimes_\">(-) Execution Times</a></font>\n";
-print "<div id=\"executionTimes\" style=\"display: none;\" class=\"hideable\">\n";
-print"<h3><u>Execution times in seconds:</u></h3><br>\n";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-
-print "\t<tr>\n";
-print "\t\t<td></td>\n";
-print "\t\t<td>CVS cpu</td>\n";
-print "\t\t<td>CVS wall</td>\n";
-print "\t\t<td>Configure cpu</td>\n";
-print "\t\t<td>Configure wall</td>\n";
-print "\t\t<td>Build cpu</td>\n";
-print "\t\t<td>Build wall</td>\n";
-print "\t\t<td>Dejagnu cpu</td>\n";
-print "\t\t<td>Dejagnu wall</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "\t\t<td>$cur_date</td>\n";
-print "\t\t<td>{$today_row['getcvstime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['getcvstime_wall']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_wall']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_wall']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_wall']}</td>\n";
-print "\t</tr>\n";
-
-if( $previous_row = mysql_fetch_array($previous_query) ){
-  print "\t<tr>\n";
-  print "\t\t<td>Previous nightly test ({$previous_row['added']})</td>\n";
-  print "\t\t<td>{$previous_row['getcvstime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['getcvstime_wall']}</td>\n";
-  print "\t\t<td>{$previous_row['configuretime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['configuretime_wall']}</td>\n";
-  print "\t\t<td>{$previous_row['buildtime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['buildtime_wall']}</td>\n";
-  print "\t\t<td>{$previous_row['dejagnutime_cpu']}</td>\n";
-  print "\t\t<td>{$previous_row['dejagnutime_wall']}</td>\n";
-  print "\t</tr>\n";
-
-
-  print "\t<tr>\n";
-  print "\t\t<td>% change</td>\n";
-  
-  if($previous_row['getcvstime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_cpu'] - $previous_row['getcvstime_cpu'])/$previous_row['getcvstime_cpu']) * 100,2);  
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }  
-
-  $color="white";
-  if($previous_row['getcvstime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_wall'] - $previous_row['getcvstime_wall'])/$previous_row['getcvstime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($previous_row['configuretime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_cpu'] - $previous_row['configuretime_cpu'])/$previous_row['configuretime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-
-  if($previous_row['configuretime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_wall'] - $previous_row['configuretime_wall'])/$previous_row['configuretime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($previous_row['buildtime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_cpu'] - $previous_row['buildtime_cpu'])/$previous_row['buildtime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($previous_row['buildtime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_wall'] - $previous_row['buildtime_wall'])/$previous_row['buildtime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($previous_row['dejagnutime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_cpu'] - $previous_row['dejagnutime_cpu'])/$previous_row['dejagnutime_cpu']) * 100,2);
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($previous_row['dejagnutime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_wall'] - $previous_row['dejagnutime_wall'])/$previous_row['dejagnutime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  print "\t</tr>\n";
-}
-mysql_free_result($previous_query);
-
-print "</table>\n";
-
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing CVS information
- *
- ******************************************************/
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('CVSInformation');\", id=\"CVSInformation_\">(-) CVS information</a></font>\n";
-print "<div id=\"CVSInformation\" style=\"display: none;\" class=\"hideable\">\n";
-
-print"<h3><u>CVS information:</u></h3><br>\n";
-
-$query=mysql_query("SELECT * FROM night WHERE id=$night_id") or die (mysql_error());
-$row = mysql_fetch_array($query);
-mysql_free_result($query);
-$com_users = $row['cvs_usersadd'];
-$co_users  = $row['cvs_usersco'];
-$com_users = str_replace("\n","<br>",$com_users);
-$co_users = str_replace("\n","<br>",$co_users);
-print "<table border=1 cellspacing=0 cellpadding=0>\n";
-print "\t<tr>\n";
-print "\t\t<td>Users who commited</td><td>Users who checked out</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-print "\t\t<td valign=top>$com_users</td><td valign=top>$co_users</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<b>Added files:</b><br>\n";
-$added_files  = $row['cvs_added'];
-if(strcmp($added_files,"")!=0){
-  $added_files = str_replace("\n","<br>",$added_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$added_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Removed files:</b><br>\n";
-$removed_files  = $row['cvs_removed'];
-if(strcmp($removed_files,"")!=0){
-  $removed_files = str_replace("\n","<br>",$removed_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$removed_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Modified files:</b><br>\n";
-$modified_files  = $row['cvs_modified'];
-if(strcmp($modified_files,"")!=0){
-  $modified_files = str_replace("\n","<br>",$modified_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$modified_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing file size information
- *
- ******************************************************/
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('FileSizeInformation');\", id=\"FileSizeInformation_\">(-) File Size information</a></font>\n";
-print "<div id=\"FileSizeInformation\" style=\"display: none;\" class=\"hideable\">\n";
-
-print"<h3><u>File Size information:</u></h3><br>\n";
-
-print "<form method=GET action=\"individualfilesizegraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine_id\">\n";
-print "<input type=hidden name=night value=\"$night_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-
-$all_data=buildFileSizeTable($machine_id, $night_id);
-
-$formatted_num=number_format($all_data['Total Sum'][0],0,".",",");
-print "<b>Total size</b>: $formatted_num bytes<br>\n";
-print "<b>Percent difference from previous test</b>: {$all_data['Total Sum'][1]}<br>\n";
-print "<b>Percent difference from five tests ago</b>: {$all_data['Total Sum'][3]}<br><br>\n";
-
-print "<table class=\"sortable\" id=\"file_sizes\" border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>File</td>\n";
-print "\t\t<td>File Size in Bytes</td>\n";
-print "\t\t<td>% difference from previous test</td>\n";
-print "\t\t<td>Byte difference from previous test</td>\n";
-print "\t\t<td>% difference from five tests ago</td>\n";
-print "\t\t<td>Byte difference from five tests ago</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "\t</tr>\n";
-
-foreach (array_keys($all_data) as $d){
-  //if($all_data["$d"][1]!=0 || $all_data["$d"][3]!=0){
-    print "\t<tr>\n";
-    if(strcmp($d, "Total Sum")!=0){
-      print "\t\t<td><input type=checkbox name=files[] multiple=\"multiple\" value=\"$d\">\n";
-    }
-    else{
-      print "\t\t<td>\n";
-    }
-    print "\t\t$d</td>\n";
-    print "\t\t<td>{$all_data["$d"][0]}</td>\n";
-
-    if($all_data["$d"][1]!=0){
-      $color="bgcolor=";
-      $color.=DetermineColor($all_data["$d"][1], "\"\"");
-    }
-    else{
-      $color="";
-    }
-    print "\t\t<td $color>{$all_data["$d"][1]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][2]}</td>\n";
-
-    if($all_data["$d"][3]!=0){
-      $color="bgolor=";
-      $color.=DetermineColor($all_data["$d"][3], "white");
-    }
-    else{
-      $color="";
-    }
-    print "\t\t<td $color>{$all_data["$d"][3]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][4]}</td>\n";
-
-    print "\t</tr>\n";
-    //}
-}
-
-print "</table>\n";
-print "<input type=submit name=action value=\"Compare values\"> | ";
-print "<input type=reset>\n";
-print "</form>\n";
-
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * ending sidebar table here
- *
- ******************************************************/
-print "</td></tr></table>\n";
-
-
-/*****************************************************
- *
- * Test program statistics
- *
- ******************************************************/
-print"<h3><u>Program tests:</u></h3><br>\n";
-
-$today_results = GetDayResults($today_row['id'], $category_array);
-if(isset($yesterday_row['id'])){
-  $yesterday_results = GetDayResults($yesterday_row['id'], $category_array);
-  $percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results,.2);  
-}
-/********************** external table **********************/
-print "<form method=GET action=\"resultsgraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine_id\">\n";
-print "<input type=hidden name=night value=\"$night_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-
-print"<b>External tests:</b><br>\n";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border around the table 
-print "<table class=\"sortable\" id=\"external_tests_\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";  
-print "\t\t<th>Program</th>\n";  
-$index=0; //here to ensure we dont print %diff for GCC comparisons
-foreach ($category_print_array as $x){
-  print "\t\t<th>Today's $x</th>\n";
-  if($index<10 && isset($percent_difference)){
-    print "\t\t<th>% change in $x</th>\n";
-  }
-  $index++;
-}
-print "\t</tr>\n";  
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td></td>\n";
-$index=0;  
-foreach ($category_print_array as $x){
-  if($index<10 && isset($percent_difference)){
-    $col_width=2;
-  }
-  else{
-    $col_width=1;
-  }
-  print "\t\t<td colspan=\"$col_width\" align=center><input type=checkbox name=\"measure[]\" multiple=\"multiple\" value=\"$x\">\n";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"external_$index\" class=\"popup2\">\n";
-  print "<pre>{$category_print_array_description[$index]}</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('external_$index');\">?</a></span>\n";
-  print "</td>\n";
-  $index++;
-}
-print "\t</tr>\n";  
-$row_color=1;
-$count=0;
-foreach(array_keys($today_results) as $program){
-  if(strcmp($today_results["$program"][0],"external")==0){
-    if($row_color % 2 == 0){
-      $def_color="white";
-    }
-    else{
-      $def_color="#DDDDDD";
-    }  
-    print "\t<tr bgcolor='$def_color'>\n";    
-    print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"$program\">$program</td>\n";
-    for($y=1; $y<sizeof($today_results["$program"]); $y++){
-      print "\t\t<td>{$today_results["$program"][$y]}</td>\n";    
-      if($y<11 && isset($percent_difference)){
-        $delta=round($percent_difference["$program"][$y-1], 2);
-        $color=DetermineColor($delta, $def_color);
-        print "\t\t<td bgcolor=\"$color\">$delta</td>\n";  
-      }
-    } 
-    print "\t</tr>\n";  
-    $row_color++;
-    if($row_color > 4){
-      $row_color=1;
-    }
-    $count++;
-  }//end if strcmp
-}//end foreach
-print "</table>\n";
-print "</td></tr></table><br><br>\n"; #ending black border around table
-
-/********************** Multisource table **********************/
-
-print"<b>Multisource tests:</b><br>\n";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border around the table 
-print "<table class=\"sortable\" id=\"multisource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";  
-print "\t\t<th>Program</th>\n";  
-$index=0; //here to ensure we dont print %diff for GCC comparisons
-foreach ($category_print_array as $x){
-  print "\t\t<th>Today's $x</th>\n";
-  if($index<10 && isset($percent_difference)){
-    print "\t\t<th>% change in $x</th>\n";
-  }
-  $index++;
-}
-print "\t</tr>\n";  
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td></td>\n";
-$index=0;  
-foreach ($category_print_array as $x){
-  if($index<10 && isset($percent_difference)){
-    $col_width=2;
-  }
-  else{
-    $col_width=1;
-  }
-  print "\t\t<td colspan=\"$col_width\" align=center><input type=checkbox name=\"measure[]\" multiple=\"multiple\" value=\"$x\">\n";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"multi_$index\" class=\"popup2\">\n";
-  print "<pre>{$category_print_array_description[$index]}</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('multi_$index');\">?</a></span>\n";
-  print "</td>\n";
-  $index++;
-}
-print "\t</tr>\n";  
-$row_color=1;
-$count=0;
-foreach(array_keys($today_results) as $program){
-  if(strcmp($today_results["$program"][0],"multisource")==0){
-    if($row_color % 2 == 0){
-      $def_color="white";
-    }
-    else{
-      $def_color="#DDDDDD";
-    }  
-    print "\t<tr bgcolor='$def_color'>\n";    
-    print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"$program\">$program</td>\n";
-    for($y=1; $y<sizeof($today_results["$program"]); $y++){
-      print "\t\t<td>{$today_results["$program"][$y]}</td>\n";
-      if($y<11 && isset($percent_difference)){
-        $delta=round($percent_difference["$program"][$y-1], 2);
-        $color=DetermineColor($delta, $def_color);
-        print "\t\t<td bgcolor=\"$color\">$delta</td>\n";  
-      }
-    } 
-    print "\t</tr>\n";  
-    $row_color++;
-    if($row_color > 4){
-      $row_color=1;
-    }
-    $count++;
-  }//end if strcmp
-}//end foreach
-print "</table>\n";
-print "</td></tr></table><br><br>\n"; #ending black border around table
-
-print "<input type=submit name=action value=\"Compare values\"> | ";
-print "<input type=reset>\n";
-print "</form>\n";
-
-/********************** Singlesource table **********************/
-
-print"<b>Singlesource tests:</b><br>\n";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border around the table 
-print "<table class=\"sortable\" id=\"singlesource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";  
-print "\t\t<th>Program</th>\n";  
-$index=0; //here to ensure we dont print %diff for GCC comparisons
-foreach ($category_print_array as $x){
-  print "\t\t<th>Today's $x</th>\n";
-  if($index<10 && isset($percent_difference)){
-    print "\t\t<th>% change in $x</th>\n";
-  }
-  $index++;
-}
-print "\t</tr>\n";  
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td></td>\n";
-$index=0;  
-foreach ($category_print_array as $x){
-  if($index<10 && isset($percent_difference)){
-    $col_width=2;
-  }
-  else{
-    $col_width=1;
-  }
-  print "\t\t<td colspan=\"$col_width\" align=center><input type=checkbox name=\"measure[]\" multiple=\"multiple\" value=\"$x\">\n";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"single_$index\" class=\"popup2\">\n";
-  print "<pre>{$category_print_array_description[$index]}</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('single_$index');\">?</a></span>\n";
-  print "</td>\n";
-  $index++;
-}
-print "\t</tr>\n";  
-$row_color=1;
-$count=0;
-foreach(array_keys($today_results) as $program){
-  if(strcmp($today_results["$program"][0],"singlesource")==0){
-    if($row_color % 2 == 0){
-      $def_color="white";
-    }
-    else{
-      $def_color="#DDDDDD";
-    }  
-    print "\t<tr bgcolor='$def_color'>\n";    
-    print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"$program\">$program</td>\n";
-    for($y=1; $y<sizeof($today_results["$program"]); $y++){
-      print "\t\t<td>{$today_results["$program"][$y]}</td>\n";
-      if($y<11 && isset($percent_difference)){
-        $delta=round($percent_difference["$program"][$y-1], 2);
-        $color=DetermineColor($delta, $def_color);
-        print "\t\t<td bgcolor=\"$color\">$delta</td>\n";  
-      }
-    } 
-    print "\t</tr>\n";  
-    $row_color++;
-    if($row_color > 4){
-      $row_color=1;
-    }
-    $count++;
-  }//end if strcmp
-}//end foreach
-print "</table>\n";
-print "</td></tr></table><br><br>\n"; #ending black border around table
-
-
-
-mysql_close($mysql_link);
-?>
-
-
-
-</body>
-</html>
-
-
diff --git a/nightly-test-server/index.php b/nightly-test-server/index.php
deleted file mode 100644
index 6f016a1..0000000
--- a/nightly-test-server/index.php
+++ /dev/null
@@ -1,98 +0,0 @@
-<?php
-
-include("NightlyTester.php");
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-?>
-
-<html>
-<head><title>LLVM Nightly Test Results Homepage</title></head>
-<body>
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Homepage</b></font></center><br>
-<table cellspacing=5 cellpadding=3 border=0>
-        <tr>
-                <td valign=top>
-                        <?
-                        $machine = -1;
-                        $night = -1;
-                        include "sidebar.php";
-                        ?>
-                </td>
-                <td>
-
-<?
-print "<p align=right><a href='locgraph.php?xsize=900&ysize=600'><img src='locgraph.php'  border=0 align=center height=250 width=400 alt='Lines of code graph'></a></p>\n";
-
-/*
- * the following lists the tests in the last 24 hours
- */
-print "Tests submitted in last 24 hours:<br>";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "\t<tr bgcolor=#FFCC99>";
-        print "\t\t<td>Time submitted</td>\n";
-        print "\t\t<td>Machine name</td>\n";
-        print "\t\t<td>Build status</td>\n";
-	print "\t\t<td># of expected test passes</td>\n";
-        print "\t\t<td># of unexpected test failures</td>\n";
-        print "\t\t<td># of expected test failures</td>\n";
-	print "\t\t<td></td>\n";
-print "\t</tr>";
-
-$result = getRecentTests("24");
-$line=1;
-if(mysql_num_rows($result)==0){
-	print "\t<tr bgcolor='white'>";
-        print "\t\t<td>---";
-        print "</td>\n";
-	print "\t\t<td>---</td>\n";
-        print "\t\t<td>---</td>\n";
-	print "\t\t<td>---</td>\n";
-        print "\t\t<td>---</td>\n";
-        print "\t\t<td>---</td>\n";
-	print "\t\t<td>---</a></td>\n";
-	print "\t</tr>";
-}
-while($row = mysql_fetch_array($result)){
-	$cur_machine_id = $row['machine'];
-	$cur_night_id   = $row['id'];
-	$cur_machine_row = getMachineInfo($cur_machine_id);
-	if(strcmp($cur_machine_row['nickname'], "")!=0){$machine_name = $cur_machine_row['nickname'];}
-	else{$machine_name = $cur_machine_row['name'];}
-        
-
-	if(strpos($row['buildstatus'],"OK")===FALSE){
-                print "\t<tr bgcolor=#FFCC33>\n";
-                $build_ok=0;
-        }
-	else if($line % 2 == 0){
-		print "\t<tr bgcolor=#DDDDDD>";		
-	}
-	else{
-		print "\t<tr bgcolor='white'>";
-	}
-        print "\t\t<td>";
-		preg_match("/(\d\d:\d\d:\d\d)/", $row['added'], $time);
-                print $time[1];
-        print "</td>\n";
-	print "\t\t<td><a href=\"machine.php?machine=$cur_machine_id\">$machine_name</a></td>\n";
-        print "\t\t<td>{$row['buildstatus']}</td>\n";
-	print "\t\t<td>{$row['teststats_exppass']}</td>\n";
-        print "\t\t<td>{$row['teststats_unexpfail']}</td>\n";
-        print "\t\t<td>{$row['teststats_expfail']}</td>\n";
-	print "\t\t<td><a href=\"test.php?machine=$cur_machine_id&night=$cur_night_id\">view details</a></td>\n";
-	print "\t</tr>";
-	$line++;
-
-}//end while
-print "</table>\n";
-
-mysql_free_result($result);
-
-mysql_close($mysql_link);
-?>
-
-                </td>
-        </tr>
-</table>
-</body>
-</html>
diff --git a/nightly-test-server/individualfilesizegraph.php b/nightly-test-server/individualfilesizegraph.php
deleted file mode 100644
index 78f4947..0000000
--- a/nightly-test-server/individualfilesizegraph.php
+++ /dev/null
@@ -1,426 +0,0 @@
-<?php
-/*if(!(include "jpgraph.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_line.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_utils.inc")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_date.php")){
-        die("Error: could not load necessary files!\n");
-}*/
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string, $DEBUG=0 ){
-        if($DEBUG){
-                print "$error_string";
-        }
-        $xsize=500;
-        $ysize=300;
-
-        if(!$DEBUG){
-                $error_image = ImageCreate($xsize, $ysize);
-                $white = imagecolorallocate($error_image, 255, 255, 255);
-                $black = imagecolorallocate($error_image, 0,0,0);
-                ImageFill($error_image, 0, 0, $white);
-                imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-                imagestring($error_image, 14, 5, 5, $error_string, $black);
-                header("Content-type: image/png");
-                imagepng($error_image);
-                imagedestroy($error_image);
-        }
-        exit(0);
-}
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-if($mysql_link==FALSE){
-	$URL_ERROR=1;
-	$error_msg="Could not connect to database $!\n";
-}                        
-
-if(isset($HTTP_GET_VARS['files'])){
-        $files_arr=$HTTP_GET_VARS["files"];
-	$files_url="";
-	foreach ($files_arr as $f){
-	  $files_url.="&files[]=$f";
-	}
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-        $xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-        $ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=500;}
-
-if(isset($HTTP_GET_VARS['name'])){
-        $name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-        $machine_id=$HTTP_GET_VARS['machine'];
-	$machine=$machine_id;
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['start'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['start']}")>0){
-	        $start = $HTTP_GET_VARS['start'];
-        	$start_query = "and added >= \"$start\"";
-		$start_url = "&start=$start";
-	}
-	else{
-		print "Error: Incorrect URL!\n";
-                die();
-	}
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$start = $recent['added'];
-	mysql_free_result($result);
-
-	$start_url="&start=$start";
-        $start_query = " and added >= \"$start\"";
-}
-
-if(isset($HTTP_GET_VARS['end'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-        	$end = $HTTP_GET_VARS['end'];
-        	$end_query = "and added <= \"$end\"";
-	}
-	else{
-                print "Error: Incorrect URL!\n";
-                die();
-        }
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added DESC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$end = $recent['added'];
-	mysql_free_result($result);
-
-	$end_url = "&end=$end";
-        $end_query = " and added <= \"$end\"";
-}
-
-if(isset($HTTP_GET_VARS['normalize'])){
-        if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-                $NORMALIZE=1;
-        	$normalize_url = "&normalize=true";
-		$def_normalize="CHECKED";
-		$def_unnormalize="";
-	}
-        else{
-		$normalize_url="";
-                $NORMALIZE=0;
-		$def_normalize="";
-		$def_unnormalize="CHECKED";
-        }
-}
-else{
-        $NORMALIZE=0;
-	$normalize_url="";
-	$def_normalize="";
-	$def_unnormalize="CHECKED";
-}
-if(isset($HTTP_GET_VARS['showdata'])){
-        if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-                $showdata="&showdata=true";
-        }
-        else{
-                $SHOWDATA=0;
-                $showdata="";
-        }
-}
-else{
-	$SHOWDATA=0;
-        $showdata="";
-}
-
-if(isset($HTTP_GET_VARS['showpoints'])){
-        if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-                $SHOWPOINTS=1;
-		$showpoints="&showpoints=true";
-        }
-        else{
-		$SHOWPOINTS=0;
-                $showpoints="";
-        }
-}
-else{
-	$SHOWPOINTS=0;
-        $showpoints="";
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-        printErrorMsg("URL Error: $error_msg. Could not draw graph.");
-}
-
-/********************************
- *
- * creating the page
- *
- ********************************/
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results Machine Graph</title>
-<script language="javascript">
-function toggleLayer(whichLayer)
-{
-if (document.getElementById)
-{
-// this is the way the standards work
-var style2 = document.getElementById(whichLayer).style;
-style2.display = style2.display? "":"none";
-var link  = document.getElementById(whichLayer+"_").innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}//end if
-else if (document.all)
-{
-// this is the way old msie versions work
-var style2 = document.all[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.all[wwhichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-else if (document.layers)
-{
-// this is the way nn4 works
-var style2 = document.layers[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.layers[whichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-
-}//end function
-</script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results File Size Graph</b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-			$machine = $HTTP_GET_VARS['machine'];
-                        $night=-1;
-			include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-print "\t<img src=\"drawfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine_id$files_url&end=$end$normalize_url$start_url$showdata$showpoints\" alt=\"File Size Graph\" height=$ysize width=$xsize><br>\n";
-
-/********************************
- *
- * creating resize links
- *
- ********************************/
-$new_x = 1.25 * $xsize;
-$new_y = 1.25 * $ysize;
-print "Resize: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$new_x&ysize=$new_y&machine=$machine$files_url&end=$end$normalize_url&start=$start\">Bigger</a> |\n";
-
-$new_x = .8 * $xsize;
-$new_y = .8 * $ysize;
-print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$new_x&ysize=$new_y&machine=$machine$files_url&end=$end$normalize_url&start=$start\">Smaller</a><br>\n";
-
-
-
-/********************************
- *
- * creating links to other time frames
- *
- ********************************/
-
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$all_tests = $recent['added'];
-mysql_free_result($result);
-
-
-$length_statement="\"$end\" - INTERVAL 1 YEAR";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_year = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 6 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$six_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 3 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$three_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 1 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 7 DAY";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_week = $row[0];
-
-if(strcmp($start, $all_tests)!=0){
-	print "Time: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end&$normalize_url$showpoints$showdata&start=$all_tests\">All</a> |\n";
-}
-else{ print "Time: <b>All</b> |";}
-
-if(strcmp($start, $one_year)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$one_year\">1 year</a> | \n";
-}
-else { print " <b>1 year</b> |";}
-
-if(strcmp($start, $six_month)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$six_month\">6 months</a> | \n";
-} 
-else { print " <b>6 months</b> |";}
-
-if(strcmp($start, $three_month)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$three_month\">3 months</a> | \n";
-}
-else { print " <b>3 months</b> |";}
-
-if(strcmp($start, $one_month)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$one_month\">1 month</a> | \n";
-}
-else { print " <b>1 month</b> |";}
-
-if(strcmp($start, $one_week)!=0){
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url$showpoints$showdata&start=$one_week&showdata=true&showpoints=true\">1 week</a><br> \n";
-}
-else { print " <b>1 week</b><br>";}
-
-if($NORMALIZE==1){
-	print "Data normalization: <b>On</b> |\n";
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end&normalize=false&start=$start$showdata$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Data normalization: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end&normalize=true&start=$start\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWDATA==1){
-	print "Show data on graph: <b>On</b> |\n";
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Show data on graph: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start&$showpoints&showdata=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWPOINTS==1){
-	print "Show points on graph: <b>On</b> |\n";
-	print "<a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start$showdata\">Off</a><br>\n";
-}
-else{
-	print "Show points on graph: <a href=\"individualfilesizegraph.php?name=File Size&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$files_url&end=$end$normalize_url&start=$start&$showdata&showpoints=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-
-/*
- * Printing out data table
- *
- */
-print "<br><font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dataTable');\", id=\"dataTable_\">(-) Data table</a></font>\n";
-print "<div id=\"dataTable\" style=\"display: none;\">\n";
-
-$all_data=array();
-print "<table border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>Date</td>\n";
-foreach ($files_arr as $m){	
-  print "\t\t<td>$m</td>\n";
-  $file_data=get_file_history($machine_id, $m);
-  array_push($all_data, $file_data);
-}
-print "\t</tr>\n";
-
-foreach (array_keys($all_data[0]) as $d){
-	print "\t<tr>\n";
-	print "\t\t<td>$d</td>\n";
-	foreach ($all_data as $data){
-		print "\t\t<td align=center>{$data[$d][1]}</td>\n";
-	}	
-	print "\t</tr>\n";
-}
-
-print "</table></div>\n";
-
-?>
-</td></tr></table>
-</body></html>
-
-
-
-
-
diff --git a/nightly-test-server/individualgraph.php b/nightly-test-server/individualgraph.php
deleted file mode 100644
index 3be47b5..0000000
--- a/nightly-test-server/individualgraph.php
+++ /dev/null
@@ -1,435 +0,0 @@
-<?php
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "ProgramResults.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string ){
-        if($DEBUG){
-                print "$error_string";
-        }
-        $xsize=500;
-        $ysize=300;
-
-        if(!$DEBUG){
-                $error_image = ImageCreate($xsize, $ysize);
-                $white = imagecolorallocate($error_image, 255, 255, 255);
-                $black = imagecolorallocate($error_image, 0,0,0);
-                ImageFill($error_image, 0, 0, $white);
-                imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-                imagestring($error_image, 14, 5, 5, $error_string, $black);
-                header("Content-type: image/png");
-                imagepng($error_image);
-                imagedestroy($error_image);
-        }
-        exit(0);
-}
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-if(isset($HTTP_GET_VARS['measure'])){
-        $measure_arr=$HTTP_GET_VARS["measure"];
-  $measure=$measure_arr[0];
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['program'])){
-  $program_arr=$HTTP_GET_VARS['program'];
-        $program=$HTTP_GET_VARS['program'];
-}
-else{$URL_ERROR=1;$error_msg="no value for program";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-        $xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-        $ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=500;}
-
-if(isset($HTTP_GET_VARS['name'])){
-        $name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-        $machine_id=$HTTP_GET_VARS['machine'];
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['start'])){
-      if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['start']}")>0){
-                $start = $HTTP_GET_VARS['start'];
-                $start_query = "and added >= \"$start\"";
-                $start_url = "&start=$start";
-        }
-        else{
-                print "Error: Incorrect URL! Bad start date.\n";
-                die();
-        }
-}
-else{
-  $start_url="";
-        $start = "";
-        $start_query = " ";
-}
-
-if(isset($HTTP_GET_VARS['end'])){
-        if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", $HTTP_GET_VARS['end'])>0){
-    $end = $HTTP_GET_VARS['end'];
-                $end_url="&end=$end";
-                $end_query = "and added <= \"$end\"";
-        }
-        else{
-                print "Error: Incorrect URL! Bad end date.\n";
-                die();
-        }
-}
-else{
-  $end_url="";
-        $end = "";
-        $end_query = " ";
-}
-
-if(isset($HTTP_GET_VARS['normalize'])){
-        if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-                $NORMALIZE=1;
-          $normalize_url = "&normalize=true";
-    $def_normalize="CHECKED";
-    $def_unnormalize="";
-  }
-        else{
-    $normalize_url="";
-                $NORMALIZE=0;
-    $def_normalize="";
-    $def_unnormalize="CHECKED";
-        }
-}
-else{
-        $NORMALIZE=0;
-  $normalize_url="";
-  $def_normalize="";
-  $def_unnormalize="CHECKED";
-}
-if(isset($HTTP_GET_VARS['showdata'])){
-        if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-    $SHOWDATA=1;
-                $showdata="&showdata=true";
-        }
-        else{
-                $SHOWDATA=0;
-                $showdata="";
-        }
-}
-else{
-  $SHOWDATA=0;
-        $showdata="";
-}
-
-if(isset($HTTP_GET_VARS['showpoints'])){
-        if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-                $SHOWPOINTS=1;
-    $showpoints="&showpoints=true";
-        }
-        else{
-    $SHOWPOINTS=0;
-                $showpoints="";
-        }
-}
-else{
-  $SHOWPOINTS=0;
-        $showpoints="";
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-        printErrorMsg("URL Error: $error_msg. Could not draw graph.");
-}
-
-/********************************
- *
- * creating the page
- *
- ********************************/
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results Custom Graphs For <?php print $measure; ?></title>
-<script language="javascript">
-function toggleLayer(whichLayer)
-{
-if (document.getElementById)
-{
-// this is the way the standards work
-var style2 = document.getElementById(whichLayer).style;
-style2.display = style2.display? "":"none";
-var link  = document.getElementById(whichLayer+"_").innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}//end if
-else if (document.all)
-{
-// this is the way old msie versions work
-var style2 = document.all[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.all[wwhichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-else if (document.layers)
-{
-// this is the way nn4 works
-var style2 = document.layers[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.layers[whichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-
-}//end function
-</script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Custom Graphs For <?php print $measure; ?></b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-                        $machine = $HTTP_GET_VARS['machine'];
-                        $night = $HTTP_GET_VARS['night'];
-                        include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-$list_of_programs="";
-foreach($program as $prog){
-  $list_of_programs.="&program[]=$prog";
-}
-print "\t<img src=\"drawresultsgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine_id&measure=$measure$list_of_programs$normalize_url$end_url$start_url$showdata$showpoints\" alt=\"$measure\" height=$ysize width=$xsize><br>\n";
-
-/********************************
- *
- * creating resize links
- *
- ********************************/
-$new_x = 1.25 * $xsize;
-$new_y = 1.25 * $ysize;
-print "Resize: <a href=\"individualgraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url\">Bigger</a> |\n";
-
-$new_x = .8 * $xsize;
-$new_y = .8 * $ysize;
-print "<a href=\"individualgraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url\">Smaller</a><br>\n";
-
-
-/********************************
- *
- * creating links to other time frames
- *
- ********************************/
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added DESC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$last_date = $recent['added'];
-$recent_id = $recent['id'];
-mysql_free_result($result);
-
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$all_tests = $recent['added'];
-mysql_free_result($result);
-
-$length_statement="\"$end\" - INTERVAL 1 YEAR";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_year = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 6 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$six_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 3 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$three_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 1 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 7 DAY";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_week = $row[0];
-
-$all=0;
-if(strcmp($start, $all_tests)==0 && strcmp($end, $last_date)==0){$all=1; print "Time: <b>All</b> |";}
-else{ 
-  print "Time: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$last_date&$normalize_url$showpoints$showdata&start=$all_tests\">All</a> |\n";
-}
-
-if($all==0 && strcmp($start, $all_tests)==0){
-  print "<b>From first measurement</b> |";
-}
-else{
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end&$normalize_url$showpoints$showdata&start=$all_tests\">From first measurement</a> |\n";
-}
-
-if(strcmp($start, $one_year)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$one_year\">1 year</a> | \n";
-}
-else { print " <b>1 year</b> |";}
-
-if(strcmp($start, $six_month)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$six_month\">6 months</a> | \n";
-} 
-else { print " <b>6 months</b> |";}
-
-if(strcmp($start, $three_month)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$three_month\">3 months</a> | \n";
-}
-else { print " <b>3 months</b> |";}
-
-if(strcmp($start, $one_month)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$one_month&showdata=true&showpoints=true\">1 month</a> | \n";
-}
-else { print " <b>1 month</b> |";}
-
-if(strcmp($start, $one_week)!=0){
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$showpoints$showdata&start=$one_week&showdata=true&showpoints=true\">1 week</a><br> \n";
-}
-else { print " <b>1 week</b><br>";}
-
-if($NORMALIZE==1){
-  print "Data normalization: <b>On</b> |\n";
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end&normalize=false&$start_url$showdata$showpoints\">Off</a><br>\n";
-}
-else{
-  print "Data normalization: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end&normalize=true$start_url\">On</a> |\n";
-  print "<b>Off</b><br>\n";
-}
-
-if($SHOWDATA==1){
-  print "Show data on graph: <b>On</b> |\n";
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url$showpoints\">Off</a><br>\n";
-}
-else{
-  print "Show data on graph: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url$showpoints&showdata=true\">On</a> |\n";
-  print "<b>Off</b><br>\n";
-}
-
-if($SHOWPOINTS==1){
-  print "Show points on graph: <b>On</b> |\n";
-  print "<a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url$showdata\">Off</a><br>\n";
-}
-else{
-  print "Show points on graph: <a href=\"individualgraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night&measure[]=$measure$list_of_programs&end=$end$normalize_url$start_url&$showdata&showpoints=true\">On</a> |\n";
-  print "<b>Off</b><br>\n";
-}
-
-
-/***************************************************
- *
- * Printing out data table
- *
- ***************************************************/
-print "<br><font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dataTable');\", id=\"dataTable_\">(-) Data table</a></font>\n";
-print "<div id=\"dataTable\" style=\"display: none;\">\n";
-
-if(strcmp($start,"")!=0 && strcmp($end,"")!=0){
-    $history = buildResultsHistory($machine_id, $program,$measure,$start,$end);
-}
-else if(strcmp($start,"")!=0){
-    $history = buildResultsHistory($machine_id, $program,$measure,$start);
-}
-else{
-    $history = buildResultsHistory($machine_id, $program,$measure);
-}
-
-print "<table border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>Date</td>\n";
-foreach ($program as $prog){  
-  print "\t\t<td>$prog</td>\n";
-}
-print "\t</tr>\n";
-foreach (array_keys($history) as $date){
-  if(sizeof($history["$date"])>1){
-    print "\t<tr>\n";
-    print "\t\t<td>$date</td>\n";
-    for($x=1; $x<sizeof($history["$date"]); $x++){
-      if(isset($history["$date"][$x])){
-        print "\t\t<td align=center>{$history["$date"][$x]}</td>\n";
-      }  
-      else{
-        print "\t\t<td align=center>-</td>\n";
-      }
-    }
-    print "\t</tr>\n";
-  }
-}
-print "</table></div>\n";
-
-?>
-</td></tr></table>
-</body></html>
-
-
-
-
-
diff --git a/nightly-test-server/individualmachinegraph.php b/nightly-test-server/individualmachinegraph.php
deleted file mode 100644
index 9b9b1aa..0000000
--- a/nightly-test-server/individualmachinegraph.php
+++ /dev/null
@@ -1,426 +0,0 @@
-<?php
-/*if(!(include "jpgraph.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_line.php")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_utils.inc")){
-        die("Error: could not load necessary files!\n");
-}
-if(!(include "jpgraph_date.php")){
-        die("Error: could not load necessary files!\n");
-}*/
-if(!(include "NightlyTester.php")){
-        die("Error: could not load necessary files!\n");
-}
-
-$DEBUG=0;
-
-/********************************
- *
- * printing the appropriate error
- * image if necessary
- *
- ********************************/
-function printErrorMsg( $error_string, $DEBUG=0 ){
-        if($DEBUG){
-                print "$error_string";
-        }
-        $xsize=500;
-        $ysize=300;
-
-        if(!$DEBUG){
-                $error_image = ImageCreate($xsize, $ysize);
-                $white = imagecolorallocate($error_image, 255, 255, 255);
-                $black = imagecolorallocate($error_image, 0,0,0);
-                ImageFill($error_image, 0, 0, $white);
-                imagerectangle($error_image,0,0,$xsize-1,$ysize-1,$black);
-                imagestring($error_image, 14, 5, 5, $error_string, $black);
-                header("Content-type: image/png");
-                imagepng($error_image);
-                imagedestroy($error_image);
-        }
-        exit(0);
-}
-
-/********************************
- *
- * gathering url information and creating query
- * If url is invalid an error image will be
- * returned.
- *
- ********************************/
-$URL_ERROR=0;
-$error_msg="";
-
-$mysql_link = mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-if($mysql_link==FALSE){
-	$URL_ERROR=1;
-	$error_msg="Could not connect to database $!\n";
-}                        
-
-if(isset($HTTP_GET_VARS['measure'])){
-        $measure_arr=$HTTP_GET_VARS["measure"];
-	$measure=$measure_arr[0];
-	$measure_url="";
-	$measure_url.="&measure[]=$measure";
-}
-else{$URL_ERROR=1;$error_msg="no value for measure";}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-        $xsize=$HTTP_GET_VARS['xsize'];
-}
-else{$xsize=800;}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-        $ysize = $HTTP_GET_VARS['ysize'];
-}else{$ysize=500;}
-
-if(isset($HTTP_GET_VARS['name'])){
-        $name = $HTTP_GET_VARS['name'];
-}
-else{$name = "Results Graph";}
-
-if(isset($HTTP_GET_VARS['machine'])){
-        $machine_id=$HTTP_GET_VARS['machine'];
-	$machine=$machine_id;
-}
-else{$URL_ERROR=1;$error_msg="no value for machine";}
-
-if(isset($HTTP_GET_VARS['start'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['start']}")>0){
-	        $start = $HTTP_GET_VARS['start'];
-        	$start_query = "and added >= \"$start\"";
-		$start_url = "&start=$start";
-	}
-	else{
-		print "Error: Incorrect URL!\n";
-                die();
-	}
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$start = $recent['added'];
-	mysql_free_result($result);
-
-	$start_url="&start=$start";
-        $start_query = " and added >= \"$start\"";
-}
-
-if(isset($HTTP_GET_VARS['end'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-        	$end = $HTTP_GET_VARS['end'];
-        	$end_query = "and added <= \"$end\"";
-	}
-	else{
-                print "Error: Incorrect URL!\n";
-                die();
-        }
-}
-else{
-	$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added DESC") or die (mysql_error());
-	$recent=mysql_fetch_array($result);
-	$end = $recent['added'];
-	mysql_free_result($result);
-
-	$end_url = "&end=$end";
-        $end_query = " and added <= \"$end\"";
-}
-
-if(isset($HTTP_GET_VARS['normalize'])){
-        if(strcmp($HTTP_GET_VARS['normalize'],"true")==0){
-                $NORMALIZE=1;
-        	$normalize_url = "&normalize=true";
-		$def_normalize="CHECKED";
-		$def_unnormalize="";
-	}
-        else{
-		$normalize_url="";
-                $NORMALIZE=0;
-		$def_normalize="";
-		$def_unnormalize="CHECKED";
-        }
-}
-else{
-        $NORMALIZE=0;
-	$normalize_url="";
-	$def_normalize="";
-	$def_unnormalize="CHECKED";
-}
-if(isset($HTTP_GET_VARS['showdata'])){
-        if(strcmp($HTTP_GET_VARS['showdata'],"true")==0){
-		$SHOWDATA=1;
-                $showdata="&showdata=true";
-        }
-        else{
-                $SHOWDATA=0;
-                $showdata="";
-        }
-}
-else{
-	$SHOWDATA=0;
-        $showdata="";
-}
-
-if(isset($HTTP_GET_VARS['showpoints'])){
-        if(strcmp($HTTP_GET_VARS['showpoints'],"true")==0){
-                $SHOWPOINTS=1;
-		$showpoints="&showpoints=true";
-        }
-        else{
-		$SHOWPOINTS=0;
-                $showpoints="";
-        }
-}
-else{
-	$SHOWPOINTS=0;
-        $showpoints="";
-}
-
-/********************************
- *
- * printing error image if necessary
- *
- ********************************/
-if($URL_ERROR==1){
-        printErrorMsg("URL Error: $error_msg. Could not draw graph.");
-}
-
-/********************************
- *
- * creating the page
- *
- ********************************/
-
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results Machine Graph</title>
-<script language="javascript">
-function toggleLayer(whichLayer)
-{
-if (document.getElementById)
-{
-// this is the way the standards work
-var style2 = document.getElementById(whichLayer).style;
-style2.display = style2.display? "":"none";
-var link  = document.getElementById(whichLayer+"_").innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}//end if
-else if (document.all)
-{
-// this is the way old msie versions work
-var style2 = document.all[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.all[wwhichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-else if (document.layers)
-{
-// this is the way nn4 works
-var style2 = document.layers[whichLayer].style;
-style2.display = style2.display? "":"none";
-var link  = document.layers[whichLayer+"_"].innerHTML;
-if(link.indexOf("(+)") >= 0){
-      document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-}
-else{
-      document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-}
-
-}
-
-}//end function
-</script>
-
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Custom Graphs For <?php print "{$meaningfull_names["$measure"]}"; ?></b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-			$machine = $HTTP_GET_VARS['machine'];
-                        $night=-1;
-			include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-print "\t<img src=\"drawmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine_id$measure_url&end=$end$normalize_url$start_url$showdata$showpoints\" alt=\"$measure\" height=$ysize width=$xsize><br>\n";
-
-/********************************
- *
- * creating resize links
- *
- ********************************/
-$new_x = 1.25 * $xsize;
-$new_y = 1.25 * $ysize;
-print "Resize: <a href=\"individualmachinegraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine$measure_url&end=$end$normalize_url&start=$start\">Bigger</a> |\n";
-
-$new_x = .8 * $xsize;
-$new_y = .8 * $ysize;
-print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$new_x&ysize=$new_y&machine=$machine$measure_url&end=$end$normalize_url&start=$start\">Smaller</a><br>\n";
-
-
-
-/********************************
- *
- * creating links to other time frames
- *
- ********************************/
-
-$result = mysql_query("SELECT * FROM night WHERE machine=$machine ORDER BY added ASC") or die (mysql_error());
-$recent=mysql_fetch_array($result);
-$all_tests = $recent['added'];
-mysql_free_result($result);
-
-
-$length_statement="\"$end\" - INTERVAL 1 YEAR";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_year = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 6 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$six_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 3 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$three_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 1 MONTH";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_month = $row[0];
-
-$length_statement="\"$end\" - INTERVAL 7 DAY";
-$length_query=mysql_query("SELECT $length_statement") or die(mysql_error());
-$row = mysql_fetch_array($length_query);
-mysql_free_result($length_query);
-$one_week = $row[0];
-
-if(strcmp($start, $all_tests)!=0){
-	print "Time: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end&$normalize_url$showpoints$showdata&start=$all_tests\">All</a> |\n";
-}
-else{ print "Time: <b>All</b> |";}
-
-if(strcmp($start, $one_year)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$one_year\">1 year</a> | \n";
-}
-else { print " <b>1 year</b> |";}
-
-if(strcmp($start, $six_month)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$six_month\">6 months</a> | \n";
-} 
-else { print " <b>6 months</b> |";}
-
-if(strcmp($start, $three_month)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$three_month\">3 months</a> | \n";
-}
-else { print " <b>3 months</b> |";}
-
-if(strcmp($start, $one_month)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$one_month\">1 month</a> | \n";
-}
-else { print " <b>1 month</b> |";}
-
-if(strcmp($start, $one_week)!=0){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url$showpoints$showdata&start=$one_week&showdata=true&showpoints=true\">1 week</a><br> \n";
-}
-else { print " <b>1 week</b><br>";}
-
-if($NORMALIZE==1){
-	print "Data normalization: <b>On</b> |\n";
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end&normalize=false&start=$start$showdata$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Data normalization: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end&normalize=true&start=$start\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWDATA==1){
-	print "Show data on graph: <b>On</b> |\n";
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start$showpoints\">Off</a><br>\n";
-}
-else{
-	print "Show data on graph: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start&$showpoints&showdata=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-if($SHOWPOINTS==1){
-	print "Show points on graph: <b>On</b> |\n";
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start$showdata\">Off</a><br>\n";
-}
-else{
-	print "Show points on graph: <a href=\"individualmachinegraph.php?name=$measure&xsize=$xsize&ysize=$ysize&machine=$machine&night=$night$measure_url&end=$end$normalize_url&start=$start&$showdata&showpoints=true\">On</a> |\n";
-	print "<b>Off</b><br>\n";
-}
-
-
-/*
- * Printing out data table
- *
- */
-print "<br><font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dataTable');\", id=\"dataTable_\">(-) Data table</a></font>\n";
-print "<div id=\"dataTable\" style=\"display: none;\">\n";
-
-$night_table_statement = "SELECT * FROM night WHERE machine=$machine_id $start_query ORDER BY added DESC";
-$night_table_query = mysql_query($night_table_statement) or die(mysql_error());
-
-
-print "<table border=1 cellspacing=0 cellpadding=6>\n";
-print "\t<tr>\n";
-print "\t\t<td>Date</td>\n";
-foreach ($measure_arr as $m){	
-	print "\t\t<td>{$meaningfull_names["$m"]}</td>\n";
-}
-print "\t</tr>\n";
-while($row=mysql_fetch_array($night_table_query)){
-	print "\t<tr>\n";
-	print "\t\t<td>{$row['added']}</td>\n";
-	foreach ($measure_arr as $m){
-		print "\t\t<td align=center>{$row["$m"]}</td>\n";
-	}	
-
-}
-mysql_free_result($night_table_query);
-
-print "</table></div>\n";
-
-?>
-</td></tr></table>
-</body></html>
-
-
-
-
-
diff --git a/nightly-test-server/jpgraph/CHANGELOG b/nightly-test-server/jpgraph/CHANGELOG
deleted file mode 100644
index 2a2344b..0000000
--- a/nightly-test-server/jpgraph/CHANGELOG
+++ /dev/null
@@ -1,1445 +0,0 @@
-r639: 2006-05-26 14:31  ljp
-
-	* PR#334 - Labels shown behind the bars instead of upfront
-	Modified files: jpgraph.php
-
-r637: 2006-05-26 13:21  ljp
-
-	* FR#358 - Add support for greek character conversion
-	Modified files: jpg-config.inc, jpgraph.php
-
-r635: 2006-05-26 09:34  ljp
-
-	* PR#275 - CSIM Cache Ignores URL parameters
-	Modified files: jpgraph.php
-
-r633: 2006-05-26 00:51  ljp
-
-	* PR#342 - XHTML Clean up
-	Modified files: jpgraph.php, jpgraph_bar.php,
-	  jpgraph_plotmark.inc, lang/de.inc.php, lang/en.inc.php
-
-r632: 2006-05-26 00:23  ljp
-
-	* PR#349 - Legend::Stroke casting problem
-	Modified files: jpgraph.php
-
-r631: 2006-05-26 00:09  ljp
-
-	* PR335 - Fix to to/from ordering in GRAD_DIAG
-	Modified files: jpgraph_gradient.php
-
-r627: 2006-05-08 19:37  ljp
-
-	* Added CSIM table examples
-	Modified files: table_examples/tablebarex1_csim.php,
-	  table_examples/tableex01_csim.php
-
-r625: 2006-05-08 19:00  ljp
-
-	* FR#354 - Add support for CSIM in canvas graphs
-	Modified files: jpgraph_canvas.php
-
-r624: 2006-05-07 10:47  ljp
-
-	* Make sure image class is passed as reference to adjust for SVG version of image class. Optimize SVG ath generation
-	Modified files: jpgraph.php, jpgraph_bar.php, jpgraph_pie.php,
-	  jpgraph_pie3d.php, svg_image.inc.php
-
-r623: 2006-05-07 10:03  ljp
-
-	* Updated svg_image class to force locale to always use a dot as decimal separator regardless of locale used
-	Modified files: svg_image.inc.php
-
-r622: 2006-05-07 09:59  ljp
-
-	* Removed local setting in example
-	Modified files: Examples/example23.php
-
-r621: 2006-05-07 02:09  ljp
-
-	* Update for new version of DateScaleUtils which cannot be called statically
-	Modified files: Examples/combgraphex1.php,
-	  Examples/manualtickex1.php
-
-r620: 2006-05-07 02:08  ljp
-
-	* Make sure gd is used by defaylt and not SVG
-	Modified files: jpgraph.php
-
-r619: 2006-05-07 01:56  ljp
-
-	* Moved class Image to its own file
-	Modified files: gd_image.inc.php
-
-r618: 2006-05-07 01:54  ljp
-
-	* Added first experiemental version of SVG output for Image class with new svg_image.inc.php file
-	Modified files: Examples/example26.1.php, jpg-config.inc,
-	  jpgraph.php, svg_image.inc.php, tests/test_antispam.php,
-	  tests/test_bkgimage.php, tests/test_linesimple.php,
-	  tests/test_linetable.php, tests/test_pie3d.php,
-	  tests/test_pielegend.php, tests/test_piesimple.php,
-	  tests/test_table2.php
-
-r613: 2006-04-19 19:35  ljp
-
-	* FS#346 - Bezier interpolation broken for attraction_factor != 1
-	Modified files: jpgraph_regstat.php
-
-r611: 2006-04-03 19:30  ljp
-
-	* FS#341 - Take daylight savings into account for date scale
-	Modified files: jpgraph.php
-
-r609: 2006-03-29 19:15  ljp
-
-	* FS#339 - Make sure there are no error messages when cliesnts forget to set Alt texts in conjunction with CSIM
-	Modified files: jpgraph_bar.php
-
-r607: 2006-03-26 10:47  ljp
-
-	* Add small 'w' to differentiate weeks in the scale as compared to dates. Don't encode entire <img> CSIM script tag with htmlentities
-	Modified files: jpgraph.php
-
-r605: 2006-03-23 18:37  ljp
-
-	* FR#336 - Make it possible to use auto-tcks on a manually specified radar scale
-	Modified files: jpgraph_radar.php
-
-r603: 2006-03-21 19:40  ljp
-
-	* FR#331 - Add new diagonal gradient type
-	Modified files: jpgraph_gradient.php
-
-r601: 2006-03-21 17:34  ljp
-
-	* Set ID property of new German language file
-	Modified files: lang/de.inc.php
-
-r600: 2006-03-21 17:32  ljp
-
-	* Added German translation of error messages
-	Modified files: lang/de.inc.php
-
-r598: 2006-03-13 19:56  ljp
-
-	* Add possibility to create semi-auto scaled date ticks in DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r596: 2006-03-12 19:15  ljp
-
-	* FR#328 - Auto detect cyrillic conversion
-	Modified files: jpg-config.inc, jpgraph.php
-
-r594: 2006-03-12 09:55  ljp
-
-	* FR#329 - Add additional date tick intervals in DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r592: 2006-03-12 09:49  ljp
-
-	* Removed un-neccesary exit() callse
-	Modified files: jpgraph.php
-
-r590: 2006-03-11 09:50  ljp
-
-	* Additional error checking for client trying to pass strings as X-coordinates
-	Modified files: jpgraph.php
-
-r588: 2006-03-11 09:44  ljp
-
-	* PR#327 - Duplicate internal error numbers for tables and utils
-	Modified files: jpgraph_table.php, lang/en.inc.php,
-	  lang/prod.inc.php
-
-r586: 2006-03-04 18:55  ljp
-
-	* FS#314 - Graph width incompatible with additional columns in Gantt chart
-	Modified files: jpgraph_gantt.php, tests/test_bug314.php
-
-r584: 2006-03-04 15:18  ljp
-
-	* FS235 - SetWidth() does not work for GroupBarPlot.
-	Modified files: jpgraph_bar.php, tests/test_bug235.php
-
-r581: 2006-03-04 14:36  ljp
-
-	* Make default error locale customizable
-	Modified files: jpg-config.inc, jpgraph.php
-
-r579: 2006-03-04 13:48  ljp
-
-	* FS#323 - Add automatic EUC-JP to UTF8 Japanes encoding
-	Modified files: jpg-config.inc, jpgraph.php, lang/en.inc.php,
-	  lang/prod.inc.php
-
-r576: 2006-03-04 12:13  ljp
-
-	* Bar Enhancement: Interpret a width > 1 in SetWidth() as absolute pixel width
-	Modified files: jpgraph_bar.php
-
-r574: 2006-03-04 11:04  ljp
-
-	* FS#297 - Wrong positioning of icon using antialiasing and pieplot
-	Modified files: jpgraph_pie.php, tests/test_bug297.php
-
-r572: 2006-03-04 10:41  ljp
-
-	* FS#316 - Manually scaled x-date-scale doesn't use date format
-	Modified files: jpgraph_date.php
-
-r570: 2006-03-04 10:26  ljp
-
-	* CR#293 - Add label adjustments to 3D Pie
-	Modified files: jpgraph_pie3d.php, tests/test_bug293.php
-
-r567: 2006-03-01 21:34  ljp
-
-	* CR#318 - Add check for minimum required PHP version
-	Modified files: jpgraph.php, lang/en.inc.php, lang/prod.inc.php
-
-r559: 2006-02-19 10:49  ljp
-
-	* FR#305 - Handling of endpoints for DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r558: 2006-02-19 10:33  ljp
-
-	* Make sure locale is marked as GLOBAL
-	Modified files: jpgraph.php
-
-r557: 2006-02-19 10:33  ljp
-
-	* Set property Id for locale file
-	Modified files: lang/en.inc.php
-
-r555: 2006-02-19 09:02  ljp
-
-	* Added prod error locale and method to control locale
-	Modified files: jpgraph.php, lang/en.inc.php, lang/prod.inc.php
-
-r554: 2006-02-18 07:45  ljp
-
-	* Bumped version string to 1.20.3
-	Modified files: jpgraph.php
-
-r552: 2006-02-18 07:37  ljp
-
-	* Moved table examples to its own directory
-	Modified files: Examples/combgraphex1.php, Examples/tableex00.php,
-	  Examples/tableex01.php, Examples/tableex02.php,
-	  Examples/tableex03.php, table_examples,
-	  table_examples/tablebarex1.php, table_examples/tableex00.php,
-	  table_examples/tableex01.php, table_examples/tableex02.php,
-	  table_examples/tableex03.php, table_examples/tableex04.php,
-	  table_examples/tableex05.php
-
-r549: 2006-02-18 07:31  ljp
-
-	* Added some more test cases
-	Modified files: tests/test_0bar.php, tests/test_accbartable.php,
-	  tests/test_accbartable_csim.php, tests/test_barlinecenter.php,
-	  tests/test_dateinty2.php, tests/test_flag.php,
-	  tests/test_linefillnull.php, tests/test_linelargeval.php,
-	  tests/test_linesimple.php, tests/test_linetable.php,
-	  tests/test_php5date.php, tests/test_radaraxistitle.php,
-	  tests/test_table1.php, tests/test_table2.php,
-	  tests/test_table3.php, tests/test_table_flagex1.php,
-	  tests/test_table_howto1.php, tests/test_table_howto2.php,
-	  tests/test_table_howto3.php, tests/test_table_howto4.php,
-	  tests/test_table_howto5.php, tests/test_table_howto6.php,
-	  tests/test_table_howto7.php, tests/test_table_howto8.php,
-	  tests/test_table_howto9.php, tests/test_table_iconex1.php,
-	  tests/test_table_mex0.php, tests/test_table_mex00.php,
-	  tests/test_table_mex1.php, tests/test_table_mex2.php,
-	  tests/test_table_mex3.php, tests/test_y2grouobar.php,
-	  tests/test_y2groupbar.php, tests/test_y2synch.php,
-	  tests/test_y2synch2.php
-
-r543: 2006-02-14 20:10  ljp
-
-	* FS#308 - Make JpGraph classes extendable by using is_a() instead of get_class()
-	Modified files: jpgraph_gantt.php
-
-r542: 2006-02-14 20:10  ljp
-
-	* FS#308 - Make JpGraph classes extendable by using is_a() instead of get_class()
-	Modified files: jpgraph.php, jpgraph_bar.php, jpgraph_pie.php,
-	  jpgraph_windrose.php
-
-r540: 2006-02-14 17:27  ljp
-
-	* Some minor code layout changes
-	Modified files: jpgraph_table.php
-
-r538: 2006-02-14 06:51  ljp
-
-	* Added error check for number of data points in each in AccBar
-	Modified files: jpgraph_bar.php, lang/en.inc.php
-
-r536: 2006-02-13 06:42  ljp
-
-	* Removed HTML formatting in error message
-	Modified files: lang/en.inc.php
-
-r534: 2006-02-12 08:56  ljp
-
-	* Added new error message for GTextTable constrains
-	Modified files: lang/en.inc.php
-
-r532: 2006-02-12 08:27  ljp
-
-	* Added SetScalePos(), SetAnchorPos() and CSIM capabilities to tables
-	Modified files: jpgraph.php, jpgraph_table.php
-
-r531: 2006-02-11 10:32  ljp
-
-	* Fixed buffer overflow for long lines, prper mysql escaping of strings
-	Modified files: utils/jpdocgen/de_utils.php,
-	  utils/jpdocgen/jpgendb.php, utils/jpdocgen/jplintphp.php
-
-r529: 2006-02-11 08:33  ljp
-
-	* Updated table image API to follow the table setting pattern
-	Modified files: jpgraph_table.php
-
-r527: 2006-02-11 08:07  ljp
-
-	* Added possibility to use current scale to position GTextTable
-	Modified files: jpgraph_table.php
-
-r525: 2006-02-09 16:34  ljp
-
-	* Make sure padding API follow the general API design for GTextTable
-	Modified files: jpgraph_table.php
-
-r523: 2006-02-08 21:29  ljp
-
-	* Height and width calculation whould use max of value and image for table cell size
-	Modified files: jpgraph_table.php
-
-r521: 2006-02-08 21:22  ljp
-
-	* Added background images in individual cells for GTextTable
-	Modified files: jpgraph_iconplot.php, jpgraph_table.php
-
-r519: 2006-02-06 06:21  ljp
-
-	* Some more error checking for GTextTable and generalization of the SetNumberFormat() method to follow the practice of range setting
-	Modified files: jpgraph_table.php, lang/en.inc.php
-
-r517: 2006-02-05 20:48  ljp
-
-	* Added additional error check and default values for Tables
-	Modified files: jpgraph_table.php, lang/en.inc.php
-
-r515: 2006-02-05 16:46  ljp
-
-	* Update GTextTable SetAlign with new error message. Added check for invalid error message index.
-	Modified files: jpgraph.php, jpgraph_table.php, lang/en.inc.php
-
-r514: 2006-02-05 10:00  ljp
-
-	* Updated table example
-	Modified files: Examples/tableex03.php
-
-r512: 2006-02-05 09:53  ljp
-
-	* Make sure comparison is type safe for handling of parameterized error messages
-	Modified files: jpgraph.php
-
-r510: 2006-02-05 09:48  ljp
-
-	* Updated localized error messages for table
-	Modified files: lang/en.inc.php
-
-r509: 2006-02-05 09:44  ljp
-
-	* Added NumberFormat option for table formatting,
-	Modified files: jpgraph_table.php
-
-r505: 2006-02-04 15:53  ljp
-
-	* Directory cleanup
-	Modified files: tests/.xvpics
-
-r504: 2006-02-04 15:51  ljp
-
-	* Propset Id
-	Modified files: jpgraph_mgraph.php, jpgraph_pdf417.php,
-	  jpgraph_table.php, jpgraph_utils.inc, pdf417_backends.inc,
-	  pdf417_clusters.inc, pdf417_compressors.inc, pdf417_error.inc
-
-r503: 2006-02-04 12:46  ljp
-
-	* Removed extra exit()
-	Modified files: jpgraph.php
-
-r501: 2006-02-04 12:45  ljp
-
-	* Localized jpgraph_gradient
-	Modified files: jpgraph_gradient.php
-
-r499: 2006-02-04 12:44  ljp
-
-	* Localized Linear Barcode error messages
-	Modified files: jpgraph_barcode.php
-
-r497: 2006-02-04 12:33  ljp
-
-	* Localized PDF417
-	Modified files: jpgraph_pdf417.php, pdf417_backends.inc,
-	  pdf417_clusters.inc, pdf417_compressors.inc, pdf417_error.inc
-
-r495: 2006-02-04 12:31  ljp
-
-	* Localized error messages in jpgraph_utils.php
-	Modified files: jpgraph_utils.inc
-
-r493: 2006-02-04 12:29  ljp
-
-	* Localized error messages in jpgraph_stock.php
-	Modified files: jpgraph_stock.php
-
-r491: 2006-02-04 12:28  ljp
-
-	* Localized error messages in jpgraph_scatter.php
-	Modified files: jpgraph_scatter.php
-
-r489: 2006-02-04 12:26  ljp
-
-	* Localized error messages in jpgraph_radar.php
-	Modified files: jpgraph_radar.php
-
-r487: 2006-02-04 12:25  ljp
-
-	* Localized error messages in jpgraph_polar.php
-	Modified files: jpgraph_polar.php
-
-r485: 2006-02-04 12:20  ljp
-
-	* Localized error messages in jpgraph_plotmark.inc
-	Modified files: jpgraph_plotmark.inc
-
-r483: 2006-02-04 12:19  ljp
-
-	* Localized error messages in jpgraph_plotband.php
-	Modified files: jpgraph_plotband.php
-
-r481: 2006-02-04 12:18  ljp
-
-	* Localized error messages in jpgraph_mgraph.php
-	Modified files: jpgraph_mgraph.php
-
-r479: 2006-02-04 12:17  ljp
-
-	* Localized error messages in jpgraph_log.php
-	Modified files: jpgraph_log.php
-
-r477: 2006-02-04 12:16  ljp
-
-	* Localized error messages in jpgraph_imgtrans.php
-	Modified files: jpgraph_imgtrans.php
-
-r475: 2006-02-04 12:15  ljp
-
-	* Localized error messages in jpgraph_iconplot.php
-	Modified files: jpgraph_iconplot.php
-
-r473: 2006-02-04 12:14  ljp
-
-	* Localized error messages in jpgraph_gantt.php
-	Modified files: jpgraph_gantt.php
-
-r471: 2006-02-04 12:12  ljp
-
-	* Localized error messages in jpgraph_flags.php
-	Modified files: jpgraph_flags.php
-
-r469: 2006-02-04 12:11  ljp
-
-	* Localized error messages in jpgraph_date.php
-	Modified files: jpgraph_date.php
-
-r467: 2006-02-04 12:10  ljp
-
-	* Localized error messages in jpgraph_windrose.php
-	Modified files: jpgraph_windrose.php
-
-r465: 2006-02-04 12:09  ljp
-
-	* Localized error messages in jpgraph_odo.php
-	Modified files: jpgraph_odo.php
-
-r463: 2006-02-04 12:07  ljp
-
-	* Localized error messages in jpgraph_regstat.php
-	Modified files: jpgraph_regstat.php
-
-r461: 2006-02-04 12:06  ljp
-
-	* Localized error messages in jpgraph_error.php
-	Modified files: jpgraph_error.php
-
-r459: 2006-02-04 12:05  ljp
-
-	* Localized error messages in jpgraph_pie3d.php
-	Modified files: jpgraph_pie3d.php
-
-r457: 2006-02-04 12:04  ljp
-
-	* Localized error messages in jpgraph_pie.php
-	Modified files: jpgraph_pie.php
-
-r455: 2006-02-04 12:01  ljp
-
-	* Localized error messages in main jpgraph_line.php
-	Modified files: jpgraph_line.php
-
-r453: 2006-02-04 11:40  ljp
-
-	* Localized error messages in main jpgraph.php
-	Modified files: jpgraph.php
-
-r451: 2006-02-04 11:31  ljp
-
-	* Further english resource file update
-	Modified files: lang/en.inc.php
-
-r450: 2006-02-04 10:06  ljp
-
-	* Added localized error messages to jpgraph_bar.php
-	Modified files: jpgraph_bar.php
-
-r448: 2006-02-04 10:03  ljp
-
-	* Updated english resource file
-	Modified files: lang/en.inc.php
-
-r447: 2006-02-04 10:03  ljp
-
-	* Added localized error messages to jpgraph_table.php
-	Modified files: jpgraph_table.php
-
-r445: 2006-02-04 09:29  ljp
-
-	* Removed backup versions of english language resource files
-	Modified files: lang/en.inc.php.backup, lang/en.inc.php.backup2
-
-r444: 2006-02-04 09:28  ljp
-
-	* Added language resource files
-	Modified files: lang, lang/en.inc.php, lang/en.inc.php.backup,
-	  lang/en.inc.php.backup2
-
-r442: 2006-02-02 18:03  ljp
-
-	* Added align arguments for Merge() methods
-	Modified files: jpgraph_table.php
-
-r440: 2006-02-02 06:35  ljp
-
-	* Added error checking when merging table cells
-	Modified files: jpgraph_table.php
-
-r439: 2006-01-30 22:35  ljp
-
-	* Fix spelling error in error message
-	Modified files: jpgraph.php
-
-r437: 2006-01-30 21:52  ljp
-
-	* API restructuring in the GTextTable to make it easier to use ranges
-	Modified files: jpgraph_table.php
-
-r436: 2006-01-29 21:36  ljp
-
-	* Added examples on the use of GTextTable
-	Modified files: Examples/tableex00.php, Examples/tableex01.php,
-	  Examples/tableex02.php, Examples/tableex03.php
-
-r435: 2006-01-29 21:26  ljp
-
-	* PR#306 - Icons are not added as references
-	Modified files: jpgraph.php
-
-r433: 2006-01-29 20:42  ljp
-
-	* Fixed typos and a problem with the width calculation of merged cells
-	Modified files: jpgraph_table.php
-
-r431: 2006-01-29 19:17  ljp
-
-	* Adjusted vertical position calculation to avoid issue with baselining of TTF fonts
-	Modified files: jpgraph_table.php
-
-r429: 2006-01-29 16:10  ljp
-
-	* Added API in table handling so that all major settings now has the same structure, entire table, specific row, specific column or specific cell
-	Modified files: jpgraph_table.php
-
-r427: 2006-01-29 12:26  ljp
-
-	* GTextTable: Added API for table row and column font color setting
-	Modified files: jpgraph_table.php
-
-r425: 2006-01-29 09:10  ljp
-
-	* Major ovehaul of GTextTable. Added possibility to merge cells, Added range error check for all methods, Major refactoring of grid line drawing for tables (this is now the responsibility of the individual cells)
-	Modified files: jpgraph_table.php
-
-r422: 2006-01-26 21:45  ljp
-
-	* Changed column width/height handling so that the specification is interpretated as a min height/width
-	Modified files: jpgraph_table.php
-
-r420: 2006-01-26 21:22  ljp
-
-	* Added possibility to use different grid styles on graphic tables
-	Modified files: jpgraph_table.php
-
-r418: 2006-01-26 07:44  ljp
-
-	* CR#160 - Data tables on the graphs. Added jpgraph_table.php that implements GTextTable class that will allow text tables to be created as graphical objects and added to teh graphs. The tables have basic formatting capabilities as well as auto-sizing depending on the data in each cell.
-	Modified files: jpgraph.php, jpgraph_canvas.php,
-	  jpgraph_table.php, tests/test_flag.php, tests/test_ttf.php
-
-r404: 2006-01-21 17:34  ljp
-
-	* Adjust date format to comply with newer versions of PHP
-	Modified files: Examples/gantthourex1.php,
-	  Examples/gantthourminex1.php
-
-r397: 2006-01-18 19:06  ljp
-
-	* Fix PR#304 - Flag index for Replublic of Peru missing
-	Modified files: jpgraph_flags.php
-
-r396: 2006-01-18 18:42  ljp
-
-	* Fix PR#303 - E_STRICT not available in PHP4
-	Modified files: jpgraph.php
-
-r391: 2006-01-15 20:25  ljp
-
-	* Small modification to error checking when streaming image to a file
-	Modified files: jpgraph.php
-
-r390: 2006-01-15 20:24  ljp
-
-	* Removed a number of backup files that was acidentely comitted
-	Modified files: tests/data.csv~, tests/test_automin.php~,
-	  tests/test_barcode128.php~, tests/test_bargrad.php~,
-	  tests/test_bargrad2.php~, tests/test_barpattern.php~,
-	  tests/test_barsimple2.php~, tests/test_barsimple3.php~,
-	  tests/test_barsimple4.php~, tests/test_bug123.php~,
-	  tests/test_bug130.php~, tests/test_bug168.php~,
-	  tests/test_bug208.php~, tests/test_bug210.php~,
-	  tests/test_bug214.php~, tests/test_bug229.php~,
-	  tests/test_bug231.php~, tests/test_bug233.php~,
-	  tests/test_bug238.php~, tests/test_bug239.php~,
-	  tests/test_bug246.php~, tests/test_bug252.php~,
-	  tests/test_bug253.php~, tests/test_bug254.php~,
-	  tests/test_bug261.php~, tests/test_bug270.php~,
-	  tests/test_bug272.php~, tests/test_bug275.php~,
-	  tests/test_bug279.php~, tests/test_bug283.php~,
-	  tests/test_bug287.php~, tests/test_bug289.php~,
-	  tests/test_bug298.php~, tests/test_bug68.php~,
-	  tests/test_datetickposbug.php~, tests/test_dateweight.php~,
-	  tests/test_ganttpro.php~, tests/test_ganttweekbug.php~,
-	  tests/test_line.php~, tests/test_lineiconstring.php~,
-	  tests/test_logscale.php~, tests/test_manualticks5.php~,
-	  tests/test_markcsim.php~, tests/test_mgraph.php~,
-	  tests/test_mgraph2.php~, tests/test_mgraph3.php~,
-	  tests/test_mulyaxis.php~, tests/test_mulycsim.php~,
-	  tests/test_odo2.php~, tests/test_pie3d.php~,
-	  tests/test_pie3d_1.php~, tests/test_radarbug248.php~,
-	  tests/test_radarticks3.php~, tests/test_readcsv.php~,
-	  tests/test_symchar.php~, tests/test_text90.php~,
-	  tests/test_texttick.php~
-
-r389: 2006-01-15 20:23  ljp
-
-	* Comitted a number of test scripts to make a cleaner status message
-	Modified files: tests/bigredtigerfront.jpg, tests/csimcache,
-	  tests/csimcache/test_bug261.png,
-	  tests/csimcache/test_bug261_csim_.html, tests/data.csv,
-	  tests/data.csv~, tests/dataforbug253.txt, tests/test_automin.php,
-	  tests/test_automin.php~, tests/test_barcode128.php,
-	  tests/test_barcode128.php~, tests/test_bargrad.php,
-	  tests/test_bargrad.php~, tests/test_bargrad2.php,
-	  tests/test_bargrad2.php~, tests/test_barpattern.php,
-	  tests/test_barpattern.php~, tests/test_barsimple2.php,
-	  tests/test_barsimple2.php~, tests/test_barsimple3.php,
-	  tests/test_barsimple3.php~, tests/test_barsimple4.php,
-	  tests/test_barsimple4.php~, tests/test_bug123.php,
-	  tests/test_bug123.php~, tests/test_bug130.php,
-	  tests/test_bug130.php~, tests/test_bug168.php,
-	  tests/test_bug168.php~, tests/test_bug208.php,
-	  tests/test_bug208.php~, tests/test_bug210.php,
-	  tests/test_bug210.php~, tests/test_bug214.php,
-	  tests/test_bug214.php~, tests/test_bug229.php,
-	  tests/test_bug229.php~, tests/test_bug231.php,
-	  tests/test_bug231.php~, tests/test_bug233.php,
-	  tests/test_bug233.php~, tests/test_bug238.php,
-	  tests/test_bug238.php~, tests/test_bug238b.php,
-	  tests/test_bug239.php, tests/test_bug239.php~,
-	  tests/test_bug246.php, tests/test_bug246.php~,
-	  tests/test_bug252.php, tests/test_bug252.php~,
-	  tests/test_bug253.php, tests/test_bug253.php~,
-	  tests/test_bug254.php, tests/test_bug254.php~,
-	  tests/test_bug261.php, tests/test_bug261.php~,
-	  tests/test_bug270.php, tests/test_bug270.php~,
-	  tests/test_bug272.php, tests/test_bug272.php~,
-	  tests/test_bug275.php, tests/test_bug275.php~,
-	  tests/test_bug279.php, tests/test_bug279.php~,
-	  tests/test_bug283.php, tests/test_bug283.php~,
-	  tests/test_bug287.php, tests/test_bug287.php~,
-	  tests/test_bug289.php, tests/test_bug289.php~,
-	  tests/test_bug298.php, tests/test_bug298.php~,
-	  tests/test_bug68.php, tests/test_bug68.php~,
-	  tests/test_datetickposbug.php, tests/test_datetickposbug.php~,
-	  tests/test_dateweight.php, tests/test_dateweight.php~,
-	  tests/test_ganttpro.php, tests/test_ganttpro.php~,
-	  tests/test_ganttweekbug.php, tests/test_ganttweekbug.php~,
-	  tests/test_line.php, tests/test_line.php~,
-	  tests/test_lineiconstring.php~, tests/test_logscale.php,
-	  tests/test_logscale.php~, tests/test_manualticks.php,
-	  tests/test_manualticks2.php, tests/test_manualticks3.php,
-	  tests/test_manualticks4.php, tests/test_manualticks5.php,
-	  tests/test_manualticks5.php~, tests/test_markcsim.php,
-	  tests/test_markcsim.php~, tests/test_mgraph.php,
-	  tests/test_mgraph.php~, tests/test_mgraph2.php,
-	  tests/test_mgraph2.php~, tests/test_mgraph3.php,
-	  tests/test_mgraph3.php~, tests/test_mulyaxis.php,
-	  tests/test_mulyaxis.php~, tests/test_mulycsim.php,
-	  tests/test_mulycsim.php~, tests/test_odo2.php,
-	  tests/test_odo2.php~, tests/test_pie3d.php, tests/test_pie3d.php~,
-	  tests/test_pie3d_1.php, tests/test_pie3d_1.php~,
-	  tests/test_radarbug248.php, tests/test_radarbug248.php~,
-	  tests/test_radarticks3.php, tests/test_radarticks3.php~,
-	  tests/test_readcsv.php, tests/test_readcsv.php~,
-	  tests/test_symchar.php, tests/test_symchar.php~,
-	  tests/test_text90.php, tests/test_text90.php~,
-	  tests/test_texttick.php, tests/test_texttick.php~,
-	  tests/tiger1.jpg
-
-r388: 2006-01-15 20:21  ljp
-
-	* Moved MGraph from utils to it's own file. Added Utility class to read CSV file of data
-	Modified files: jpgraph_mgraph.php, jpgraph_utils.inc
-
-r379: 2006-01-14 11:26  ljp
-
-	* Fix PR#302 - Individual colors for labels and axis on radar plots
-	Modified files: jpgraph_radar.php
-
-r377: 2006-01-13 18:29  ljp
-
-	* Fix PR#298 - Multiple plots for polar graphs
-	Modified files: jpgraph_polar.php
-
-r374: 2006-01-13 18:20  ljp
-
-	* Add CR#299 - File and line number information for headers sent error
-	Modified files: jpgraph.php
-
-r370: 2006-01-09 18:19  ljp
-
-	* Fix PR#296 - Wrong stop character for I25
-	Modified files: jpgraph_barcode.php
-
-r369: 2006-01-06 03:54  ljp
-
-	* Fix PR#294- Function name misspelled in startup php_errormsg check
-	Modified files: jpgraph.php
-
-r366: 2006-01-05 07:03  ljp
-
-	* Copy and paste mistake in fix for #292
-	Modified files: jpgraph_bar.php
-
-r365: 2006-01-05 07:00  ljp
-
-	* Fix PR#292 - Incorrect calculation of Min value for AccBarPlot in some cases
-	Modified files: jpgraph_bar.php
-
-r364: 2005-12-31 10:08  ljp
-
-	* Added filledlineex03.php - Example with filled line and NULL values
-	Modified files: Examples/filledlineex03.php,
-	  Examples/piebkgex1.php
-
-r361: 2005-12-31 10:00  ljp
-
-	* Fix CR#283 - Gaps should be displayed for NULL values in filled line graphs
-	Modified files: jpgraph_line.php
-
-r359: 2005-12-30 20:59  ljp
-
-	* Fix CR#290 - Make it possible to use StrokeCSIM() without argument
-	Modified files: jpgraph.php
-
-r358: 2005-12-30 18:08  ljp
-
-	* Properly Fix PR#123 - Background gradient for rotated bar plots
-	Modified files: jpgraph.php
-
-r355: 2005-12-30 17:36  ljp
-
-	* Fix PR#123 - Background gradient for rotated bar plots
-	Modified files: jpgraph.php
-
-r353: 2005-12-30 17:22  ljp
-
-	* Fix CR#130 - Add option to use background gradient to Pie plots
-	Modified files: jpgraph_pie.php
-
-r351: 2005-12-30 16:26  ljp
-
-	* Fix PR#68 - Setting title side for X-axis title was not implemented
-	Modified files: jpgraph.php
-
-r350: 2005-12-30 14:31  ljp
-
-	* Fix PR#289 and improve performance by reducing the number of internal copies of class Image by using more references
-	Modified files: jpgraph.php, jpgraph_plotmark.inc
-
-r349: 2005-12-30 14:31  ljp
-
-	* Fix PR#289 and improve performance by reducing the number of internal copies of class Image by using more references
-	Modified files: jpgraph_gantt.php, jpgraph_gradient.php,
-	  jpgraph_iconplot.php, jpgraph_odo.php, jpgraph_polar.php,
-	  jpgraph_scatter.php, jpgraph_stock.php, jpgraph_windrose.php
-
-r346: 2005-12-29 09:32  ljp
-
-	* Renamed odo_examples odometer_examples
-	Modified files: odo_examples, odometer_examples
-
-r344: 2005-12-29 06:56  ljp
-
-	* Make ShowBorder() show a deprecated function error for 3D Pies
-	Modified files: jpgraph_pie3d.php
-
-r340: 2005-12-29 06:51  ljp
-
-	* Added additional error check to spline and bezier interpolation
-	Modified files: jpgraph_regstat.php
-
-r339: 2005-12-29 06:44  ljp
-
-	* Comitted multiple y-axis and combined graph examples
-	Modified files: Examples/combgraphex1.php,
-	  Examples/mulyaxiscsimex1.php, Examples/mulyaxisex1.php
-
-r338: 2005-12-29 06:43  ljp
-
-	* Added bezier example
-	Modified files: Examples/bezierex1.php
-
-r336: 2005-12-28 11:05  ljp
-
-	* PR #288. Dateline scale is not properly formatted
-	Modified files: jpgraph.php
-
-r334: 2005-12-15 22:34  ljp
-
-	* Remove HTML entitites encoding in CSIM targets for barplots
-	Modified files: jpgraph_bar.php
-
-r332: 2005-12-14 18:21  ljp
-
-	* Fix PR#280 - Wrong legends in some cases for 3D Pies
-	Modified files: jpgraph_pie3d.php
-
-r330: 2005-12-10 08:28  ljp
-
-	* Merged 328:329. Add possibility to use CSIM on multi Y-axes. Made it possibly to use 'auto' as special filename for CSIM to avoid having to supply file name.
-	Modified files: jpgraph.php
-
-r327: 2005-12-10 08:24  ljp
-
-	* Added Bezier interpolation class
-	Modified files: jpgraph_regstat.php
-
-r325: 2005-12-07 18:43  ljp
-
-	* Removed extra check for UPC-A barcodes. Allow 10 number systems (0-9) as the first specification.
-	Modified files: jpgraph_barcode.php
-
-r324: 2005-12-06 19:13  ljp
-
-	* Really Fixded PR #271. SetDateFormat()
-	Modified files: jpgraph.php
-
-r322: 2005-12-06 19:09  ljp
-
-	* Fixded PR #271. Problem with SetDateFormat()
-	Modified files: jpgraph.php
-
-r320: 2005-12-05 10:54  ljp
-
-	* Added error check for empty plots when client constructs group or acc bars
-	Modified files: jpgraph_bar.php
-
-r303: 2005-12-03 08:56  ljp
-
-	* Fixed lost startyear variable in DateScaleUtils
-	Modified files: jpgraph_utils.inc
-
-r297: 2005-11-30 22:12  ljp
-
-	* Rounding problem fixing. It turns out that according to PHP (a < b)==TRUE assuming a:INT and b:float. This could cause the last tick on an axis to not be shown in some rare cases
-	Modified files: jpgraph.php
-
-r296: 2005-11-30 19:55  ljp
-
-	* Fix PR #269. Make sure that the title of the axis is only stroken once
-	Modified files: jpgraph.php
-
-r287: 2005-11-28 22:12  ljp
-
-	* Fixed gantthourminex1.php example to be compatible with PHP 5.1.0
-	Modified files: Examples/gantthourminex1.php
-
-r286: 2005-11-28 22:09  ljp
-
-	* Added error check for too large width caused by a faulty input date
-	Modified files: jpgraph_gantt.php
-
-r282: 2005-11-27 20:34  ljp
-
-	* Updated math function examples to include jpgraph_utils.inc
-	Modified files: Examples/dupyaxisex1.php, Examples/funcex1.php,
-	  Examples/funcex2.php, Examples/funcex3.php, Examples/funcex4.php
-
-r279: 2005-11-27 11:13  ljp
-
-	* Added option to put the background image for MGraph at a specific x,y location
-	Modified files: jpgraph_utils.inc
-
-r278: 2005-11-27 11:12  ljp
-
-	* Updated and added manual tick examples
-	Modified files: Examples/manualtickex1.php,
-	  Examples/manualtickex2.php
-
-r276: 2005-11-26 15:42  ljp
-
-	* Moved class FuncGenerator from jpgraph.php to jpgraph_utility.inc
-	Modified files: jpgraph.php, jpgraph_utils.inc
-
-r274: 2005-11-26 14:42  ljp
-
-	* Simplified DateScaleUtils interface
-	Modified files: jpgraph_utils.inc
-
-r272: 2005-11-26 14:26  ljp
-
-	* Various minor adjustments in jpgraph.php * Added maj_tick_label as instance variable. That had always been missing !! * Adjusted the default margin fox X-axis labels slightly, slightly larger * Adjusted the left/right default graph margin (They were unecessarily large). * Added error checking when client specifies to few manual major ticks
-	Modified files: jpgraph.php
-
-r267: 2005-11-25 16:35  ljp
-
-	* Added option to use background images in MGraph (combined graphs)
-	Modified files: jpgraph_utils.inc
-
-r265: 2005-11-25 16:23  ljp
-
-	* Added Graph proxy method for Image::SetImgFormat()
-	Modified files: jpgraph.php
-
-r262: 2005-11-25 11:00  ljp
-
-	* Modified the MGraph::Add() method to accept Graph argument instead of just an image handler. Much more elegant and user friendly. Allso added the possibility for the MGraph::Stroke() method to return an image handler as well. This will allow MGraph to have MGraph as objects.
-	Modified files: jpgraph_utils.inc
-
-r261: 2005-11-24 06:51  ljp
-
-	* Borrowed some methods from class Graph to class MGraph in ordedr to avoid having to instantiate class Graph when using the MGraph functionality to save some memory. Added Class DateScaleUtils to jpgraph_utils.inc to make it easy to manually work with month scale where the tick positions are manually set
-	Modified files: jpgraph_utils.inc
-
-r260: 2005-11-23 19:52  ljp
-
-	* Added CR#266 "Add option to set a background fill for Axis labels" by adding a new method Graph::SetAxisLabelBackground() which will allow a client to specify a number of different variants of background for the labels on the primary X and Y axis.
-	Modified files: jpgraph.php
-
-r259: 2005-11-23 16:25  ljp
-
-	* Added Class MGraph in jpgraph_utils.inc. This is a utility class that can be used to easily combine several graphs into one image
-	Modified files: jpgraph_utils.inc
-
-r258: 2005-11-23 16:04  ljp
-
-	* Updated manual tick example to show X-grid as well to better illustrate the differenc between major and minor tick marks
-	Modified files: Examples/manualtickex1.php
-
-r256: 2005-11-23 05:38  ljp
-
-	* Updated the manual tick example to also make use of minor tick marks (without a label)
-	Modified files: Examples/manualtickex1.php
-
-r255: 2005-11-22 19:49  ljp
-
-	* Extended the manual tick positioning Axis::SetTickPosition() to also include the setting of the minor tick marks, i.e. tick marks without labels.
-	Modified files: jpgraph.php
-
-r253: 2005-11-21 19:35  ljp
-
-	* Added example for how to set manual tick positions
-	Modified files: Examples/manualtickex1.php
-
-r251: 2005-11-21 19:33  ljp
-
-	* Removed double entry in code table for greek characters
-	Modified files: jpgraph_utils.inc
-
-r246: 2005-11-20 12:11  ljp
-
-	* Adapted jpgraph_utils.inc for use in v1.x branch (for PHP4)
-	Modified files: jpgraph_utils.inc
-
-r245: 2005-11-20 12:07  ljp
-
-	* Copied jpgraph_utils to v1.x branch
-	Modified files: jpgraph_utils.inc
-
-r243: 2005-11-20 11:41  ljp
-
-	* Added CR#263. Possibility to have completely manual tick positions. One new method Axis::SetTickPositions($aTickPos,$aTickLabel) can be used to manually specify the exact positions for the ticks as well as an optional specified label. If no label array is specified then the labels will be determined by the scale value and any set formatting strings.
-	Modified files: jpgraph.php
-
-r242: 2005-11-20 11:34  ljp
-
-	* Removed newline at end of jpg-config.inc file since some Windows setups have problems with newlines
-	Modified files: jpg-config.inc
-
-r225: 2005-11-04 04:37  ljp
-
-	* Added parameter to SetTextLabelInterval()
-	Modified files: jpgraph.php
-
-r222: 2005-11-04 04:31  ljp
-
-	* Fix #253 Gradient in legends. Micro speeed improvement in min/max methods
-	Modified files: jpgraph_line.php
-
-r220: 2005-10-15 16:53  ljp
-
-	* Fix for issue #229. Special case when only having a single data point in date scale
-	Modified files: jpgraph_date.php
-
-r218: 2005-10-15 10:52  ljp
-
-	* Fix for issue #247 boundary check in while loop
-	Modified files: jpgraph_gantt.php
-
-r217: 2005-10-15 10:29  ljp
-
-	* Fix for feature request #243. Allow 1.x branch to be used in compatibility mode in PHP5
-	Modified files: jpgraph.php
-
-r215: 2005-10-14 17:39  ljp
-
-	* Fix for #251 where the ID attribute in the MAP tag makes it hard to save an CSIM image
-	Modified files: jpgraph.php
-
-r213: 2005-10-11 18:22  ljp
-
-	* Fix axis title positioning issue #248
-	Modified files: jpgraph_radar.php
-
-r211: 2005-10-06 16:29  ljp
-
-	* Fix for #244. Missing ALT value for CSIM for Bars
-	Modified files: jpgraph_bar.php
-
-r209: 2005-09-26 17:23  ljp
-
-	* Fix #231. Image markers are not rotated
-	Modified files: jpgraph_plotmark.inc
-
-r207: 2005-09-04 15:25  ljp
-
-	* PHP Bug workaround (#226)
-	Modified files: jpgraph.php
-
-r201: 2005-09-03 09:39  ljp
-
-	* Moved old directories up to dust
-	Modified files: barcode, jpgraph_gantt.php, pdf417, windrose
-
-r196: 2005-09-01 05:03  ljp
-
-	* Fixed #222 Gantt day header too small in some circumstances
-	Modified files: jpgraph_gantt.php
-
-r193: 2005-08-31 19:23  ljp
-
-	* Moved windrose word-doc to docs main directory
-	Modified files: windrose/windrose.doc
-
-r192: 2005-08-31 19:22  ljp
-
-	* Removed html dir in windrose
-	Modified files: windrose/html
-
-r191: 2005-08-31 19:21  ljp
-
-	* UTF8 directory from windrose and moved it to asian_lang instead
-	Modified files: windrose/utf8
-
-r190: 2005-08-31 19:19  ljp
-
-	* Moved Example in UTF8 windrose to asian_lang
-	Modified files: windrose/utf8/Examples, windrose/utf8/jpgraph.php,
-	  windrose/utf8/jpgraph_gradient.php,
-	  windrose/utf8/jpgraph_plotmark.inc,
-	  windrose/utf8/jpgraph_windrose.php
-
-r186: 2005-08-31 19:06  ljp
-
-	* Moved windrose img to main docs directory
-	Modified files: windrose/img
-
-r185: 2005-08-31 19:06  ljp
-
-	* Moved windrose docs to main docs directory
-	Modified files: windrose/manual.book, windrose/manualpdf.book,
-	  windrose/polar_function_3.gif, windrose/windrose.png,
-	  windrose/windrose_html_manual, windrose/windrose_manual.php
-
-r184: 2005-08-31 16:17  ljp
-
-	* Added possibility to create icons and backgrounds from strings
-	Modified files: jpgraph.php, jpgraph_iconplot.php,
-	  tests/test_lineiconstring.php
-
-r176: 2005-08-29 23:25  ljp
-
-	* Cleaned up windrose directory
-	Modified files: windrose/contour.gif, windrose/contour.png,
-	  windrose/dust, windrose/dust/contour.gif,
-	  windrose/dust/contour.png, windrose/dust/jpgraph_windrose-1.0.php,
-	  windrose/dust/jpgraph_windrose-1.05.php,
-	  windrose/dust/jpgraph_windrose-1.0beta.php,
-	  windrose/dust/mockup_ex1.png, windrose/dust/windchart_3.gif,
-	  windrose/dust/windrose-1.1.tar.gz,
-	  windrose/dust/windrose_manual-1.0.php,
-	  windrose/dust/windrose_manual-1.0beta.php,
-	  windrose/jpgraph_windrose-1.0.php,
-	  windrose/jpgraph_windrose-1.05.php,
-	  windrose/jpgraph_windrose-1.0beta.php, windrose/mockup_ex1.png,
-	  windrose/windchart_3.gif, windrose/windrose-1.0.tar.gz,
-	  windrose/windrose-1.1, windrose/windrose-1.1.tar.gz,
-	  windrose/windrose_manual-1.0.php,
-	  windrose/windrose_manual-1.0beta.php
-
-r175: 2005-08-29 23:18  ljp
-
-	* Removed wrong jpgtutlib link
-	Modified files: windrose/jpgtutlib.inc
-
-r174: 2005-08-29 23:13  ljp
-
-	* Removed old sym links to jpgraph.php etc
-	Modified files: barcode/jpgraph.php, barcode/jpgraph_canvas.php
-
-r173: 2005-08-29 23:12  ljp
-
-	* Removed wrong barcode demoapp directory
-	Modified files: barcode/barcode_demoapp
-
-r172: 2005-08-29 23:12  ljp
-
-	* Removed barcode examples from it's old location
-	Modified files: barcode/barcode_ex0.php, barcode/barcode_ex1.php,
-	  barcode/barcode_ex2.php, barcode/barcode_ex3.php,
-	  barcode/barcode_ex4.php
-
-r171: 2005-08-29 23:08  ljp
-
-	* Changed path for windrose examples
-	Modified files: windrose_examples/windrose_ex0.php,
-	  windrose_examples/windrose_ex1.php,
-	  windrose_examples/windrose_ex1b.php,
-	  windrose_examples/windrose_ex2.php,
-	  windrose_examples/windrose_ex3.php,
-	  windrose_examples/windrose_ex4.php,
-	  windrose_examples/windrose_ex5.php,
-	  windrose_examples/windrose_ex6.php,
-	  windrose_examples/windrose_ex7.php,
-	  windrose_examples/windrose_ex8.php,
-	  windrose_examples/windrose_ex9.php
-
-r170: 2005-08-29 23:05  ljp
-
-	* Changed path for all PDF417 examples
-	Modified files: pdf417_examples/pdf417_ex1.php,
-	  pdf417_examples/pdf417_ex2.php, pdf417_examples/pdf417_ex3.php,
-	  pdf417_examples/pdf417_ex4.php, pdf417_examples/pdf417_ex5.php,
-	  pdf417_examples/pdf417_ex6.php
-
-r169: 2005-08-29 22:50  ljp
-
-	* Removed .directory
-	Modified files: windrose_examples/.directory
-
-r168: 2005-08-29 22:46  ljp
-
-	* Updated directory structure to match release structure
-	Modified files: barcode/barcode_demoapp,
-	  barcode/barcode_image.php, barcode/barcode_menu.php,
-	  barcode/index.html, barcode/jpgraph_barcode.php, barcode_demoapp,
-	  barcode_demoapp/barcode_image.php,
-	  barcode_demoapp/barcode_menu.php, barcode_demoapp/index.html,
-	  barcode_examples, barcode_examples/barcode_ex0.php,
-	  barcode_examples/barcode_ex1.php,
-	  barcode_examples/barcode_ex2.php,
-	  barcode_examples/barcode_ex3.php,
-	  barcode_examples/barcode_ex4.php, jpgraph_barcode.php,
-	  jpgraph_pdf417.php, odo_examples, odoexamples, pdf417/Examples,
-	  pdf417/demoapp, pdf417/jpgraph_pdf417.php,
-	  pdf417/pdf417_backends.inc, pdf417/pdf417_clusters.inc,
-	  pdf417/pdf417_compressors.inc, pdf417/pdf417_error.inc,
-	  pdf417_backends.inc, pdf417_clusters.inc, pdf417_compressors.inc,
-	  pdf417_demoapp, pdf417_demoapp/pdf417_demo_image.php,
-	  pdf417_error.inc, pdf417_examples, windrose/examples,
-	  windrose_examples
-
-r167: 2005-08-29 22:41  ljp
-
-	* Made Y2 axis default always at the right end of X
-	Modified files: jpgraph.php
-
-r166: 2005-08-29 22:35  ljp
-
-	* Changed include path for pdf417 demo app
-	Modified files: pdf417/demoapp/pdf417_demo_image.php
-
-r91: 2005-08-27 23:03  ljp
-
-	* Updted jpdocgen to skip returning object with &
-	Modified files: utils/jpdocgen/jpgendb.php
-
-r90: 2005-08-27 23:02  ljp
-
-	* Added more test scripts
-	Modified files: tests/bug_axisy2title.php, tests/gdtest.php,
-	  tests/test_axisy2.php, tests/test_baraccint.php,
-	  tests/test_baraccnull.php, tests/test_bb2671.php,
-	  tests/test_bug144.php, tests/test_bug148.php,
-	  tests/test_bug189.php, tests/test_bug190.php,
-	  tests/test_bug191.php, tests/test_bug197.php,
-	  tests/test_bug203.php, tests/test_bug3.php, tests/test_bug58.php,
-	  tests/test_bug9.php, tests/test_dateaxis3.php,
-	  tests/test_dateaxisy2.php, tests/test_datesparse.php,
-	  tests/test_datesparsebug.php, tests/test_datprobug.php,
-	  tests/test_fieldrot.php, tests/test_gantt.php,
-	  tests/test_ganttcsim.php, tests/test_horizbarcsim.php,
-	  tests/test_legendbox.php, tests/test_line.php,
-	  tests/test_linebug-104.php, tests/test_linesimple.php,
-	  tests/test_logline.php, tests/test_multiline.php,
-	  tests/test_patternbug.php, tests/test_piecsim.php,
-	  tests/test_pietheme.php, tests/test_scattermark.php,
-	  tests/test_scatternulls.php, tests/test_textalign.php,
-	  tests/test_ttf.php, tests/test_ttfread.php
-
-r88: 2005-08-07 17:18  ljp
-
-	* Chnaged some count() in for loop to a variable instead. Minor formatting change to date class
-	Modified files: jpgraph.php, jpgraph_date.php, jpgraph_error.php,
-	  jpgraph_gantt.php, jpgraph_pie.php, jpgraph_radar.php
-
-r86: 2005-07-12 17:55  ljp
-
-	* Feature #208. Added WindrosePlot::SetRangeStyle()
-	Modified files: jpgraph_windrose.php,
-	  windrose/examples/windrose_ex1b.php
-
-r84: 2005-07-10 18:22  ljp
-
-	* Added debug lines in legend and fine-tuned calculation of legend height
-	Modified files: jpgraph.php
-
-r82: 2005-07-09 21:23  ljp
-
-	* Fixed #196 - Better layout for legend box
-	Modified files: jpgraph.php
-
-r76: 2005-06-25 21:59  ljp
-
-	* Final fix for bug #191 by commenting out some strange adjustment Stroke() for accbar plot
-	Modified files: jpgraph_bar.php
-
-r75: 2005-06-25 21:59  ljp
-
-	* Fix for possible undefined CSIM alt tag. Bumbped version number to 1.19dev
-	Modified files: jpgraph.php
-
-r73: 2005-06-25 11:16  ljp
-
-	* Make sure pie csim center coordinates are integers
-	Modified files: jpgraph_pie.php
-
-r72: 2005-06-22 21:28  ljp
-
-	* Added zero option to line interpolation
-	Modified files: jpgraph_line.php
-
-r69: 2005-06-17 19:46  ljp
-
-	* Added linear interpolation for acc lines (#189)
-	Modified files: jpgraph_line.php
-
-r68: 2005-06-16 21:29  ljp
-
-	* Propset Id
-	Modified files: barcode/jpgraph_barcode.php
-
-r67: 2005-06-16 21:24  ljp
-
-	* Added Id tag
-	Modified files: barcode/jpgraph_barcode.php
-
-r65: 2005-06-16 21:18  ljp
-
-	* Implemented multipe data chunks for EAN128
-	Modified files: barcode/jpgraph_barcode.php
-
-r63: 2005-06-10 04:55  ljp
-
-	* Added individual legend mark size for horiz/vert (#144)
-	Modified files: jpgraph.php
-
-r60: 2005-06-08 11:04  ljp
-
-	* Better handling of bars with an Absolute Width (#190)
-	Modified files: jpgraph.php, jpgraph_bar.php
-
-r58: 2005-06-08 09:21  ljp
-
-	* Compensation for handling of barcenter number of data points (#190)
-	Modified files: jpgraph.php
-
-r56: 2005-06-06 20:14  ljp
-
-	* Fixed HideTicks for log scale (#90)
-	Modified files: jpgraph_log.php
-
-r53: 2005-06-06 18:12  ljp
-
-	* Fix so that 'x' and '-' are interpretated as null in ScatterPlot
-	Modified files: jpgraph_scatter.php
-
-r51: 2005-06-06 16:08  ljp
-
-	* Fix for #188 CSIM for Titles in PieGraphs
-	Modified files: jpgraph_pie.php
-
-r49: 2005-06-06 14:46  ljp
-
-	* Fixed wrong parameter to imagefilledarc() in CakeSlice() #66
-	Modified files: jpgraph.php
-
-r46: 2005-06-06 13:59  ljp
-
-	* Fixed rounding problem #164
-	Modified files: jpgraph_windrose.php
-
-r45: 2005-06-06 13:48  ljp
-
-	* Fixed problem with AccBar PreStrokeAdjust #103
-	Modified files: jpgraph_bar.php
-
-r42: 2005-06-06 13:08  ljp
-
-	* Fixed remaining problem with single slice Pie and CSIM (#107)
-	Modified files: jpgraph_pie.php
-
-r41: 2005-06-06 10:46  ljp
-
-	* Better (X)HTML compliance for generated CSIM HTML
-	Modified files: jpgraph.php, jpgraph_bar.php, jpgraph_gantt.php,
-	  jpgraph_pie.php, jpgraph_pie3d.php, jpgraph_plotmark.inc,
-	  jpgraph_stock.php
-
-r38: 2005-06-06 10:12  ljp
-
-	* Added formatting callback #172
-	Modified files: jpgraph_radar.php
-
-r36: 2005-06-06 10:03  ljp
-
-	* Fixed anti-alias pie problem #71
-	Modified files: jpgraph_pie.php
-
-r35: 2005-06-05 23:05  ljp
-
-	* Test scale positioned icon
-	Modified files: tests/test_barscaleicon.php
-
-r28: 2005-06-05 16:36  ljp
-
-	* More example for guide-lines and date axis
-	Modified files: Examples/dateaxisex2.php,
-	  Examples/dateaxisex3.php, Examples/dateaxisex4.php,
-	  Examples/pielabelsex1.php, Examples/pielabelsex4.php,
-	  jpgraph_date.php, tests/test_barpattern.php,
-	  tests/test_ganttsimple.php, tests/test_pienewlabels.php
-
-r26: 2005-06-05 15:33  ljp
-
-	* Added SetTimeAlign() and adjusted constants
-	Modified files: jpgraph_date.php
-
-r24: 2005-06-05 11:51  ljp
-
-	* Some small backporting from v2 branch to handle arrays in Add()
-	Modified files: jpgraph_pie.php
-
-r23: 2005-06-05 11:31  ljp
-
-	* Added pie guide line examples
-	Modified files: Examples/pielabelsex1.php,
-	  Examples/pielabelsex2.php, Examples/pielabelsex3.php
-
-r21: 2005-05-30 20:35  ljp
-
-	* Added Id keyword property
-	Modified files: Todo, flags_full.inc, imgdata_balls.inc,
-	  imgdata_bevels.inc, imgdata_diamonds.inc, imgdata_pushpins.inc,
-	  imgdata_squares.inc, imgdata_stars.inc, jpg-config.inc,
-	  jpgraph.php, jpgraph_antispam-digits.php, jpgraph_antispam.php,
-	  jpgraph_bar.php, jpgraph_canvas.php, jpgraph_canvtools.php,
-	  jpgraph_date.php, jpgraph_error.php, jpgraph_flags.php,
-	  jpgraph_gantt.php, jpgraph_gb2312.php, jpgraph_gradient.php,
-	  jpgraph_iconplot.php, jpgraph_imgtrans.php, jpgraph_line.php,
-	  jpgraph_log.php, jpgraph_odo.php, jpgraph_pie.php,
-	  jpgraph_pie3d.php, jpgraph_plotband.php, jpgraph_plotmark.inc,
-	  jpgraph_polar.php, jpgraph_radar.php, jpgraph_regstat.php,
-	  jpgraph_scatter.php, jpgraph_stock.php, jpgraph_windrose.php
-
-r18: 2005-05-29 18:16  ljp
-
-	* Adaption for icon plot new behaviour in jpgraph.php
-	Modified files: jpgraph_gantt.php
-
-r17: 2005-05-29 15:30  ljp
-
-	* Fix icon positioning
-	Modified files: jpgraph.php, jpgraph_iconplot.php
-
-r13: 2005-05-29 10:40  ljp
-
-	* Added test_barsmallicon test_radarticks2
-	Modified files: tests/test_barsmallicon.php,
-	  tests/test_radarticks2.php
-
-r10: 2005-05-29 10:11  ljp
-
-	* Fixed #181, #182 Scale positions for icon plots and also add rotation of icons
-	Modified files: jpgraph.php, jpgraph_iconplot.php
-
diff --git a/nightly-test-server/jpgraph/Examples/accbarex1.php b/nightly-test-server/jpgraph/Examples/accbarex1.php
deleted file mode 100644
index 2af8062..0000000
--- a/nightly-test-server/jpgraph/Examples/accbarex1.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(-8,8,9,3,5,6);
-$data2y=array(18,2,1,7,5,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(500,400,"auto"); 
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b1plot->value->Show();
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$b2plot->value->Show();
-
-// Create the grouped bar plot
-$gbplot = new AccBarPlot(array($b1plot,$b2plot));
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Accumulated bar plots");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/alphabarex1.php b/nightly-test-server/jpgraph/Examples/alphabarex1.php
deleted file mode 100644
index f873040..0000000
--- a/nightly-test-server/jpgraph/Examples/alphabarex1.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$datay1=array(140,110,50,60);
-$datay2=array(35,90,190,190);
-$datay3=array(20,60,70,140);
-
-// Create the basic graph
-$graph = new Graph(450,250,'auto');	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(40,80,30,40);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.02,0.15);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.3');
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Set a nice summer (in Stockholm) image
-$graph->SetBackgroundImage('stship.jpg',BGIMG_COPY);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('white');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('white');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using alpha blending with a background');
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('orange@0.4');
-$bplot2->SetFillColor('brown@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/antispamex01.php b/nightly-test-server/jpgraph/Examples/antispamex01.php
deleted file mode 100644
index f34e52c..0000000
--- a/nightly-test-server/jpgraph/Examples/antispamex01.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-// Antispam example using a random string
-require_once "../jpgraph_antispam.php";
-
-// Create new anti-spam challenge creator
-// Note: Neither '0' (digit) or 'O' (letter) can be used to avoid confusion
-$spam = new AntiSpam();
-
-// Create a random 5 char challenge and return the string generated
-$chars = $spam->Rand(5);
-
-// Stroke random cahllenge
-if( $spam->Stroke() === false ) {
-    die('Illegal or no data to plot');
-}
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/backgroundex01.php b/nightly-test-server/jpgraph/Examples/backgroundex01.php
deleted file mode 100644
index d7c804d..0000000
--- a/nightly-test-server/jpgraph/Examples/backgroundex01.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(28,19,18,23,12,11);
-$data2y = array(14,18,33,29,39,55);
-
-// A nice graph with anti-aliasing
-$graph = new Graph(400,200,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLPLOT);
-
-// Adjust brightness and contrast for background image
-// must be between -1 <= x <= 1, (0,0)=original image
-$graph->AdjBackgroundImage(0,0);
-
-$graph->img->SetAntiAliasing("white");
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Background image");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("New tiger -99");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/backgroundex02.php b/nightly-test-server/jpgraph/Examples/backgroundex02.php
deleted file mode 100644
index 0805fe4..0000000
--- a/nightly-test-server/jpgraph/Examples/backgroundex02.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(28,19,18,23,12,11);
-$data2y = array(14,18,33,29,39,55);
-
-// A nice graph with anti-aliasing
-$graph = new Graph(400,200,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-
-$graph->img->SetAntiAliasing("white");
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Background image");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("New tiger -99");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/backgroundex03.php b/nightly-test-server/jpgraph/Examples/backgroundex03.php
deleted file mode 100644
index 587dbd3..0000000
--- a/nightly-test-server/jpgraph/Examples/backgroundex03.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(28,19,18,23,12,11);
-$data2y = array(14,18,33,29,39,55);
-
-// A nice graph with anti-aliasing
-$graph = new Graph(400,200,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_COPY);
-
-$graph->img->SetAntiAliasing("white");
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Background image");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("New tiger -99");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/balloonex1.php b/nightly-test-server/jpgraph/Examples/balloonex1.php
deleted file mode 100644
index a223680..0000000
--- a/nightly-test-server/jpgraph/Examples/balloonex1.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-// Some data
-$datax = array(1,2,3,4,5,6,7,8);
-$datay = array(12,23,95,18,65,28,86,44);
-// Callback for markers
-// Must return array(width,color,fill_color)
-// If any of the returned values are "" then the
-// default value for that parameter will be used.
-function FCallback($aVal) {
-    // This callback will adjust the fill color and size of
-    // the datapoint according to the data value according to
-    if( $aVal < 30 ) $c = "blue";
-    elseif( $aVal < 70 ) $c = "green";
-    else $c="red";
-    return array(floor($aVal/3),"",$c);
-}
-
-// Setup a basic graph
-$graph = new Graph(400,300,'auto');
-$graph->SetScale("linlin");
-$graph->img->SetMargin(40,100,40,40);		
-$graph->SetShadow();
-$graph->title->Set("Example of ballon scatter plot");
-// Use a lot of grace to get large scales
-$graph->yaxis->scale->SetGrace(50,10);
-
-// Make sure X-axis as at the bottom of the graph
-$graph->xaxis->SetPos('min');
-
-// Create the scatter plot
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-
-// Uncomment the following two lines to display the values
-$sp1->value->Show();
-$sp1->value->SetFont(FF_FONT1,FS_BOLD);
-
-// Specify the callback
-$sp1->mark->SetCallback("FCallback");
-
-// Setup the legend for plot
-$sp1->SetLegend('Year 2002');
-
-// Add the scatter plot to the graph
-$graph->Add($sp1);
-
-// ... and send to browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bar2scalesex1.php b/nightly-test-server/jpgraph/Examples/bar2scalesex1.php
deleted file mode 100644
index 4f34b28..0000000
--- a/nightly-test-server/jpgraph/Examples/bar2scalesex1.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(20,30,50,80);
-$datay2=array(430,645,223,690);
-$datazero=array(0,0,0,0);
-
-// Create the graph. 
-$graph = new Graph(450,200);
-$graph->title->Set('Example with 2 scale bars');
-
-// Setup Y and Y2 scales with some "grace"	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->yaxis->scale->SetGrace(30);
-$graph->y2axis->scale->SetGrace(30);
-
-//$graph->ygrid->Show(true,true);
-$graph->ygrid->SetColor('gray','lightgray@0.5');
-
-// Setup graph colors
-$graph->SetMarginColor('white');
-$graph->y2axis->SetColor('darkred');
-
-
-// Create the "dummy" 0 bplot
-$bplotzero = new BarPlot($datazero);
-
-// Create the "Y" axis group
-$ybplot1 = new BarPlot($datay);
-$ybplot1->value->Show();
-$ybplot = new GroupBarPlot(array($ybplot1,$bplotzero));
-
-// Create the "Y2" axis group
-$ybplot2 = new BarPlot($datay2);
-$ybplot2->value->Show();
-$ybplot2->value->SetColor('darkred');
-$ybplot2->SetFillColor('darkred');
-$y2bplot = new GroupBarPlot(array($bplotzero,$ybplot2));
-
-// Add the grouped bar plots to the graph
-$graph->Add($ybplot);
-$graph->AddY2($y2bplot);
-
-// .. and finally stroke the image back to browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bar_csimex1.php b/nightly-test-server/jpgraph/Examples/bar_csimex1.php
deleted file mode 100644
index 9783b59..0000000
--- a/nightly-test-server/jpgraph/Examples/bar_csimex1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-
-$datay=array(12,26,9,17,31);
-
-// Create the graph. 
-// One minute timeout for the cached image
-// INLINE_NO means don't stream it back to the browser.
-$graph = new Graph(310,250,'auto');
-$graph->SetScale("textlin");
-$graph->img->SetMargin(60,30,20,40);
-$graph->yaxis->SetTitleMargin(45);
-$graph->yaxis->scale->SetGrace(30);
-$graph->SetShadow();
-
-// Turn the tickmarks
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Create targets for the image maps. One for each column
-$targ=array("bar_clsmex1.php#1","bar_clsmex1.php#2","bar_clsmex1.php#3","bar_clsmex1.php#4","bar_clsmex1.php#5","bar_clsmex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$bplot->SetCSIMTargets($targ,$alts);
-$bplot->SetFillColor("orange");
-
-// Use a shadow on the bar graphs (just use the default settings)
-$bplot->SetShadow();
-$bplot->value->SetFormat(" $ %2.1f",70);
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->SetColor("blue");
-$bplot->value->Show();
-
-$graph->Add($bplot);
-
-$graph->title->Set("Image maps barex1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('bar_csimex1.php','bar_csimex1');
-
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bar_csimex2.php b/nightly-test-server/jpgraph/Examples/bar_csimex2.php
deleted file mode 100644
index fbaf010..0000000
--- a/nightly-test-server/jpgraph/Examples/bar_csimex2.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,12,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,'auto');
-$graph->SetScale("textlin");
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$targ=array("bar_clsmex2.php#1","bar_clsmex2.php#2","bar_clsmex2.php#3",
-"bar_clsmex2.php#4","bar_clsmex2.php#5","bar_clsmex2.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b1plot->SetCSIMTargets($targ,$alts);
-
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$targ=array("bar_clsmex2.php#7","bar_clsmex2.php#8","bar_clsmex2.php#9",
-"bar_clsmex2.php#10","bar_clsmex2.php#11","bar_clsmex2.php#12");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b2plot->SetCSIMTargets($targ,$alts);
-
-// Create the grouped bar plot
-$abplot = new AccBarPlot(array($b1plot,$b2plot));
-
-$abplot->SetShadow();
-$abplot->value->Show();
-
-// ...and add it to the graPH
-$graph->Add($abplot);
-
-$graph->title->Set("Image map barex2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('bar_csimex2.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bar_csimex3.php b/nightly-test-server/jpgraph/Examples/bar_csimex3.php
deleted file mode 100644
index 9844738..0000000
--- a/nightly-test-server/jpgraph/Examples/bar_csimex3.php
+++ /dev/null
@@ -1,88 +0,0 @@
-<?php
-// $Id$
-// Horiontal bar graph with image maps
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(5,8,19,3,10,5);
-$data2y=array(12,2,12,7,14,4);
-
-// Setup the basic parameters for the graph
-$graph = new Graph(400,700);
-$graph->SetAngle(90);
-$graph->SetScale("textlin");
-
-// The negative margins are necessary since we
-// have rotated the image 90 degress and shifted the 
-// meaning of width, and height. This means that the 
-// left and right margins now becomes top and bottom
-// calculated with the image width and not the height.
-$graph->img->SetMargin(-80,-80,210,210);
-
-$graph->SetMarginColor('white');
-
-// Setup title for graph
-$graph->title->Set('Horizontal bar graph');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->subtitle->Set("With image map\nNote: The URL just points back to this image");
-
-// Setup X-axis.
-$graph->xaxis->SetTitle("X-title",'center');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetAngle(90);
-$graph->xaxis->SetTitleMargin(30);
-$graph->xaxis->SetLabelMargin(15);
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Setup Y-axis
-
-// First we want it at the bottom, i.e. the 'max' value of the
-// x-axis
-$graph->yaxis->SetPos('max');
-
-// Arrange the title
-$graph->yaxis->SetTitle("Turnaround (mkr)",'center');
-$graph->yaxis->SetTitleSide(SIDE_RIGHT);
-$graph->yaxis->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->yaxis->title->SetAngle(0);
-$graph->yaxis->title->Align('center','top');
-$graph->yaxis->SetTitleMargin(30);
-
-// Arrange the labels
-$graph->yaxis->SetLabelSide(SIDE_RIGHT);
-$graph->yaxis->SetLabelAlign('center','top');
-
-// Create the bar plots with image maps
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$targ=array("bar_clsmex2.php#1","bar_clsmex2.php#2","bar_clsmex2.php#3",
-            "bar_clsmex2.php#4","bar_clsmex2.php#5","bar_clsmex2.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b1plot->SetCSIMTargets($targ,$alts);
-
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$targ=array("bar_clsmex2.php#7","bar_clsmex2.php#8","bar_clsmex2.php#9",
-            "bar_clsmex2.php#10","bar_clsmex2.php#11","bar_clsmex2.php#12");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$b2plot->SetCSIMTargets($targ,$alts);
-
-// Create the accumulated bar plot
-$abplot = new AccBarPlot(array($b1plot,$b2plot));
-$abplot->SetShadow();
-
-// We want to display the value of each bar at the top
-$abplot->value->Show();
-$abplot->value->SetFont(FF_FONT1,FS_NORMAL);
-$abplot->value->SetAlign('left','center');
-$abplot->value->SetColor("black","darkred");
-$abplot->value->SetFormat('%.1f mkr');
-
-// ...and add it to the graph
-$graph->Add($abplot);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('bar_csimex3.php','bar_csimex3');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barformatcallbackex1.php b/nightly-test-server/jpgraph/Examples/barformatcallbackex1.php
deleted file mode 100644
index b1f136f..0000000
--- a/nightly-test-server/jpgraph/Examples/barformatcallbackex1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data = array(0.1235,0.4567,0.67,0.45,0.832);
-
-// Callback function
-// Get called with the actual value and should return the
-// value to be displayed as a string
-function cbFmtPercentage($aVal) {
-    return sprintf("%.1f%%",100*$aVal); // Convert to string
-}
-
-// Create the graph. 
-$graph = new Graph(400,300);	
-$graph->SetScale("textlin");
-
-// Create a bar plots
-$bar1 = new BarPlot($data);
-
-// Setup the callback function
-$bar1->value->SetFormatCallback("cbFmtPercentage");
-$bar1->value->Show();
-
-// Add the plot to the graph
-$graph->Add($bar1);
-
-// .. and send the graph back to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex1.php b/nightly-test-server/jpgraph/Examples/bargradex1.php
deleted file mode 100644
index eb5e880..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex1.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(0.13,0.25,0.21,0.35,0.31,0.06);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,20,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("lightblue");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Bar gradient (Left reflection)");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","#EEEEEE",GRAD_LEFT_REFLECTION);
-
-// Set color for the frame of each bar
-$bplot->SetColor("white");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex2.php b/nightly-test-server/jpgraph/Examples/bargradex2.php
deleted file mode 100644
index cc8e66a..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex2.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(-0.13,0.25,-0.21,0.35,0.31,0.04);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,20,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("silver");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Example negative bars");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,18);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-$graph->xaxis->SetColor("black","red");
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,11);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","steelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex3.php b/nightly-test-server/jpgraph/Examples/bargradex3.php
deleted file mode 100644
index f9454b6..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex3.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(-0.13,0.25,-0.21,0.35,0.31,0.04);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,20,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("silver");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Example negative bars");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,16);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","steelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex4.php b/nightly-test-server/jpgraph/Examples/bargradex4.php
deleted file mode 100644
index 00a6a66..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex4.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 19:44
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(0.3031,0.3044,0.3049,0.3040,0.3024,0.3047);
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,30,30,40);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("teal");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Bargraph with small variations");
-$graph->title->SetColor("white");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12);
-
-// Setup color for axis and labels
-$graph->xaxis->SetColor("black","white");
-$graph->yaxis->SetColor("black","white");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Setup X-axis title (color & font)
-$graph->xaxis->title->Set("X-axis");
-$graph->xaxis->title->SetColor("white");
-$graph->xaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$tcol=array(100,100,255);
-$fcol=array(255,100,100);
-$bplot->SetFillGradient($fcol,$tcol,GRAD_HOR);
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex5.php b/nightly-test-server/jpgraph/Examples/bargradex5.php
deleted file mode 100644
index 6ea062f..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex5.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 19:44
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-// We need some data
-$datay=array(0.3031,0.3044,0.3049,0.3040,0.3024,0.3047);
-
-// Setup the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->img->SetMargin(60,30,30,40);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("teal");
-$graph->SetShadow();
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// This is how you make the bar graph start from something other than 0
-$bplot->SetYMin(0.302);
-
-// Setup color for gradient fill style 
-$tcol=array(100,100,255);
-$fcol=array(255,100,100);
-$bplot->SetFillGradient($fcol,$tcol,GRAD_HOR);
-$bplot->SetFillColor("orange");
-$graph->Add($bplot);
-
-// Set up the title for the graph
-$graph->title->Set("Bargraph which doesn't start from y=0");
-$graph->title->SetColor("yellow");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12);
-
-// Setup color for axis and labels
-$graph->xaxis->SetColor("black","white");
-$graph->yaxis->SetColor("black","white");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Setup X-axis title (color & font)
-$graph->xaxis->title->Set("X-axis");
-$graph->xaxis->title->SetColor("white");
-$graph->xaxis->title->SetFont(FF_VERDANA,FS_BOLD,10);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradex6.php b/nightly-test-server/jpgraph/Examples/bargradex6.php
deleted file mode 100644
index b3b7bd1..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradex6.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-// Example for use of JpGraph, 
-// ljp, 01/03/01 20:32
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(-0.13,0.25,-0.21,0.35,0.31,0.04);
-$datax=array("Jan","Feb","Mar","Apr","May","June");
-
-// Setup the graph. 
-$graph = new Graph(500,200,"auto");	
-$graph->img->SetMargin(60,150,30,50);
-$graph->SetScale("textlin");
-$graph->SetMarginColor("silver");
-$graph->SetShadow();
-
-// Set up the title for the graph
-$graph->title->Set("Example negative bars");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,16);
-$graph->title->SetColor("darkred");
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,10);
-
-// Show 0 label on Y-axis (default is not to show)
-$graph->yscale->ticks->SupressZeroLabel(false);
-
-// Setup X-axis labels
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetLabelAngle(50);
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-$bplot->SetLegend("Result 1999","blue");
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","steelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex1.php b/nightly-test-server/jpgraph/Examples/bargradsmallex1.php
deleted file mode 100644
index 10b60be..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex1.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_MIDVER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex2.php b/nightly-test-server/jpgraph/Examples/bargradsmallex2.php
deleted file mode 100644
index 5761008..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_MIDHOR"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_MIDHOR);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex3.php b/nightly-test-server/jpgraph/Examples/bargradsmallex3.php
deleted file mode 100644
index c16eaa6..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex3.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_HOR"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_HOR);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex4.php b/nightly-test-server/jpgraph/Examples/bargradsmallex4.php
deleted file mode 100644
index 63bf0a7..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex4.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_VER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_VER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex5.php b/nightly-test-server/jpgraph/Examples/bargradsmallex5.php
deleted file mode 100644
index f9f738b..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex5.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_WIDE_MIDVER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_WIDE_MIDVER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex6.php b/nightly-test-server/jpgraph/Examples/bargradsmallex6.php
deleted file mode 100644
index b762a87..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex6.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_WIDE_MIDHOR"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_WIDE_MIDHOR);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex7.php b/nightly-test-server/jpgraph/Examples/bargradsmallex7.php
deleted file mode 100644
index cb18edc..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex7.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_CENTER"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient("navy","lightsteelblue",GRAD_CENTER);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bargradsmallex8.php b/nightly-test-server/jpgraph/Examples/bargradsmallex8.php
deleted file mode 100644
index a1a0ea9..0000000
--- a/nightly-test-server/jpgraph/Examples/bargradsmallex8.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// We need some data
-$datay=array(4,8,6);
-
-// Setup the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(25,15,25,25);
-
-$graph->title->Set('"GRAD_RAISED_PANEL"');
-$graph->title->SetColor('darkred');
-
-// Setup font for axis
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->yaxis->SetFont(FF_FONT1);
-
-// Create the bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetWidth(0.6);
-
-// Setup color for gradient fill style 
-$bplot->SetFillGradient('navy','orange',GRAD_RAISED_PANEL);
-
-// Set color for the frame of each bar
-$bplot->SetColor("navy");
-$graph->Add($bplot);
-
-// Finally send the graph to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barimgex1.php b/nightly-test-server/jpgraph/Examples/barimgex1.php
deleted file mode 100644
index 324adda..0000000
--- a/nightly-test-server/jpgraph/Examples/barimgex1.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-$datay=array(5,3,11,6,3);
-
-$graph = new Graph(400,300,'auto');	
-$graph->SetScale("textlin");
-
-$graph->title->Set('Images on top of bars');
-$graph->title->SetFont(FF_VERA,FS_BOLD,13);
-
-$graph->SetTitleBackground('lightblue:1.1',TITLEBKG_STYLE1,TITLEBKG_FRAME_BEVEL);
-
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-
-$lplot = new LinePlot($datay);
-//$lplot->SetColor('white@1');
-$lplot->SetBarCenter();
-$lplot->mark->SetType(MARK_IMG_LBALL,'red');
-
-$graph->Add($bplot);
-$graph->Add($lplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barintex1.php b/nightly-test-server/jpgraph/Examples/barintex1.php
deleted file mode 100644
index 55c9eac..0000000
--- a/nightly-test-server/jpgraph/Examples/barintex1.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$datay=array(1,1,0.5);
-
-// Create the graph and setup the basic parameters 
-$graph = new Graph(460,200,'auto');	
-$graph->img->SetMargin(40,30,30,40);
-$graph->SetScale("textint");
-$graph->SetShadow();
-$graph->SetFrame(false); // No border around the graph
-
-// Add some grace to the top so that the scale doesn't
-// end exactly at the max value. 
-$graph->yaxis->scale->SetGrace(100);
-
-// Setup X-axis labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetFont(FF_FONT2);
-
-// Setup graph title ands fonts
-$graph->title->Set("Example of integer Y-scale");
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->Set("Year 2002");
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-                              
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-$bplot->SetShadow();
-
-// Setup the values that are displayed on top of each bar
-$bplot->value->Show();
-// Must use TTF fonts if we want text at an arbitrary angle
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD);
-$bplot->value->SetAngle(45);
-// Black color for positive values and darkred for negative values
-$bplot->value->SetColor("black","darkred");
-$graph->Add($bplot);
-
-// Finally stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barintex2.php b/nightly-test-server/jpgraph/Examples/barintex2.php
deleted file mode 100644
index 9047a1d..0000000
--- a/nightly-test-server/jpgraph/Examples/barintex2.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$datay=array(3,1,7,5,12,11,9,4,17);
-
-// Create the graph and setup the basic parameters 
-$graph = new Graph(460,200,'auto');	
-$graph->img->SetMargin(40,30,40,40);
-$graph->SetScale("textint");
-$graph->SetFrame(true,'blue',1); 
-$graph->SetColor('lightblue');
-$graph->SetMarginColor('lightblue');
-
-// Add some grace to the top so that the scale doesn't
-// end exactly at the max value. 
-$graph->yaxis->scale->SetGrace(20);
-
-// Setup X-axis labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->xaxis->SetColor('darkblue','black');
-
-// Stup "hidden" y-axis by given it the same color
-// as the background
-$graph->yaxis->SetColor('lightblue','darkblue');
-$graph->ygrid->SetColor('white');
-
-// Setup graph title ands fonts
-$graph->title->Set('Example of integer Y-scale');
-$graph->subtitle->Set('(With "hidden" y-axis)');
-
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->Set("Year 2002");
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-                              
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor('darkblue');
-$bplot->SetColor('darkblue');
-$bplot->SetWidth(0.5);
-$bplot->SetShadow('darkgray');
-
-// Setup the values that are displayed on top of each bar
-$bplot->value->Show();
-// Must use TTF fonts if we want text at an arbitrary angle
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,8);
-$bplot->value->SetFormat('$%d');
-// Black color for positive values and darkred for negative values
-$bplot->value->SetColor("black","darkred");
-$graph->Add($bplot);
-
-// Finally stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barline_csimex1.php b/nightly-test-server/jpgraph/Examples/barline_csimex1.php
deleted file mode 100644
index 9469956..0000000
--- a/nightly-test-server/jpgraph/Examples/barline_csimex1.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php 
-include ("../jpgraph.php"); 
-include ("../jpgraph_line.php"); 
-include ("../jpgraph_bar.php"); 
-
-$ydata = array(2,3,4,5,6,7,8,9,10,11); 
-$ydata2 = array(1,2,3,4,5,6,7,8,9,10); 
-$targ = array("#1","#2","#3","#4","#5","#6","#7","#8","#9","#10");
-$alt = array(1,2,3,4,5,6,7,8,9,10); 
-
-// Create the graph. 
-$graph = new Graph(300,200,"auto");     
-$graph->SetScale("textlin"); 
-$graph->img->SetMargin(40,20,30,40); 
-$graph->title->Set("CSIM example with bar and line"); 
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup axis titles
-$graph->xaxis->title->Set("X-title"); 
-$graph->yaxis->title->Set("Y-title"); 
-
-// Create the linear plot 
-$lineplot=new LinePlot($ydata); 
-$lineplot->mark->SetType(MARK_FILLEDCIRCLE);
-$lineplot->mark->SetWidth(5);
-$lineplot->mark->SetColor('black');
-$lineplot->mark->SetFillColor('red');
-$lineplot->SetCSIMTargets($targ,$alt);
-
-// Create line plot
-$barplot=new barPlot($ydata2); 
-$barplot->SetCSIMTargets($targ,$alt);
-
-// Add the plots to the graph 
-$graph->Add($lineplot); 
-$graph->Add($barplot); 
-
-$graph->StrokeCSIM('barline_csimex1.php');
-
-?> 
-
-
diff --git a/nightly-test-server/jpgraph/Examples/barlinealphaex1.php b/nightly-test-server/jpgraph/Examples/barlinealphaex1.php
deleted file mode 100644
index ec995c4..0000000
--- a/nightly-test-server/jpgraph/Examples/barlinealphaex1.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-// Some "random" data
-$ydata  = array(10,120,80,190,260,170,60,40,20,230);
-$ydata2 = array(10,70,40,120,200,60,80,40,20,5);
-
-// Get a list of month using the current locale
-$months = $gDateLocale->GetShortMonth();
-
-// Create the graph. 
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMarginColor('white');
-
-// Adjust the margin slightly so that we use the 
-// entire area (since we don't use a frame)
-$graph->SetMargin(30,1,20,5);
-
-// Box around plotarea
-$graph->SetBox(); 
-
-// No frame around the image
-$graph->SetFrame(false);
-
-// Setup the tab title
-$graph->tabtitle->Set('Year 2003');
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,10);
-
-// Setup the X and Y grid
-$graph->ygrid->SetFill(true,'#DDDDDD@0.5','#BBBBBB@0.5');
-$graph->ygrid->SetLineStyle('dashed');
-$graph->ygrid->SetColor('gray');
-$graph->xgrid->Show();
-$graph->xgrid->SetLineStyle('dashed');
-$graph->xgrid->SetColor('gray');
-
-// Setup month as labels on the X-axis
-$graph->xaxis->SetTickLabels($months);
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->xaxis->SetLabelAngle(45);
-
-// Create a bar pot
-$bplot = new BarPlot($ydata);
-$bplot->SetWidth(0.6);
-$fcol='#440000';
-$tcol='#FF9090';
-
-$bplot->SetFillGradient($fcol,$tcol,GRAD_LEFT_REFLECTION);
-
-// Set line weigth to 0 so that there are no border
-// around each bar
-$bplot->SetWeight(0);
-
-$graph->Add($bplot);
-
-// Create filled line plot
-$lplot = new LinePlot($ydata2);
-$lplot->SetFillColor('skyblue@0.5');
-$lplot->SetColor('navy@0.7');
-$lplot->SetBarCenter();
-
-$lplot->mark->SetType(MARK_SQUARE);
-$lplot->mark->SetColor('blue@0.5');
-$lplot->mark->SetFillColor('lightblue');
-$lplot->mark->SetSize(6);
-
-$graph->Add($lplot);
-
-// .. and finally send it back to the browser
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barlinefreq_csimex1.php b/nightly-test-server/jpgraph/Examples/barlinefreq_csimex1.php
deleted file mode 100644
index 0af5d86..0000000
--- a/nightly-test-server/jpgraph/Examples/barlinefreq_csimex1.php
+++ /dev/null
@@ -1,100 +0,0 @@
-<?php
-//
-// Example of CSIM frequence bar that uses the cache
-//
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-include_once ("../jpgraph_line.php");
-
-
-// Utility function to calculate the accumulated frequence
-// for a set of values and ocurrences
-function accfreq($data) {
-    rsort($data);
-    $s = array_sum($data);
-    $as = array($data[0]);
-    $asp = array(100*$as[0]/$s);
-    $n = count($data);
-    for( $i=1; $i < $n; ++$i ) {
-	$as[$i] = $as[$i-1]+$data[$i];
-	$asp[$i] = 100.0*$as[$i]/$s;
-    }
-    return $asp;
-}
-
-// some data
-$data_freq = array(22,20,12,10,5,4,2);
-$data_accfreq = accfreq($data_freq);
-
-// Create the graph. 
-$graph = new Graph(350,250);
-
-// We need to make this extra call for CSIM scripts
-// that make use of the cache. If the cache contains this
-// graph the HTML wrapper will be returned and then the
-// method will call exit() and hence NO LINES AFTER THIS 
-// CALL WILL BE EXECUTED.
-// $graph->CheckCSIMCache('auto');
-
-// Setup some basic graph parameters
-$graph->SetScale("textlin");
-$graph->SetY2Scale('lin',0,100);
-$graph->img->SetMargin(50,70,30,40);
-$graph->yaxis->SetTitleMargin(30);
-$graph->SetMarginColor('#EEEEEE');
-
-// Setup titles and fonts
-$graph->title->Set("Frequence plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Turn the tickmarks
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-$graph->y2axis->SetTickSide(SIDE_RIGHT);
-$graph->y2axis->SetColor('black','blue');
-$graph->y2axis->SetLabelFormat('%3d.0%%');
-
-// Create a bar pot
-$bplot = new BarPlot($data_freq);
-
-// Create targets and alt texts for the image maps. One for each bar
-// (In this example this is just "dummy" targets)
-$targ=array("#1","#2","#3","#4","#5","#6","#7");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$bplot->SetCSIMTargets($targ,$alts);
-
-
-// Create accumulative graph
-$lplot = new LinePlot($data_accfreq);
-
-// We want the line plot data point in the middle of the bars
-$lplot->SetBarCenter();
-
-// Use transperancy
-$lplot->SetFillColor('lightblue@0.6');
-$lplot->SetColor('blue@0.6');
-//$lplot->SetColor('blue');
-$graph->AddY2($lplot);
-
-
-// Setup the bars
-$bplot->SetFillColor("orange@0.2");
-$bplot->SetValuePos('center');
-$bplot->value->SetFormat("%d");
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->Show();
-
-// Add it to the graph
-$graph->Add($bplot);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('barlinefreq_csimex1.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barlinefreqex1.php b/nightly-test-server/jpgraph/Examples/barlinefreqex1.php
deleted file mode 100644
index 210b5bf..0000000
--- a/nightly-test-server/jpgraph/Examples/barlinefreqex1.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-//
-// Example of frequence bar 
-//
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-include_once ("../jpgraph_line.php");
-
-// Utility function to calculate the accumulated frequence
-// for a set of values and ocurrences
-function accfreq($data) {
-    rsort($data);
-    $s = array_sum($data);
-    $as = array($data[0]);
-    $asp = array(100*$as[0]/$s);
-    $n = count($data);
-    for( $i=1; $i < $n; ++$i ) {
-	$as[$i] = $as[$i-1]+$data[$i];
-	$asp[$i] = 100.0*$as[$i]/$s;
-    }
-    return $asp;
-}
-
-// some data
-$data_freq = array(22,20,12,10,5,4,2);
-$data_accfreq = accfreq($data_freq);
-
-// Create the graph. 
-$graph = new Graph(350,250);
-
-// Setup some basic graph parameters
-$graph->SetScale("textlin");
-$graph->SetY2Scale('lin',0,100);
-$graph->img->SetMargin(50,70,30,40);
-$graph->yaxis->SetTitleMargin(30);
-$graph->SetMarginColor('#EEEEEE');
-
-// Setup titles and fonts
-$graph->title->Set("Frequence plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Turn the tickmarks
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-$graph->y2axis->SetTickSide(SIDE_RIGHT);
-$graph->y2axis->SetColor('black','blue');
-$graph->y2axis->SetLabelFormat('%3d.0%%');
-
-// Create a bar pot
-$bplot = new BarPlot($data_freq);
-
-// Create accumulative graph
-$lplot = new LinePlot($data_accfreq);
-
-// We want the line plot data point in the middle of the bars
-$lplot->SetBarCenter();
-
-// Use transperancy
-$lplot->SetFillColor('lightblue@0.6');
-$lplot->SetColor('blue@0.6');
-$graph->AddY2($lplot);
-
-// Setup the bars
-$bplot->SetFillColor("orange@0.2");
-$bplot->SetValuePos('center');
-$bplot->value->SetFormat("%d");
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->Show();
-
-// Add it to the graph
-$graph->Add($bplot);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barpatternex1.php b/nightly-test-server/jpgraph/Examples/barpatternex1.php
deleted file mode 100644
index deac421..0000000
--- a/nightly-test-server/jpgraph/Examples/barpatternex1.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-$datay=array(2,3,5,8.5,11.5,6,3);
-
-// Create the graph. 
-$graph = new Graph(350,300);	
-
-$graph->SetScale("textlin");
-
-$graph->SetMarginColor('navy:1.9');
-$graph->SetBox();
-
-$graph->title->Set('Bar Pattern');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,20);
-
-$graph->SetTitleBackground('lightblue:1.3',TITLEBKG_STYLE2,TITLEBKG_FRAME_BEVEL);
-$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'lightblue','blue');
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor('darkorange');
-$bplot->SetWidth(0.6);
-
-$bplot->SetPattern(PATTERN_CROSS1,'navy');
-
-$graph->Add($bplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/barscalecallbackex1.php b/nightly-test-server/jpgraph/Examples/barscalecallbackex1.php
deleted file mode 100644
index 906bc1a..0000000
--- a/nightly-test-server/jpgraph/Examples/barscalecallbackex1.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Callback function for Y-scale
-function yScaleCallback($aVal) {
-	return number_format($aVal);
-}
-
-// Some data
-$datay=array(120567,134013,192000,87000);
-
-// Create the graph and setup the basic parameters 
-$graph = new Graph(460,200,'auto');	
-$graph->img->SetMargin(80,30,30,40);
-$graph->SetScale("textint");
-$graph->SetShadow();
-$graph->SetFrame(false); // No border around the graph
-
-// Add some grace to the top so that the scale doesn't
-// end exactly at the max value. 
-// Since we are using integer scale the gace gets intervalled
-// to adding integer values.
-// For example grace 10 to 100 will add 1 to max, 101-200 adds 2
-// and so on...
-$graph->yaxis->scale->SetGrace(30);
-$graph->yaxis->SetLabelFormatCallback('yScaleCallback');
-
-// Setup X-axis labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetFont(FF_FONT2);
-
-// Setup graph title ands fonts
-$graph->title->Set("Example of Y-scale callback formatting");
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->Set("Year 2002");
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-                              
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-$bplot->SetShadow();
-
-// Setup the values that are displayed on top of each bar
-$bplot->value->Show();
-// Must use TTF fonts if we want text at an arbitrary angle
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD);
-$bplot->value->SetAngle(45);
-$bplot->value->SetFormat('$ %0.0f');
-// Black color for positive values and darkred for negative values
-$bplot->value->SetColor("black","darkred");
-$graph->Add($bplot);
-
-// Finally stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/bartutex1.php b/nightly-test-server/jpgraph/Examples/bartutex1.php
deleted file mode 100644
index fc70613..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$databary=array(12,7,16,5,7,14,9,3);
-
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Set title and subtitle
-$graph->title->Set("Elementary barplot with a text scale");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex12.php b/nightly-test-server/jpgraph/Examples/bartutex12.php
deleted file mode 100644
index 41eca7f..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex12.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-// A medium complex example of JpGraph
-// Note: You can create a graph in far fewwr lines of code if you are
-// willing to go with the defaults. This is an illustrative example of
-// some of the capabilities of JpGraph.
-
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$month=array(
-"Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
-
-// Create some datapoints 
-$steps=100;
-for($i=0; $i<$steps; ++$i) {
-	$databarx[]=sprintf("198%d %s",floor($i/12),$month[$i%12]);
-	$datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;
-	if( $i % 6 == 0 && $i<$steps-6) {
-		$databary[]=abs(25*sin($i)+5);
-	}
-	else {
-		$databary[]=0;
-	}
-}
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-$graph->SetShadow();
-
-// Use text X-scale so we can text labels on the X-axis
-$graph->SetScale("textlin");
-
-// Y2-axis is linear
-$graph->SetY2Scale("lin");
-
-// Color the two Y-axis to make them easier to associate
-// to the corresponding plot (we keep the axis black though)
-$graph->yaxis->SetColor("black","red");
-$graph->y2axis->SetColor("black","orange");
-
-// Set title and subtitle
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("100 data points, X-Scale: 'text'");
-
-// Use built in font (don't need TTF support)
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Make the margin around the plot a little bit bigger then default
-$graph->img->SetMargin(40,140,40,80);	
-
-// Slightly adjust the legend from it's default position in the
-// top right corner to middle right side
-$graph->legend->Pos(0.03,0.5,"right","center");
-
-// Display every 6:th tickmark
-$graph->xaxis->SetTextTickInterval(6);
-
-// Label every 2:nd tick mark
-$graph->xaxis->SetTextLabelInterval(2);
-
-// Setup the labels
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetLabelAngle(90);
-
-// Create a red line plot
-$p1 = new LinePlot($datay);
-$p1->SetColor("red");
-$p1->SetLegend("Pressure");
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetFillColor("orange");
-$b1->SetAbsWidth(8);
-
-// Drop shadow on bars adjust the default values a little bit
-$b1->SetShadow("steelblue",2,2);
-
-// The order the plots are added determines who's ontop
-$graph->Add($p1);
-$graph->AddY2($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex2.php b/nightly-test-server/jpgraph/Examples/bartutex2.php
deleted file mode 100644
index 4072d98..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex2.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$databary=array(12,7,16,6,7,14,9,3);
-$months=$gDateLocale->GetShortMonth();
-
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($months);
-
-// Set title and subtitle
-$graph->title->Set("Textscale with specified labels");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex3.php b/nightly-test-server/jpgraph/Examples/bartutex3.php
deleted file mode 100644
index 4ab88a0..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex3.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($databarx);
-
-// Set title and subtitle
-$graph->title->Set("Bar tutorial example 3");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex4.php b/nightly-test-server/jpgraph/Examples/bartutex4.php
deleted file mode 100644
index 65a4a32..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex4.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-//$databarx = array('tXi','','','xxx','','','iXii','','','OOO','','','tOO');
-$graph->xaxis->SetFont(FF_FONT1,FS_NORMAL);
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetTextLabelInterval(3);
-
-// Set title and subtitle
-$graph->title->Set("Displaying only every third label");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-//$b1->SetAbsWidth(6);
-//$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex5.php b/nightly-test-server/jpgraph/Examples/bartutex5.php
deleted file mode 100644
index 93a092e..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex5.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetTextLabelInterval(1);
-$graph->xaxis->SetTextTickInterval(3);
-
-// Set title and subtitle
-$graph->title->Set("Bar tutorial example 5");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetWidth(0.4);
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bartutex6.php b/nightly-test-server/jpgraph/Examples/bartutex6.php
deleted file mode 100644
index 375fd70..0000000
--- a/nightly-test-server/jpgraph/Examples/bartutex6.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-$months=$gDateLocale->GetShortMonth();
-srand ((double) microtime() * 1000000);
-for( $i=0; $i<25; ++$i) {
-	$databary[]=rand(1,50);
-	$databarx[]=$months[$i%12];
-}
-	
-// New graph with a drop shadow
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-
-// Use a "text" X-scale
-$graph->SetScale("textlin");
-
-// Specify X-labels
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetTextLabelInterval(3);
-
-// Hide the tick marks
-$graph->xaxis->HideTicks();
-
-// Set title and subtitle
-$graph->title->Set("Bar tutorial example 6");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetWidth(0.4);
-
-
-// The order the plots are added determines who's ontop
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/bezierex1.php b/nightly-test-server/jpgraph/Examples/bezierex1.php
deleted file mode 100644
index ba1af08..0000000
--- a/nightly-test-server/jpgraph/Examples/bezierex1.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-include ('../jpgraph.php');
-include ('../jpgraph_line.php');
-include ('../jpgraph_scatter.php');
-include ('../jpgraph_regstat.php');
-
-// Original data points
-$xdata = array(1,3,12,15);
-$ydata = array(5,15,2,19);
-
-// Get the interpolated values by creating
-// a new Spline object.
-$bez = new Bezier($xdata,$ydata);
-
-// For the new data set we want 40 points to
-// get a smooth curve.
-list($newx,$newy) = $bez->Get(50);
-
-// Create the graph
-$g = new Graph(300,200);
-$g->SetMargin(30,20,40,30);
-$g->title->Set("Bezier interpolation");
-$g->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-$g->subtitle->Set('(Control points shown in red)');
-$g->subtitle->SetColor('darkred');
-$g->SetMarginColor('lightblue');
-
-//$g->img->SetAntiAliasing();
-
-// We need a linlin scale since we provide both
-// x and y coordinates for the data points.
-$g->SetScale('linlin');
-
-// We want 1 decimal for the X-label
-$g->xaxis->SetLabelFormat('%1.1f');
-
-// We use a scatterplot to illustrate the original
-// contro points.
-$bplot = new ScatterPlot($ydata,$xdata);
-$bplot->mark->SetFillColor('red@0.3');
-$bplot->mark->SetColor('red@0.5');
-
-// And a line plot to stroke the smooth curve we got
-// from the original control points
-$lplot = new LinePlot($newy,$newx);
-$lplot->SetColor('navy');
-
-// Add the plots to the graph and stroke
-$g->Add($lplot);
-$g->Add($bplot);
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex1.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex1.php
deleted file mode 100644
index 289180a..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex1.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex2.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex2.php
deleted file mode 100644
index bdd5437..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex2.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-// Apply a perspective transformation at the end 
-$graph->Set3DPerspective(SKEW3D_UP,100,180);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex3.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex3.php
deleted file mode 100644
index a70d855..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex3.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-// Apply a perspective transformation at the end 
-$graph->Set3DPerspective(SKEW3D_DOWN,100,180);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/bkgimgflagex4.php b/nightly-test-server/jpgraph/Examples/bkgimgflagex4.php
deleted file mode 100644
index d7011c5..0000000
--- a/nightly-test-server/jpgraph/Examples/bkgimgflagex4.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_flags.php");
-
-// Some data
-$datay1=array(140,110,50);
-$datay2=array(35,90,190);
-$datay3=array(20,60,70);
-
-// Create the basic graph
-$graph = new Graph(300,200);	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,20,20,40);
-$graph->SetMarginColor('white:0.9');
-$graph->SetColor('white');
-$graph->SetShadow();
-
-// Apply a perspective transformation at the end 
-$graph->Set3DPerspective(SKEW3D_LEFT,350,320,true);
-
-// Adjust the position of the legend box
-$graph->legend->Pos(0.03,0.10);
-
-// Adjust the color for theshadow of the legend
-$graph->legend->SetShadow('darkgray@0.5');
-$graph->legend->SetFillColor('lightblue@0.1');
-$graph->legend->Hide();
-
-// Get localised version of the month names
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->SetBackgroundCountryFlag('mais',BGIMG_COPY,50);
-
-// Set axis titles and fonts
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetColor('white');
-
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('navy');
-
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('navy');
-
-//$graph->ygrid->Show(false);
-$graph->ygrid->SetColor('white@0.5');
-
-// Setup graph title
-$graph->title->Set('Using a country flag background');
-
-// Some extra margin (from the top)
-$graph->title->SetMargin(3);
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,12);
-
-// Create the three var series we will combine
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-// Setup the colors with 40% transparency (alpha channel)
-$bplot1->SetFillColor('yellow@0.4');
-$bplot2->SetFillColor('red@0.4');
-$bplot3->SetFillColor('darkgreen@0.4');
-
-// Setup legends
-$bplot1->SetLegend('Label 1');
-$bplot2->SetLegend('Label 2');
-$bplot3->SetLegend('Label 3');
-
-// Setup each bar with a shadow of 50% transparency
-$bplot1->SetShadow('black@0.4');
-$bplot2->SetShadow('black@0.4');
-$bplot3->SetShadow('black@0.4');
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/blueblack400x300grad.png b/nightly-test-server/jpgraph/Examples/blueblack400x300grad.png
deleted file mode 100644
index 8852862..0000000
--- a/nightly-test-server/jpgraph/Examples/blueblack400x300grad.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/boxstockcsimex1.php b/nightly-test-server/jpgraph/Examples/boxstockcsimex1.php
deleted file mode 100644
index 77cd690..0000000
--- a/nightly-test-server/jpgraph/Examples/boxstockcsimex1.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max,median
-$datay = array(
-    34,42,27,45,36,
-    55,25,14,59,40,
-    15,40,12,47,23,
-    62,38,25,65,57,
-    38,49,32,64,45);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Box Stock chart example');
-
-// Create a new stock plot
-$p1 = new BoxPlot($datay);
-
-// Setup URL target for image map
-$p1->SetCSIMTargets(array('#1','#2','#3','#4','#5'));
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-//$p1->SetCenter();
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->StrokeCSIM(basename(__FILE__));
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/boxstockex1.php b/nightly-test-server/jpgraph/Examples/boxstockex1.php
deleted file mode 100644
index e85eed7..0000000
--- a/nightly-test-server/jpgraph/Examples/boxstockex1.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max,median
-$datay = array(
-    34,42,27,45,36,
-    55,25,14,59,40,
-    15,40,12,47,23,
-    62,38,25,65,57,
-    38,49,32,64,45);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Box Stock chart example');
-
-// Create a new stock plot
-$p1 = new BoxPlot($datay);
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/boxstockex2.php b/nightly-test-server/jpgraph/Examples/boxstockex2.php
deleted file mode 100644
index c9330e7..0000000
--- a/nightly-test-server/jpgraph/Examples/boxstockex2.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max,median
-$datay = array(
-    34,42,27,45,36,
-    55,25,14,59,40,
-    15,40,12,47,23,
-    62,38,25,65,57,
-    38,49,32,64,45);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Box Stock chart example');
-$graph->subtitle->Set('(Indented X-axis)');
-
-// Create a new stock plot
-$p1 = new BoxPlot($datay);
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-// Indent bars so they dont start and end at the edge of the
-// plot area
-$p1->SetCenter();
-
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/builtinplotmarksex1.php b/nightly-test-server/jpgraph/Examples/builtinplotmarksex1.php
deleted file mode 100644
index 28775c4..0000000
--- a/nightly-test-server/jpgraph/Examples/builtinplotmarksex1.php
+++ /dev/null
@@ -1,65 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(2,6,7,12,13,18);
-$datay2 = array(5,12,12,19,25,20);
-
-// Setup the graph
-$graph = new Graph(350,200);
-$graph->SetMargin(30,20,60,20);
-$graph->SetMarginColor('white');
-$graph->SetScale("linlin");
-
-// Hide the frame around the graph
-$graph->SetFrame(false);
-
-// Setup title
-$graph->title->Set("Using Builtin PlotMarks");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-
-// Note: requires jpgraph 1.12p or higher
-// $graph->SetBackgroundGradient('blue','navy:0.5',GRAD_HOR,BGRAD_PLOT);
-$graph->tabtitle->Set('Region 1' );
-$graph->tabtitle->SetWidth(TABTITLE_WIDTHFULL);
-
-// Enable X and Y Grid
-$graph->xgrid->Show();
-$graph->xgrid->SetColor('gray@0.5');
-$graph->ygrid->SetColor('gray@0.5');
-
-// Format the legend box
-$graph->legend->SetColor('navy');
-$graph->legend->SetFillColor('lightgreen');
-$graph->legend->SetLineWeight(1);
-$graph->legend->SetFont(FF_ARIAL,FS_BOLD,8);
-$graph->legend->SetShadow('gray@0.4',3);
-$graph->legend->SetAbsPos(15,120,'right','bottom');
-
-// Create the line plots
-
-$p1 = new LinePlot($datay1);
-$p1->SetColor("red");
-$p1->SetFillColor("yellow@0.5");
-$p1->SetWeight(2);
-$p1->mark->SetType(MARK_IMG_DIAMOND,5,0.6);
-$p1->SetLegend('2006');
-$graph->Add($p1);
-
-$p2 = new LinePlot($datay2);
-$p2->SetColor("darkgreen");
-$p2->SetWeight(2);
-$p2->SetLegend('2001');
-$p2->mark->SetType(MARK_IMG_MBALL,'red');
-$graph->Add($p2);
-
-// Add a vertical line at the end scale position '7'
-$l1 = new PlotLine(VERTICAL,7);
-$graph->Add($l1);
-
-// Output the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/canvas_jpgarchex.php b/nightly-test-server/jpgraph/Examples/canvas_jpgarchex.php
deleted file mode 100644
index 2bd84dd..0000000
--- a/nightly-test-server/jpgraph/Examples/canvas_jpgarchex.php
+++ /dev/null
@@ -1,143 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Scale we are using
-$ymax=24;
-$xmax=20;
-
-// Setup the basic canvas
-$g = new CanvasGraph(700,650,'auto');
-$g->SetMargin(2,3,2,3);
-$g->SetMarginColor("teal");
-$g->InitFrame();
-
-// ... and a scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// ... we need shape since we want the indented rectangle
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-// ... basic parameters for the overall image
-$l = 2;		// Left margin
-$r = 18;	// Row number to start the lowest line on
-$width = 16;	// Total width
-
-// Setup the two basic rectangle text object we  will use
-$tt = new CanvasRectangleText();
-$tt->SetFont(FF_ARIAL,FS_NORMAL,14);
-$tt->SetFillColor('');
-$tt->SetColor('');
-$tt->SetFontColor('navy');
-
-$t = new CanvasRectangleText();
-$t->SetFont(FF_ARIAL,FS_NORMAL,14);
-$t->SetFillColor('goldenrod1');
-$t->SetFontColor('navy');
-
-
-// Now start drawing the arch overview from the bottom and up
-// This is all pretty manual and one day I will write a proper
-// framework to make it easy to construct these types of architecture
-// overviews. But for now, just plain old coordinates..
-
-// Line: GD Library and image libraries
-$h=3;
-$s  = 3; $d=$l + $width-9;
-$t->SetFillColor('cadetblue3');
-$t->Set("TTF",$d,$r+2,$s,1);
-$t->Stroke($g->img,$scale);
-$t->Set("PNG",$d+$s,$r+2,$s,1);
-$t->Stroke($g->img,$scale);
-$t->Set("JPEG",$d+2*$s,$r+2,$s,1);
-$t->Stroke($g->img,$scale);
-$shape->IndentedRectangle($l,$r,$width,$h,$s*3,1,2,'lightgreen');
-$tt->Set("GD Basic library\n(1.8.x or 2.x)",$l,$r,$width,$h-1); 
-$tt->Stroke($g->img,$scale);
-
-
-// Area: Basic internal JpGraph architecture
-$t->SetFillColor('goldenrod1');
-$h = 2;
-$r -= $h; $d=8;
-$t->Set("Image primitives\n(RGB, Anti-aliasing,\nGD Abstraction)",$l,$r-0.5,$width*0.5,$h+0.5);
-$t->Stroke($g->img,$scale);
-$t->Set("Image Cache &\nStreaming",$l+0.5*$width,$r,$width*0.4,$h);
-$t->Stroke($g->img,$scale);
-
-$r -= $h; $d=8;
-$t->Set("2D Rot & Transformation",$l,$r,$width*0.5,$h-0.5); $t->Stroke($g->img,$scale);
-
-
-$r -= 2; $h = 4;
-$shape->IndentedRectangle($l,$r,$width*0.9,$h,$d,2,3,'goldenrod1');
-$tt->Set("Axis, Labelling, (Auto)-Scaling",$l,$r,$width*0.9,$h-2); $tt->Stroke($g->img,$scale);
-
-$r -= 1;
-$shape->IndentedRectangle($l,$r,$width,7,$width*0.9,6,3,'goldenrod1');
-$tt->Set("Error handling & Utility classes",$l,$r,$width,1); $tt->Stroke($g->img,$scale);
-
-
-// Area: Top area with graph components
-$t->SetFillColor('gold1');
-$r -= 3;
-$w = $width*0.55/4; $h = 2;
-$t->Set("Gantt\nGraph",$l,$r,$w,$h);
-$t->Stroke($g->img,$scale);
-
-$t->Set("Pie\nGraph",$l+$w,$r,$w,$h);
-$t->Stroke($g->img,$scale);
-$t->Set("Radar\nGraph",$l+$w*2,$r,$w,$h);
-$t->Stroke($g->img,$scale);
-
-$shape->IndentedRectangle($l,$r,$width,3,4*$w,2,0,'gold1');
-$tt->Set("Base Graph\n(Orthogonal\ncoordinate system)",$l+4*$w,$r,$width-$w*4,3); 
-$tt->Stroke($g->img,$scale);
-
-$r -= 2;
-$d = 0.7;
-$shape->IndentedRectangle($l+3*$w,$r,$w,4, $w*$d,2,0,'gold1');
-$t->Set("Canv\nUtil",$l+3*$w,$r,$w*$d,$h);     $t->Stroke($g->img,$scale);
-$tt->Set("Canvas\nGraph",$l+3*$w,$r+2,$w,2); $tt->Stroke($g->img,$scale);
-
-// Top line of plotting plugins
-$t->SetFillColor('cyan');
-$t->Set("Gantt\nPlot",$l,$r,$w,$h); $t->Stroke($g->img,$scale);
-$t->Set("2D\nPlot",$l+$w,$r,$w/2,$h);     $t->Stroke($g->img,$scale);
-$t->Set("3D\nPlot",$l+$w+$w/2,$r,$w/2,$h);$t->Stroke($g->img,$scale);
-$t->Set("Radar\nPlot",$l+2*$w,$r,$w,$h); $t->Stroke($g->img,$scale);
-
-$wp = ($width - 4*$w)/4; 
-$t->Set("Error\nPlot",$l+4*$w,$r,$wp,$h); $t->Stroke($g->img,$scale);
-$t->Set("Line\nPlot",$l+4*$w+$wp,$r,$wp,$h); $t->Stroke($g->img,$scale);
-$t->Set("Bar\nPlot",$l+4*$w+2*$wp,$r,$wp,$h); $t->Stroke($g->img,$scale);
-$t->Set("Scatter\nPlot",$l+4*$w+3*$wp,$r,$wp,$h); $t->Stroke($g->img,$scale);
-
-// Show application top
-$r -= 2.5; $h=2; 
-$t->SetFillColor('blue');
-$t->SetFontColor('white');
-$t->SetFont(FF_ARIAL,FS_BOLD,20);
-$t->Set("PHP Application",$l,$r,$width,$h); $t->Stroke($g->img,$scale);
-
-// Stroke title
-$r = 0.5;
-$tt->SetFontColor('black');
-$tt->SetFont(FF_TIMES,FS_BOLD,28);
-$tt->Set("JpGraph Architecture Overview",$l,$r,$width,1); 
-$tt->Stroke($g->img,$scale);
-
-// Stroke footer
-$tt->SetFont(FF_VERDANA,FS_NORMAL,10);
-$tt->Set("Generated: ".date("ymd H:m",time()),0.1,$ymax*0.95); 
-$tt->Stroke($g->img,$scale);
-
-// .. and stream it all back
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasbezierex1.php b/nightly-test-server/jpgraph/Examples/canvasbezierex1.php
deleted file mode 100644
index 5a69bbf..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasbezierex1.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Setup canvas graph
-$g = new CanvasGraph(400,300);
-$scale = new CanvasScale($g);
-$shape = new Shape($g,$scale);
-
-$g->title->Set('Bezier line with control points');
-
-// Setup control point for bezier
-$p = array(3,6,
-	   6,9,
-	   5,3,
-	   7,4);
-
-// Visualize control points
-$shape->SetColor('blue');
-$shape->Line($p[0],$p[1],$p[2],$p[3]);
-$shape->FilledCircle($p[2],$p[3],-6);
-
-$shape->SetColor('red');
-$shape->Line($p[4],$p[5],$p[6],$p[7]);
-$shape->FilledCircle($p[4],$p[5],-6);
-
-// Draw bezier
-$shape->SetColor('black');
-$shape->Bezier($p);
-
-// Frame it with a square
-$shape->SetColor('navy');
-$shape->Rectangle(0.5,2,9.5,9.5);
-
-// ... and stroke it
-$g->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex01.php b/nightly-test-server/jpgraph/Examples/canvasex01.php
deleted file mode 100644
index dd03c12..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex01.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,300,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Draw a text box in the middle
-$txt="This\nis\na TEXT!!!";
-$t = new Text($txt,200,10);
-$t->SetFont(FF_ARIAL,FS_BOLD,40);
-
-// How should the text box interpret the coordinates?
-$t->Align('center','top');
-
-// How should the paragraph be aligned?
-$t->ParagraphAlign('center');
-
-// Add a box around the text, white fill, black border and gray shadow
-$t->SetBox("white","black","gray");
-
-// Stroke the text
-$t->Stroke($g->img);
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex02.php b/nightly-test-server/jpgraph/Examples/canvasex02.php
deleted file mode 100644
index f62adf2..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex02.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Add a black line
-$g->img->SetColor('black');
-$g->img->Line(0,0,100,100);
-
-// .. and a circle (x,y,diameter)
-$g->img->Circle(100,100,50);
-
-// .. and a filled circle (x,y,diameter)
-$g->img->SetColor('red');
-$g->img->FilledCircle(200,100,50);
-
-// .. add a rectangle
-$g->img->SetColor('green');
-$g->img->FilledRectangle(10,10,50,50);
-
-// .. add a filled rounded rectangle
-$g->img->SetColor('green');
-$g->img->FilledRoundedRectangle(300,30,350,80,10);
-// .. with a darker border
-$g->img->SetColor('darkgreen');
-$g->img->RoundedRectangle(300,30,350,80,10);
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex03.php b/nightly-test-server/jpgraph/Examples/canvasex03.php
deleted file mode 100644
index 4889862..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex03.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=20;
-$ymax=20;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-
-// Add a black line
-$shape->SetColor('black');
-$shape->Line(0,0,20,20);
-
-// .. and a circle (x,y,diameter)
-$shape->Circle(5,14,2);
-
-// .. and a filled circle (x,y,diameter)
-$shape->SetColor('red');
-$shape->FilledCircle(11,8,3);
-
-// .. add a rectangle
-$shape->SetColor('green');
-$shape->FilledRectangle(15,8,19,14);
-
-// .. add a filled rounded rectangle
-$shape->SetColor('green');
-$shape->FilledRoundedRectangle(2,3,8,6);
-// .. with a darker border
-$shape->SetColor('darkgreen');
-$shape->RoundedRectangle(2,3,8,6);
-
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex04.php b/nightly-test-server/jpgraph/Examples/canvasex04.php
deleted file mode 100644
index dcc5f50..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex04.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=20;
-$ymax=20;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(200,100,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-
-// Add a black line
-$shape->SetColor('black');
-$shape->Line(0,0,20,20);
-
-// .. and a circle (x,y,diameter)
-$shape->Circle(5,14,2);
-
-// .. and a filled circle (x,y,diameter)
-$shape->SetColor('red');
-$shape->FilledCircle(11,8,3);
-
-// .. add a rectangle
-$shape->SetColor('green');
-$shape->FilledRectangle(15,8,19,14);
-
-// .. add a filled rounded rectangle
-$shape->SetColor('green');
-$shape->FilledRoundedRectangle(2,3,8,6);
-// .. with a darker border
-$shape->SetColor('darkgreen');
-$shape->RoundedRectangle(2,3,8,6);
-
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex05.php b/nightly-test-server/jpgraph/Examples/canvasex05.php
deleted file mode 100644
index d3e9bf1..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex05.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=40;
-$ymax=40;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-
-// Add a black line
-$shape->SetColor('black');
-$shape->Line(0,0,20,20);
-
-// .. and a circle (x,y,diameter)
-$shape->Circle(5,14,2);
-
-// .. and a filled circle (x,y,diameter)
-$shape->SetColor('red');
-$shape->FilledCircle(11,8,3);
-
-// .. add a rectangle
-$shape->SetColor('green');
-$shape->FilledRectangle(15,8,19,14);
-
-// .. add a filled rounded rectangle
-$shape->SetColor('green');
-$shape->FilledRoundedRectangle(2,3,8,6);
-// .. with a darker border
-$shape->SetColor('darkgreen');
-$shape->RoundedRectangle(2,3,8,6);
-
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvasex06.php b/nightly-test-server/jpgraph/Examples/canvasex06.php
deleted file mode 100644
index 00c1c01..0000000
--- a/nightly-test-server/jpgraph/Examples/canvasex06.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-// Define work space
-$xmax=40;
-$ymax=40;
-
-// Setup a basic canvas we can work 
-$g = new CanvasGraph(400,200,'auto');
-$g->SetMargin(5,11,6,11);
-$g->SetShadow();
-$g->SetMarginColor("teal");
-
-// We need to stroke the plotarea and margin before we add the
-// text since we otherwise would overwrite the text.
-$g->InitFrame();
-
-// Create a new scale
-$scale = new CanvasScale($g);
-$scale->Set(0,$xmax,0,$ymax);
-
-// The shape class is wrapper around the Imgae class which translates
-// the coordinates for us
-$shape = new Shape($g,$scale);
-$shape->SetColor('black');
-
-$shape->IndentedRectangle(1,2,15,15,8,8,CORNER_TOPLEFT,'khaki');
-
-$shape->IndentedRectangle(1,20,15,15,8,8,CORNER_BOTTOMLEFT,'khaki');
-
-$shape->IndentedRectangle(20,2,15,15,8,8,CORNER_TOPRIGHT,'khaki');
-
-$shape->IndentedRectangle(20,20,15,15,8,8,CORNER_BOTTOMRIGHT,'khaki');
-
-// Stroke the graph
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/canvaspiralex1.php b/nightly-test-server/jpgraph/Examples/canvaspiralex1.php
deleted file mode 100644
index 0f30289..0000000
--- a/nightly-test-server/jpgraph/Examples/canvaspiralex1.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-
-
-if( empty($_GET['r']) ) 
-    $r = 0.44;
-else
-    $r = $_GET['r'];
-
-if( empty($_GET['w']) ) 
-    $w=150;
-else
-    $w = $_GET['w'];
-
-if( empty($_GET['h']) ) 
-    $h=240;
-else
-    $h = $_GET['h'];
-
-if( $w < 60 ) $w=60;
-if( $h < 60 ) $h=60;
-
-
-function SeaShell($img,$x,$y,$w,$h,$r,$n=12,$color1='navy',$color2='red') {
-
-    $x += $w;
-    $w = (1-$r)/$r*$w;
-
-    $sa = 0;
-    $ea = 90;
-
-    $s1 = 1;
-    $s2 = -1;
-    $x_old=$x; $y_old=$y;
-    for($i=1; $i < $n; ++$i) {
-	$sa += 90;
-	$ea += 90;
-	if( $i % 2 == 1 ) {
-	    $y = $y + $s1*$h*$r;
-	    $h = (1-$r)*$h;
-	    $w = $w / (1-$r) * $r ;
-	    $s1 *= -1;
-	    $img->SetColor($color1);
-	    $img->Line($x,$y,$x+$s1*$w,$y);
-	}
-	else {
-	    $x = $x + $s2*$w*$r;
-	    $w = (1-$r)*$w;
-	    $h = $h / (1-$r) * $r;
-	    $s2 *= -1;
-	    $img->SetColor($color1);
-	    $img->Line($x,$y,$x,$y-$s2*$h);
-	}
-	$img->SetColor($color2);
-	$img->FilledRectangle($x-1,$y-1,$x+1,$y+1);
-	$img->Arc($x,$y,2*$w+1,2*$h+1,$sa,$ea);
-	$img->Arc($x,$y,2*$w,2*$h,$sa,$ea);
-	$img->Arc($x,$y,2*$w-1,2*$h-1,$sa,$ea);
-	$img->Line($x_old,$y_old,$x,$y);
-	$x_old=$x; $y_old=$y;
-    }
-}
-
-$g = new CanvasGraph($w,$h);
-//$gr = 1.61803398874989484820;
-
-$p = SeaShell($g->img,0,20,$w-1,$h-21,$r,19);
-$g->img->SetColor('black');
-$g->img->Rectangle(0,20,$w-1,$h-1);
-$g->img->SetFont(FF_FONT2,FS_BOLD);
-$g->img->SetTextAlign('center','top');
-$g->img->StrokeText($w/2,0,"Canvas Spiral");
-
-$g->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/centeredlineex01.php b/nightly-test-server/jpgraph/Examples/centeredlineex01.php
deleted file mode 100644
index 61a92ae..0000000
--- a/nightly-test-server/jpgraph/Examples/centeredlineex01.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-
-//$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of line centered plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Use 20% "grace" to get slightly larger scale then min/max of
-// data
-$graph->yscale->SetGrace(20);
-
-
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/centeredlineex02.php b/nightly-test-server/jpgraph/Examples/centeredlineex02.php
deleted file mode 100644
index 8a11368..0000000
--- a/nightly-test-server/jpgraph/Examples/centeredlineex02.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-
-//$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of filled line centered plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("green");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/centeredlineex03.php b/nightly-test-server/jpgraph/Examples/centeredlineex03.php
deleted file mode 100644
index 2ed6cfb..0000000
--- a/nightly-test-server/jpgraph/Examples/centeredlineex03.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$labels = array("Oct 2000","Nov 2000","Dec 2000","Jan 2001","Feb 2001","Mar 2001","Apr 2001","May 2001");
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,250,"auto");
-$graph->img->SetMargin(40,40,40,80);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example slanted X-labels");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,14);
-
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,11);
-$graph->xaxis->SetTickLabels($labels);
-$graph->xaxis->SetLabelAngle(45);
-
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/centerlinebarex1.php b/nightly-test-server/jpgraph/Examples/centerlinebarex1.php
deleted file mode 100644
index e9b8393..0000000
--- a/nightly-test-server/jpgraph/Examples/centerlinebarex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(12,15,22,19,5);
-
-$graph = new Graph(400,200);
-$graph->img->SetMargin(40,80,40,40);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->Set('Center the line points in bars');
-
-$line = new LinePlot($ydata);
-$line->SetBarCenter();
-$line->SetWeight(2);
-
-$bar = new BarPlot($ydata);
-$bar2 = new BarPlot($ydata);
-$bar2->SetFillColor("red");
-
-$gbar = new GroupbarPlot(array($bar,$bar2));
-
-$graph->Add($gbar);
-$graph->Add($line);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/combgraphex1.php b/nightly-test-server/jpgraph/Examples/combgraphex1.php
deleted file mode 100644
index 3651f9d..0000000
--- a/nightly-test-server/jpgraph/Examples/combgraphex1.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-include ("../jpgraph_utils.inc");
-include ("../jpgraph_mgraph.php");
-
-//------------------------------------------------------------------
-// Create some random data for the plot. We use the current time for the
-// first X-position
-//------------------------------------------------------------------
-$datay = array();
-$datax = array();
-$ts = time();
-$n=70; // Number of data points
-for($i=0; $i < $n; ++$i ) {
-    $datax[$i] = $ts+$i*150000; 
-    $datay[$i] = rand(5,60);
-    $datay2[$i] = rand(1,8);
-}
-
-// Now get labels at the start of each month
-$dateUtils = new DateScaleUtils();
-list($tickPositions,$minTickPositions) = $dateUtils->getTicks($datax,DSUTILS_MONTH1);
-
-// Now create the real graph
-// Combine a line and a bar graph
-
-// We add some grace to the end of the X-axis scale so that the first and last
-// data point isn't exactly at the very end or beginning of the scale
-$grace = 400000;
-$xmin = $datax[0]-$grace;
-$xmax = $datax[$n-1]+$grace;;
-
-// Overall width of graphs
-$w = 450;
-// Left and right margin for each graph
-$lm=25; $rm=15; 
-
-//----------------------
-// Setup the line graph
-//----------------------
-$graph = new Graph($w,250);
-$graph->SetScale('linlin',0,0,$xmin,$xmax);
-$graph->SetMargin($lm,$rm,10,30);
-$graph->SetMarginColor('white');
-$graph->SetFrame(false);
-$graph->SetBox(true);
-$graph->title->Set('Example of combined graph');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,14);
-$graph->xaxis->SetTickPositions($tickPositions,$minTickPositions);
-$graph->xaxis->SetLabelFormatString('My',true);
-$graph->xgrid->Show();
-$p1 = new LinePlot($datay,$datax);
-$graph->Add($p1);
-
-//----------------------
-// Setup the bar graph
-//----------------------
-$graph2 = new Graph($w,110);
-$graph2->SetScale('linlin',0,0,$xmin,$xmax);
-$graph2->SetMargin($lm,$rm,5,10);
-$graph2->SetMarginColor('white');
-$graph2->SetFrame(false);
-$graph2->SetBox(true);
-$graph2->xgrid->Show();
-$graph2->xaxis->SetTickPositions($tickPositions,$minTickPositions);
-$graph2->xaxis->SetLabelFormatString('My',true);
-$graph2->xaxis->SetPos('max');
-$graph2->xaxis->HideLabels();
-$graph2->xaxis->SetTickSide(SIDE_DOWN);
-$b1 = new BarPlot($datay2,$datax);
-$b1->SetFillColor('teal');
-$b1->SetColor('teal:1.2');
-$graph2->Add($b1);
-
-//-----------------------
-// Create a multigraph
-//----------------------
-$mgraph = new MGraph();
-$mgraph->SetMargin(2,2,2,2);
-$mgraph->SetFrame(true,'darkgray',2);
-$mgraph->Add($graph);
-$mgraph->Add($graph2,0,240);
-$mgraph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex1.php b/nightly-test-server/jpgraph/Examples/dateaxisex1.php
deleted file mode 100644
index e391432..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex1.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// The callback that converts timestamp to minutes and seconds
-function TimeCallback($aVal) {
-    return Date('H:i:s',$aVal);
-}
-
-// Fake some suitable random data
-$now = time();
-$datax = array($now);
-for( $i=0; $i < 360; $i += 10 ) {
-    $datax[] = $now + $i;
-}
-$n = count($datax);
-$datay=array();
-for( $i=0; $i < $n; ++$i ) {
-    $datay[] = rand(30,150);
-}
-
-// Setup the basic graph
-$graph = new Graph(324,250);
-$graph->SetMargin(40,40,30,70);	
-$graph->title->Set('Date: '.date('Y-m-d',$now));
-$graph->SetAlphaBlending();
-
-// Setup a manual x-scale (We leave the sentinels for the
-// Y-axis at 0 which will then autoscale the Y-axis.)
-// We could also use autoscaling for the x-axis but then it
-// probably will start a little bit earlier than the first value
-// to make the first value an even number as it sees the timestamp
-// as an normal integer value.
-$graph->SetScale("intlin",0,200,$now,$datax[$n-1]);
-
-// Setup the x-axis with a format callback to convert the timestamp
-// to a user readable time
-$graph->xaxis->SetLabelFormatCallback('TimeCallback');
-$graph->xaxis->SetLabelAngle(90);
-
-// Create the line
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor("blue");
-
-// Set the fill color partly transparent
-$p1->SetFillColor("blue@0.4");
-
-// Add lineplot to the graph
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex2.php b/nightly-test-server/jpgraph/Examples/dateaxisex2.php
deleted file mode 100644
index c9935a7..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex2.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-require_once("../jpgraph_date.php");
-
-// Create a data set in range (50,70) and X-positions
-DEFINE('NDATAPOINTS',360);
-DEFINE('SAMPLERATE',240); 
-$start = time();
-$end = $start+NDATAPOINTS*SAMPLERATE;
-$data = array();
-$xdata = array();
-for( $i=0; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(50,70);
-    $xdata[$i] = $start + $i * SAMPLERATE;
-}
-
-
-// Create the new graph
-$graph = new Graph(540,300);
-
-// Slightly larger than normal margins at the bottom to have room for
-// the x-axis labels
-$graph->SetMargin(40,40,30,130);
-
-// Fix the Y-scale to go between [0,100] and use date for the x-axis
-$graph->SetScale('datlin',0,100);
-$graph->title->Set("Example on Date scale");
-
-// Set the angle for the labels to 90 degrees
-$graph->xaxis->SetLabelAngle(90);
-
-$line = new LinePlot($data,$xdata);
-$line->SetLegend('Year 2005');
-$line->SetFillColor('lightblue@0.5');
-$graph->Add($line);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex3.php b/nightly-test-server/jpgraph/Examples/dateaxisex3.php
deleted file mode 100644
index 4fa810c..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex3.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-require_once("../jpgraph_date.php");
-
-// Create a data set in range (50,70) and X-positions
-DEFINE('NDATAPOINTS',360);
-DEFINE('SAMPLERATE',240); 
-$start = time();
-$end = $start+NDATAPOINTS*SAMPLERATE;
-$data = array();
-$xdata = array();
-for( $i=0; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(50,70);
-    $xdata[$i] = $start + $i * SAMPLERATE;
-}
-
-
-// Create the new graph
-$graph = new Graph(540,300);
-
-// Slightly larger than normal margins at the bottom to have room for
-// the x-axis labels
-$graph->SetMargin(40,40,30,130);
-
-// Fix the Y-scale to go between [0,100] and use date for the x-axis
-$graph->SetScale('datlin',0,100);
-$graph->title->Set("Example on Date scale");
-
-// Set the angle for the labels to 90 degrees
-$graph->xaxis->SetLabelAngle(90);
-
-// It is possible to adjust the density for the X-axis as well
-// The following call makes the dates a little more sparse
-// $graph->SetTickDensity(TICKD_NORMAL,TICKD_SPARSE);
-
-// The automatic format string for dates can be overridden
-// $graph->xaxis->scale->SetDateFormat('h:i');
-
-// Adjust the start/end to a specific alignment
-$graph->xaxis->scale->SetTimeAlign(MINADJ_15);
-
-$line = new LinePlot($data,$xdata);
-$line->SetLegend('Year 2005');
-$line->SetFillColor('lightblue@0.5');
-$graph->Add($line);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/dateaxisex4.php b/nightly-test-server/jpgraph/Examples/dateaxisex4.php
deleted file mode 100644
index 9d7dd66..0000000
--- a/nightly-test-server/jpgraph/Examples/dateaxisex4.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-require_once("../jpgraph_date.php");
-
-// Create a data set in range (50,70) and X-positions
-DEFINE('NDATAPOINTS',360);
-DEFINE('SAMPLERATE',240); 
-$start = time();
-$end = $start+NDATAPOINTS*SAMPLERATE;
-$data = array();
-$xdata = array();
-for( $i=0; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(50,70);
-    $xdata[$i] = $start + $i * SAMPLERATE;
-}
-
-
-// Create the new graph
-$graph = new Graph(540,300);
-
-// Slightly larger than normal margins at the bottom to have room for
-// the x-axis labels
-$graph->SetMargin(40,40,30,130);
-
-// Fix the Y-scale to go between [0,100] and use date for the x-axis
-$graph->SetScale('datlin',0,100);
-$graph->title->Set("Example on Date scale");
-
-// Set the angle for the labels to 90 degrees
-$graph->xaxis->SetLabelAngle(90);
-
-// The automatic format string for dates can be overridden
-$graph->xaxis->scale->SetDateFormat('H:i');
-
-// Adjust the start/end to a specific alignment
-$graph->xaxis->scale->SetTimeAlign(MINADJ_10);
-
-$line = new LinePlot($data,$xdata);
-$line->SetLegend('Year 2005');
-$line->SetFillColor('lightblue@0.5');
-$graph->Add($line);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/dbschemaex1.php b/nightly-test-server/jpgraph/Examples/dbschemaex1.php
deleted file mode 100644
index 914a317..0000000
--- a/nightly-test-server/jpgraph/Examples/dbschemaex1.php
+++ /dev/null
@@ -1,118 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	DBSCHEMAEX1.PHP
-// Description:	Draw a DB schema of the DDDA architecture
-// Created: 	2002-08-25
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// License:     This code is released under QPL
-//              Copyright (C) 2001,2002 Johan Persson
-// Note:        The actual drawing of the tables are semi-automatically
-//              but you can easily adjust the individual tables position
-//              with the 'tblposadj' array. 
-//
-//========================================================================
-*/
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-include "../utils/misc/imgdbschema.inc";
-include "../utils/jpdocgen/jpdb.php";
-
-
-// Global callback to format the table header names
-function FormatTblName($aName) {
-    // We want to replace any specifi references to the
-    // 'JpGraph' project with the generic '<project>'
-    return str_replace('JpGraph','<project>', $aName);
-}
-
-// Global callback to format each field name in the table
-function FormatFldName($aName,$aTable) {
-    return $aName;
-}
-
-
-class Driver {
-
-    var $ig, $img, $iscale, $ishape;
-    var $iymax,$ixmax;
-    var $iwidth,$iheight;
-
-    function Driver() {
-
-	// Define Image size and coordinate grid space to work within
-	$this->iwidth = 600;
-	$this->iheight= 750;
-	$this->iymax  = 50;
-	$this->ixmax  = 55;
-
-	// Setup a basic canvas
-	$this->ig = new CanvasGraph($this->iwidth,$this->iheight,'auto');
-	$this->img = $this->ig->img;
-
-	// Define the scale to be used
-	$this->iscale = new CanvasScale($this->ig);
-	$this->iscale->Set(0,$this->ixmax,0,$this->iymax);
-	$this->ishape = new Shape($this->ig,$this->iscale);
-
-	// A small frame around the canvas
-	$this->ig->SetMargin(2,3,2,3);
-	$this->ig->SetMarginColor("teal");
-	$this->ig->InitFrame();
-
-    }
-
-    function Run() {
-
-	$leftm=1.5;	// Left margin (for table schemes) 
-	$topm=5;	// Top margin (for table schemes) 
-	$tblwidth=15;	// Individual table width
-	$tlo=1;		// Offset for top line
-
-	// Add the background color for the project specific tables
-	$this->ishape->IndentedRectangle($leftm,$topm-1,3*$tblwidth+$tlo+6,45,
-					 $tlo+2*$tblwidth+2,30,CORNER_BOTTOMLEFT,
-					 'lightblue');
-
-	// Stroke the tables (series of x,y offsets, If =-1 then use the
-	// automtic positioning
-	$tblposadj=array($tlo,0,$tblwidth+$tlo+2,0,2*$tblwidth+$tlo+4,
-			 0,-1,16,-1,16);
-	$dbschema = new ImgDBSchema('jpgraph_doc','FormatTblName','FormatFldName');
-	$dbschema->SetMargin($leftm,$topm);
-	$dbschema->SetTableWidth($tblwidth);
-	$dbschema->Stroke($this->img,$this->iscale,$tblposadj);
-
-	$tt = new CanvasRectangleText();
-	$tt->SetFillColor('');
-	$tt->SetColor('');
-	$tt->SetFontColor('navy');
-
-	// Add explanation
-	$tt->SetFont(FF_ARIAL,FS_NORMAL,12);
-	$tt->Set('Project specific tables',$tblwidth+$leftm+3,16,15);
-	$tt->Stroke($this->img,$this->iscale);
-
-	// Add title
-	$tt->SetColor('');
-	$tt->SetFont(FF_VERDANA,FS_BOLD,26);
-	$tt->Set('DDDA - DB Schema',9,0.5,30);
-	$tt->Stroke($this->img,$this->iscale);
-
-	// Add a version and date
-	$tt->SetFillColor('yellow');
-	$tt->SetFont(FF_FONT1,FS_NORMAL,10);
-	$tt->Set("Generated: ".date("ymd H:i",time()),1,$this->iymax*0.96,15); 
-	$tt->Stroke($this->img,$this->iscale);
-
-	$this->ig->Stroke();
-    }
-}
-
-$driver = new Driver();
-$driver->Run();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/dupyaxisex1.php b/nightly-test-server/jpgraph/Examples/dupyaxisex1.php
deleted file mode 100644
index 7aa0194..0000000
--- a/nightly-test-server/jpgraph/Examples/dupyaxisex1.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($i)','$i*$i*$i');
-list($xdata,$ydata) = $f->E(-M_PI,M_PI,25);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-$graph->SetMargin(50,50,20,30);	
-$graph->SetFrame(false);
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-
-$graph->title->Set('Duplicating Y-axis');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->SetAxisStyle(AXSTYLE_YBOXIN);
-$graph->xgrid->Show();
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor("blue");
-$lp1->SetWeight(2);
-$graph->Add($lp1);
-
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example0.php b/nightly-test-server/jpgraph/Examples/example0.php
deleted file mode 100644
index 9ccff2b..0000000
--- a/nightly-test-server/jpgraph/Examples/example0.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,250,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetColor("blue");
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example1.1.php b/nightly-test-server/jpgraph/Examples/example1.1.php
deleted file mode 100644
index 3e87553..0000000
--- a/nightly-test-server/jpgraph/Examples/example1.1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
- 
-$ydata = array(11,11,11);
-
-// Create the graph. 
-$graph = new Graph(350,250,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(30,90,40,50);
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->Set("Example 1.1 same y-values");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetLegend("Test 1");
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(5);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example1.2.php b/nightly-test-server/jpgraph/Examples/example1.2.php
deleted file mode 100644
index 77a103c..0000000
--- a/nightly-test-server/jpgraph/Examples/example1.2.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,250,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(30,90,40,50);
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->Set("Dashed lineplot");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetLegend("Test 1");
-$lineplot->SetColor("blue");
-
-// Style can also be specified as SetStyle([1|2|3|4]) or
-// SetStyle("solid"|"dotted"|"dashed"|"lobgdashed")
-$lineplot->SetStyle("dashed");
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example1.php b/nightly-test-server/jpgraph/Examples/example1.php
deleted file mode 100644
index 14921c4..0000000
--- a/nightly-test-server/jpgraph/Examples/example1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->img->SetMargin(50,90,40,50);
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->Set("Examples for graph");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetLegend("Test 1");
-$lineplot->SetColor("blue");
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example10.php b/nightly-test-server/jpgraph/Examples/example10.php
deleted file mode 100644
index f870cd0..0000000
--- a/nightly-test-server/jpgraph/Examples/example10.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-$datax=array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");	
-$graph->img->SetMargin(40,110,20,40);
-$graph->SetScale("textlog");
-$graph->SetY2Scale("log");
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-$graph->yaxis->scale->ticks->SupressFirst();
-$graph->y2axis->scale->ticks->SupressFirst();
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 10");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example11.php b/nightly-test-server/jpgraph/Examples/example11.php
deleted file mode 100644
index fa9c018..0000000
--- a/nightly-test-server/jpgraph/Examples/example11.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$ydata2 = array(1,19,15,7,22,14,5,9,21,13);
-
-$gJpgBrandTiming=true;
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot2=new LinePlot($ydata2);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->Add($lineplot2);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Timing a graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example13.php b/nightly-test-server/jpgraph/Examples/example13.php
deleted file mode 100644
index 0ea9ede..0000000
--- a/nightly-test-server/jpgraph/Examples/example13.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the error plot
-$errplot=new ErrorPlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Simple error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example14.php b/nightly-test-server/jpgraph/Examples/example14.php
deleted file mode 100644
index 98f1c71..0000000
--- a/nightly-test-server/jpgraph/Examples/example14.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the error plot
-$errplot=new ErrorPlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-$errplot->SetCenter();
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Simple error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example15.php b/nightly-test-server/jpgraph/Examples/example15.php
deleted file mode 100644
index 5d93eee..0000000
--- a/nightly-test-server/jpgraph/Examples/example15.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$errplot=new ErrorLinePlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-$errplot->SetCenter();
-$errplot->line->SetWeight(2);
-$errplot->line->SetColor("blue");
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Linear error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-
-// Display the graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/example16.1.php b/nightly-test-server/jpgraph/Examples/example16.1.php
deleted file mode 100644
index a6c315a..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May");
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$l2plot = new LinePlot($l2datay);
-$l2plot->SetFillColor("orange");
-$l2plot->SetLegend("Result");
-
-// Add the plots to the graph
-$graph->Add($l2plot);
-$graph->Add($l1plot);
-
-$graph->title->Set("Mixing line and filled line");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-//$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.2.php b/nightly-test-server/jpgraph/Examples/example16.2.php
deleted file mode 100644
index bae6e2f..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.2.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May");
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($l1plot);
-$graph->Add($bplot);
-
-
-$graph->title->Set("Adding a line plot to a bar graph v1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-//$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.3.php b/nightly-test-server/jpgraph/Examples/example16.3.php
deleted file mode 100644
index 7c58688..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.3.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May");
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($bplot);
-$graph->Add($l1plot);
-
-
-$graph->title->Set("Adding a line plot to a bar graph v1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-//$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.4.php b/nightly-test-server/jpgraph/Examples/example16.4.php
deleted file mode 100644
index 24ff875..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.4.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("intlin");
-
-$graph->img->SetMargin(40,130,20,40);
-$graph->SetShadow();
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($bplot);
-$graph->Add($l1plot);
-
-$graph->title->Set("Adding a line plot to a bar graph v3");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.5.php b/nightly-test-server/jpgraph/Examples/example16.5.php
deleted file mode 100644
index 820fb0b..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.5.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-// Create the graph. 
-$graph = new Graph(350,200,"auto");	
-$graph->img->SetMargin(40,70,20,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->SetColor(array(250,250,250));
-
-$graph->img->SetTransparent("white");
-
-$t1 = new Text("This is a text");
-$t1->Pos(0.5,0.5);
-$t1->SetOrientation("h");
-$t1->SetFont(FF_FONT1,FS_BOLD);
-$t1->SetBox("white","black","gray");
-$t1->SetColor("black");
-$graph->AddText($t1);
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("blue");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-// Create the bar plot
-$l2plot = new BarPlot($l2datay);
-$l2plot->SetFillColor("orange");
-$l2plot->SetLegend("Result");
-
-// Add the plots to the graph
-$graph->Add($l1plot);
-$graph->Add($l2plot);
-
-
-$graph->title->Set("Example 16.3");
-$graph->xaxis->title->Set("Month");
-$graph->yaxis->title->Set("x10,000 US$");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->xaxis->SetTickLabels($datax);
-//$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example16.6.php b/nightly-test-server/jpgraph/Examples/example16.6.php
deleted file mode 100644
index 45fecea..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.6.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-include ("../jpgraph_line.php");
-
-// Create some "fake" regression data
-$datay = array();
-$datay2 = array();
-$datax = array();
-$a=rand(-3,3);
-$b=rand(-5,5);
-for($x=0; $x<20; ++$x) {
-    $datay[] = $a*$x + $b;
-    $datay2[] = $a*$x + $b + rand(-30,30);
-    $datax[] = $x;
-}
- 
-// Create the graph
-$graph = new Graph(300,200,'auto');
-$graph->SetScale("linlin");
-
-// Setup title
-$graph->title->Set("Example of linear regression");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// make sure that the X-axis is always at the
-// bottom at the plot and not just at Y=0 which is
-// the default position
-$graph->xaxis->SetPos('min');
-
-// Create the scatter plot with some nice colors
-$sp1 = new ScatterPlot($datay2,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-
-// Create the regression line
-$lplot = new LinePlot($datay);
-$lplot->SetWeight(2);
-$lplot->SetColor('navy');
-
-// Add the pltos to the line
-$graph->Add($sp1);
-$graph->Add($lplot);
-
-// ... and stroke
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example16.php b/nightly-test-server/jpgraph/Examples/example16.php
deleted file mode 100644
index 4a680a4..0000000
--- a/nightly-test-server/jpgraph/Examples/example16.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_error.php");
-
-$errdatay = array(11,9,2,4,19,26,13,19,7,12);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,30,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$errplot=new ErrorLinePlot($errdatay);
-$errplot->SetColor("red");
-$errplot->SetWeight(2);
-$errplot->SetCenter();
-$errplot->line->SetWeight(2);
-$errplot->line->SetColor("blue");
-
-// Setup the legends
-$errplot->SetLegend("Min/Max");
-$errplot->line->SetLegend("Average");
-
-// Add the plot to the graph
-$graph->Add($errplot);
-
-$graph->title->Set("Linear error plot");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$datax = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($datax);
-
-
-// Display the graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/example17.php b/nightly-test-server/jpgraph/Examples/example17.php
deleted file mode 100644
index c53f9dd..0000000
--- a/nightly-test-server/jpgraph/Examples/example17.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = 		array(11,7,5,8,3,5,5,4,8,6,5,5,3,2,5,1,2,0);
-$datay2 = 	array( 4,5,4,5,6,5,7,4,7,4,4,3,2,4,1,2,2,1);
-$datay3 = 		array(4,5,7,10,13,15,15,22,26,26,30,34,40,43,47,55,60,62);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the linear plots for each category
-$dplot[] = new LinePLot($datay1);
-$dplot[] = new LinePLot($datay2);
-$dplot[] = new LinePLot($datay3);
-
-$dplot[0]->SetFillColor("red");
-$dplot[1]->SetFillColor("blue");
-$dplot[2]->SetFillColor("green");
-
-// Create the accumulated graph
-$accplot = new AccLinePlot($dplot);
-
-// Add the plot to the graph
-$graph->Add($accplot);
-
-$graph->xaxis->SetTextTickInterval(2);
-$graph->title->Set("Example 17");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example18.php b/nightly-test-server/jpgraph/Examples/example18.php
deleted file mode 100644
index cb9bf19..0000000
--- a/nightly-test-server/jpgraph/Examples/example18.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example19.1.php b/nightly-test-server/jpgraph/Examples/example19.1.php
deleted file mode 100644
index 4abe276..0000000
--- a/nightly-test-server/jpgraph/Examples/example19.1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(260,100,"auto");	
-$graph->SetScale("linlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph, linear scale");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example19.php b/nightly-test-server/jpgraph/Examples/example19.php
deleted file mode 100644
index 4523eae..0000000
--- a/nightly-test-server/jpgraph/Examples/example19.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.1.php b/nightly-test-server/jpgraph/Examples/example2.1.php
deleted file mode 100644
index 6c7e02f..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,-3,-8,7,5,-1,9,13,5,-7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot->value->Show();
-$lineplot->value->SetColor("red");
-$lineplot->value->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2.1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.5.php b/nightly-test-server/jpgraph/Examples/example2.5.php
deleted file mode 100644
index af673e2..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.5.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,-3,-8,7,5,-1,9,13,5,-7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2.5");
-$graph->xaxis->title->Set("X-title");
-$graph->xaxis->SetPos("min");
-$graph->yaxis->title->Set("Y-title");
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.6.php b/nightly-test-server/jpgraph/Examples/example2.6.php
deleted file mode 100644
index 300abc1..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.6.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,-3,-8,7,5,-1,9,13,5,-7,-7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetStepStyle();
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2.6 (Line with stepstyle)");
-$graph->xaxis->title->Set("X-title");
-$graph->xaxis->SetPos("min");
-$graph->yaxis->title->Set("Y-title");
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example2.php b/nightly-test-server/jpgraph/Examples/example2.php
deleted file mode 100644
index 3345e5c..0000000
--- a/nightly-test-server/jpgraph/Examples/example2.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,10,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Setup margin and titles
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.1.php b/nightly-test-server/jpgraph/Examples/example20.1.php
deleted file mode 100644
index b778f8d..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.1.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->value->Show();
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.2.php b/nightly-test-server/jpgraph/Examples/example20.2.php
deleted file mode 100644
index 317342c..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.2.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(20);
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->value->Show();
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph with Y-scale grace");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.3.php b/nightly-test-server/jpgraph/Examples/example20.3.php
deleted file mode 100644
index abbedcc..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.3.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(20);
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,10);
-$bplot->value->SetAngle(45);
-$bplot->value->SetFormat('%0.1f');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph with Y-scale grace");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.4.php b/nightly-test-server/jpgraph/Examples/example20.4.php
deleted file mode 100644
index 60acb07..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.4.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(20);
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->SetShadow();
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,10);
-$bplot->value->SetAngle(45);
-$bplot->value->SetFormat('%0.1f');
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph with drop shadow");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.5.php b/nightly-test-server/jpgraph/Examples/example20.5.php
deleted file mode 100644
index 78bc5ef..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.5.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-
-// Setup values
-$bplot->value->Show();
-$bplot->value->SetFormat('%d');
-$bplot->value->SetFont(FF_FONT1,FS_BOLD);
-
-// Center the values in the bar
-$bplot->SetValuePos('center');
-
-// Make the bar a little bit wider
-$bplot->SetWidth(0.7);
-
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Centered values for bars");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example20.php b/nightly-test-server/jpgraph/Examples/example20.php
deleted file mode 100644
index b98d04d..0000000
--- a/nightly-test-server/jpgraph/Examples/example20.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Adjust fill color
-$bplot->SetFillColor('orange');
-$bplot->SetWidth(1.0);
-$graph->Add($bplot);
-
-// Setup the titles
-$graph->title->Set("Bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example21.php b/nightly-test-server/jpgraph/Examples/example21.php
deleted file mode 100644
index d843f50..0000000
--- a/nightly-test-server/jpgraph/Examples/example21.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-
-// Create the grouped bar plot
-$gbplot = new GroupBarPlot(array($b1plot,$b2plot));
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Example 21");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example22.php b/nightly-test-server/jpgraph/Examples/example22.php
deleted file mode 100644
index 17cb818..0000000
--- a/nightly-test-server/jpgraph/Examples/example22.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-
-// Create the grouped bar plot
-$gbplot = new GroupBarPlot(array($b1plot,$b2plot));
-$gbplot->SetWidth(0.9);
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Adjusting the width");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example23.php b/nightly-test-server/jpgraph/Examples/example23.php
deleted file mode 100644
index d529f10..0000000
--- a/nightly-test-server/jpgraph/Examples/example23.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-// Create the bar plots
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("blue");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("orange");
-
-// Create the grouped bar plot
-$gbplot = new AccBarPlot(array($b1plot,$b2plot));
-
-// ...and add it to the graPH
-$graph->Add($gbplot);
-
-$graph->title->Set("Accumulated bar plots");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example24.php b/nightly-test-server/jpgraph/Examples/example24.php
deleted file mode 100644
index dce7868..0000000
--- a/nightly-test-server/jpgraph/Examples/example24.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$data1y=array(12,8,19,3,10,5);
-$data2y=array(8,2,11,7,14,4);
-$data3y=array(3,9,2,7,5,8);
-$data4y=array(1,5,11,2,14,4);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(310,200,"auto");	
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,20,40);
-
-$b1plot = new BarPlot($data1y);
-$b1plot->SetFillColor("orange");
-$b2plot = new BarPlot($data2y);
-$b2plot->SetFillColor("blue");
-$b3plot = new BarPlot($data3y);
-$b3plot->SetFillColor("green");
-$b4plot = new BarPlot($data4y);
-$b4plot->SetFillColor("brown");
-
-// Create the accumulated bar plots
-$ab1plot = new AccBarPlot(array($b1plot,$b2plot));
-$ab2plot = new AccBarPlot(array($b3plot,$b4plot));
-
-// Create the grouped bar plot
-$gbplot = new GroupBarPlot(array($ab1plot,$ab2plot));
-
-// ...and add it to the graph
-$graph->Add($gbplot);
-
-$graph->title->Set("Grouped Accumulated bar plots");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example25.1.php b/nightly-test-server/jpgraph/Examples/example25.1.php
deleted file mode 100644
index 5ecee62..0000000
--- a/nightly-test-server/jpgraph/Examples/example25.1.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Create and add a new text
-$txt=new Text("This is a text");
-$txt->Pos(10,25);
-$txt->SetFont(FF_FONT1,FS_BOLD);
-$txt->SetBox('yellow','navy','gray');
-$txt->SetColor("red");
-$graph->AddText($txt);
-
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example25.2.php b/nightly-test-server/jpgraph/Examples/example25.2.php
deleted file mode 100644
index 42d52c0..0000000
--- a/nightly-test-server/jpgraph/Examples/example25.2.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Create and add a new text
-$txt=new Text("This is a text\nwith many\nand even\nmore\nlines of text");
-$txt->Pos(0.5,0.5,"center","center");
-$txt->SetFont(FF_FONT2,FS_BOLD);
-$txt->ParagraphAlign('cenetered');
-$txt->SetBox('yellow','navy','gray');
-$txt->SetColor("red");
-$graph->AddText($txt);
-
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example25.php b/nightly-test-server/jpgraph/Examples/example25.php
deleted file mode 100644
index 004efdd..0000000
--- a/nightly-test-server/jpgraph/Examples/example25.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,8,19,3,10,5);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Add a drop shadow
-$graph->SetShadow();
-
-// Adjust the margin a bit to make more room for titles
-$graph->img->SetMargin(40,30,20,40);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$graph->Add($bplot);
-
-// Create and add a new text
-$txt=new Text("This is a text");
-$txt->Pos(0,0);
-$txt->SetColor("red");
-$graph->AddText($txt);
-
-
-// Setup the titles
-$graph->title->Set("A simple bar graph");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example26.1.php b/nightly-test-server/jpgraph/Examples/example26.1.php
deleted file mode 100644
index 9176262..0000000
--- a/nightly-test-server/jpgraph/Examples/example26.1.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-$p1->SetCenter(0.4);
-$p1->SetValueType(PIE_VALUE_ABS);
-$p1->value->SetFormat('%d');
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example26.php b/nightly-test-server/jpgraph/Examples/example26.php
deleted file mode 100644
index f9c0ed2..0000000
--- a/nightly-test-server/jpgraph/Examples/example26.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-
-$p1 = new PiePlot($data);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.1.php b/nightly-test-server/jpgraph/Examples/example27.1.php
deleted file mode 100644
index bbcf2cb..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.1.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot3D($data);
-$p1->SetAngle(20);
-$p1->SetSize(0.5);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.2.php b/nightly-test-server/jpgraph/Examples/example27.2.php
deleted file mode 100644
index 0566380..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->ExplodeSlice(1);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.3.php b/nightly-test-server/jpgraph/Examples/example27.3.php
deleted file mode 100644
index d55bfe8..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.3.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(330,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple 3D Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot3D($data);
-$p1->ExplodeSlice(1);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example27.php b/nightly-test-server/jpgraph/Examples/example27.php
deleted file mode 100644
index 918830f..0000000
--- a/nightly-test-server/jpgraph/Examples/example27.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("A simple Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot3D($data);
-$p1->SetSize(0.5);
-$p1->SetCenter(0.45);
-$p1->SetLegends($gDateLocale->GetShortMonth());
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.1.php b/nightly-test-server/jpgraph/Examples/example28.1.php
deleted file mode 100644
index ed4f17f..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.1.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'earth' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("earth");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.2.php b/nightly-test-server/jpgraph/Examples/example28.2.php
deleted file mode 100644
index 9eb755d..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.2.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'pastel' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("pastel");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.3.php b/nightly-test-server/jpgraph/Examples/example28.3.php
deleted file mode 100644
index 0b12e4e..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.3.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'water' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("water");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example28.php b/nightly-test-server/jpgraph/Examples/example28.php
deleted file mode 100644
index 8b8d36b..0000000
--- a/nightly-test-server/jpgraph/Examples/example28.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33,12,33);
-
-$graph = new PieGraph(150,150,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("'sand' Theme");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.5,0.55);
-$p1->value->Show(false);
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/example3.1.php b/nightly-test-server/jpgraph/Examples/example3.1.php
deleted file mode 100644
index fa57d0e..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_UTRIANGLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 3.1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.2.1.php b/nightly-test-server/jpgraph/Examples/example3.2.1.php
deleted file mode 100644
index 5a3da51..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.2.1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,15,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(10,10);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_CIRCLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Grace value, version 1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.2.2.php b/nightly-test-server/jpgraph/Examples/example3.2.2.php
deleted file mode 100644
index 8d2839f..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.2.2.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,15,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-$graph->yaxis->scale->SetGrace(10,10);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_CIRCLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Grace value version 2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->xaxis->SetPos('min');
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.2.php b/nightly-test-server/jpgraph/Examples/example3.2.php
deleted file mode 100644
index 55637f9..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,15,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_CIRCLE);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 3.2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.3.php b/nightly-test-server/jpgraph/Examples/example3.3.php
deleted file mode 100644
index b8b8ab6..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.3.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Adjust the margin
-$graph->img->SetMargin(40,20,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_UTRIANGLE);
-$lineplot->value->show();
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Displaying the values");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.4.php b/nightly-test-server/jpgraph/Examples/example3.4.php
deleted file mode 100644
index 05b1e44..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.4.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Adjust the margin
-$graph->img->SetMargin(40,20,20,40);
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->mark->SetType(MARK_UTRIANGLE);
-$lineplot->value->show();
-$lineplot->value->SetColor('darkred');
-$lineplot->value->SetFont(FF_FONT1,FS_BOLD);
-$lineplot->value->SetFormat('$%0.1f');
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Displaying the values");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example3.php b/nightly-test-server/jpgraph/Examples/example3.php
deleted file mode 100644
index bebbf91..0000000
--- a/nightly-test-server/jpgraph/Examples/example3.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 3");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example4.php b/nightly-test-server/jpgraph/Examples/example4.php
deleted file mode 100644
index 201cefb..0000000
--- a/nightly-test-server/jpgraph/Examples/example4.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$ydata2 = array(1,19,15,7,22,14,5,9,21,13);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->SetScale("textlin");
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot2=new LinePlot($ydata2);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->Add($lineplot2);
-
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->Set("Example 4");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("red");
-$graph->yaxis->SetWeight(2);
-$graph->SetShadow();
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example5.1.php b/nightly-test-server/jpgraph/Examples/example5.1.php
deleted file mode 100644
index df1d4f4..0000000
--- a/nightly-test-server/jpgraph/Examples/example5.1.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->img->SetMargin(40,40,20,40);
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 5");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example5.php b/nightly-test-server/jpgraph/Examples/example5.php
deleted file mode 100644
index d2a27db..0000000
--- a/nightly-test-server/jpgraph/Examples/example5.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(300,200,"auto");	
-$graph->img->SetMargin(40,40,20,40);
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 5");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example6.1.php b/nightly-test-server/jpgraph/Examples/example6.1.php
deleted file mode 100644
index f00e08c..0000000
--- a/nightly-test-server/jpgraph/Examples/example6.1.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph and specify the scale for both Y-axis
-$graph = new Graph(300,240,"auto");	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Adjust the margin
-$graph->img->SetMargin(40,40,20,70);
-
-// Create the two linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Adjust the axis color
-$graph->y2axis->SetColor("orange");
-$graph->yaxis->SetColor("blue");
-
-$graph->title->Set("Example 6.1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set the colors for the plots 
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Set the legends for the plots
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Adjust the legend position
-$graph->legend->SetLayout(LEGEND_HOR);
-$graph->legend->Pos(0.4,0.95,"center","bottom");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example6.2.php b/nightly-test-server/jpgraph/Examples/example6.2.php
deleted file mode 100644
index b5e38cd..0000000
--- a/nightly-test-server/jpgraph/Examples/example6.2.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph and specify the scale for both Y-axis
-$graph = new Graph(300,240,"auto");	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-// Adjust the margin
-$graph->img->SetMargin(40,40,20,70);
-
-// Create the two linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot->SetStepStyle();
-
-// Adjust the axis color
-$graph->yaxis->SetColor("blue");
-
-$graph->title->Set("Example 6.2");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set the colors for the plots 
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-// Set the legends for the plots
-$lineplot->SetLegend("Plot 1");
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-// Adjust the legend position
-$graph->legend->SetLayout(LEGEND_HOR);
-$graph->legend->Pos(0.4,0.95,"center","bottom");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example6.php b/nightly-test-server/jpgraph/Examples/example6.php
deleted file mode 100644
index 6e4b22f..0000000
--- a/nightly-test-server/jpgraph/Examples/example6.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph and specify the scale for both Y-axis
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Adjust the margin
-$graph->img->SetMargin(40,140,20,40);
-
-// Create the two linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Adjust the axis color
-$graph->y2axis->SetColor("orange");
-$graph->yaxis->SetColor("blue");
-
-$graph->title->Set("Example 6");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set the colors for the plots 
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-// Set the legends for the plots
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Adjust the legend position
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example7.php b/nightly-test-server/jpgraph/Examples/example7.php
deleted file mode 100644
index 24d9f7a..0000000
--- a/nightly-test-server/jpgraph/Examples/example7.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,70,265,29,111,91,198,225,593,251);
-
-// Create the graph.
-$graph = new Graph(350,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetY2Scale("log");
-$graph->SetShadow();
-$graph->img->SetMargin(40,110,20,40);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$graph->yaxis->SetColor('blue');
-
-$graph->title->Set("Example 7");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-$lineplot2->SetWeight(2);
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example8.1.php b/nightly-test-server/jpgraph/Examples/example8.1.php
deleted file mode 100644
index 3025c2b..0000000
--- a/nightly-test-server/jpgraph/Examples/example8.1.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");	
-$graph->SetScale("textlog");
-$graph->SetY2Scale("log");
-
-$graph->SetShadow();
-$graph->SetMargin(40,110,20,40);
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-$lineplot2=new LinePlot($y2data);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->scale->ticks->SupressFirst();
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-
-$graph->title->Set("Example 8");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-$graph->y2axis->SetColor("orange");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example8.php b/nightly-test-server/jpgraph/Examples/example8.php
deleted file mode 100644
index 64c62e7..0000000
--- a/nightly-test-server/jpgraph/Examples/example8.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");	
-$graph->SetScale("textlog");
-$graph->SetShadow();
-$graph->img->SetMargin(40,110,20,40);
-
-// Show the gridlines
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Example 8");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-// Adjust the color of the Y axis
-$graph->yaxis->SetColor("blue");
-
-// Specifya a legend
-$lineplot->SetLegend("Plot 1");
-
-// Adjust the position of the grid box
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example9.1.php b/nightly-test-server/jpgraph/Examples/example9.1.php
deleted file mode 100644
index 896682e..0000000
--- a/nightly-test-server/jpgraph/Examples/example9.1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,42,5,1,9,13,5,7);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,40);
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Specify the tick labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-$graph->xaxis->SetTextLabelInterval(2);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example9.2.php b/nightly-test-server/jpgraph/Examples/example9.2.php
deleted file mode 100644
index 3e5bf49..0000000
--- a/nightly-test-server/jpgraph/Examples/example9.2.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,42,5,1,9,13,5,7);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,50);
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Specify the tick labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-//$graph->xaxis->SetTextLabelInterval(2);
-$graph->xaxis->SetLabelAngle(90);
-
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/example9.php b/nightly-test-server/jpgraph/Examples/example9.php
deleted file mode 100644
index 27a73f5..0000000
--- a/nightly-test-server/jpgraph/Examples/example9.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,42,5,1,9,13,5,7);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,40);
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Specify the tick labels
-$a = $gDateLocale->GetShortMonth();
-$graph->xaxis->SetTickLabels($a);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/exampleex9.php b/nightly-test-server/jpgraph/Examples/exampleex9.php
deleted file mode 100644
index 0c7a61f..0000000
--- a/nightly-test-server/jpgraph/Examples/exampleex9.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-$datax = array("Jan","Feb","Mar","Apr","Maj","Jun","Jul","aug","Sep","Oct");
-
-// Create the graph. These two calls are always required
-// We also specify a 2 min timeout for the cached image
-$graph = new Graph(350,200,"auto");
-$graph->SetScale("textlog");
-
-$graph->img->SetMargin(40,110,20,40);
-
-$graph->SetY2Scale("log");
-$graph->SetShadow();
-
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,false);
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-$graph->yaxis->scale->ticks->SupressFirst();
-$graph->y2axis->scale->ticks->SupressFirst();
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Examples 9");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetTextTickInterval(2);
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/fieldscatterex1.php b/nightly-test-server/jpgraph/Examples/fieldscatterex1.php
deleted file mode 100644
index ed2a542..0000000
--- a/nightly-test-server/jpgraph/Examples/fieldscatterex1.php
+++ /dev/null
@@ -1,92 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$polex = 6;
-$poley = 40;
-
-function FldCallback($x,$y,$a) {
-    GLOBAL $polex, $poley;
-    $maxr = 3000;
-
-    // Size and arrow size is constant
-    $size="";
-    $arrowsize="";
-
-    // Since we have different scales we need the data points
-    // to be of the same magnitude to give it a distance
-    // interpretation.
-    $x *= 10; 
-
-    // Colors gets colder the further out we go from the center
-    $r = ($x-$polex*10)*($x-$polex*10)+($y-$poley)*($y-$poley);
-    $f = $r/$maxr;
-    if( $f > 1 ) $f=1;
-    $red = floor((1-$f)*255);
-    $blue = floor($f*255);
-    $color = array($red,0,$blue);
-    //echo "x=$x, y=$y, blue=$blue, red=$red<br>";
-    return array($color,$size,$arrowsize);
-}
-
-// Create data for a simulated pseudo-magnetic radient field
-$datax = array();
-$datay = array();
-$angle = array();
-for($x=1; $x < 10; ++$x ) {
-    for($y=10; $y<100; $y += 10) {
-	$a = -1;
-	if( $x==$polex && $y==$poley ) continue;
-	if( $x==$polex ) {
-	    if( $y > $poley ) $a=90;
-	    else $a = 270;
-	}
-	if( $y==$poley ) {
-	    if( $x  > $polex ) $a=0;
-	    else  $a=180;	    
-	}
-	if( $a == -1 ) {
-	    $d1 = $y-$poley;
-	    $d2 = ($polex-$x)*20;
-	    if( $y < $poley ) $d2 *= -1;
-	    $h = sqrt($d1*$d1+$d2*$d2);
-	    $t = -$d2/$h;
-	    $ac = acos($t);
-	    if( $y < $poley ) $ac += M_PI;
-	    $a = $ac * 180/M_PI;
-	}
-	$datax[] = $x;
-	$datay[] = $y;
-	$angle[] = $a;
-    }
-}
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetScale("intlin",0,100,0,10);
-$graph->SetMarginColor('lightblue');
-
-
-// ..and titles
-$graph->title->Set("Field plot");
-
-// Setup the field plot
-$fp = new FieldPlot($datay,$datax,$angle);
-
-// Setup formatting callback
-$fp->SetCallback('FldCallback');
-
-// First size argument is length (in pixels of arrow) 
-// Second size argument is roughly size of arrow. Arrow size is specified as
-// an integer in the range [0,9]
-$fp->arrow->SetSize(20,2);
-$fp->arrow->SetColor('navy');
-
-$graph->Add($fp);
-
-// .. and output
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledgridex1.php b/nightly-test-server/jpgraph/Examples/filledgridex1.php
deleted file mode 100644
index adac888..0000000
--- a/nightly-test-server/jpgraph/Examples/filledgridex1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(20,15,23,15);
-$datay2 = array(12,9,42,8);
-$datay3 = array(5,17,32,24);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,50,30,30);
-
-$graph->title->Set('Filled Y-grid');
-
-
-$graph->yaxis->HideZeroLabel();
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the first line
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-$p1->SetLegend('Line 1');
-$graph->Add($p1);
-
-// Create the second line
-$p2 = new LinePlot($datay2);
-$p2->SetColor("red");
-$p2->SetLegend('Line 2');
-$graph->Add($p2);
-
-// Create the third line
-$p3 = new LinePlot($datay3);
-$p3->SetColor("orange");
-$p3->SetLegend('Line 3');
-$graph->Add($p3);
-
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetPos(0.1,0.1,'right','top');
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledline01.php b/nightly-test-server/jpgraph/Examples/filledline01.php
deleted file mode 100644
index e1177b8..0000000
--- a/nightly-test-server/jpgraph/Examples/filledline01.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,'auto');
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex01.1.php b/nightly-test-server/jpgraph/Examples/filledlineex01.1.php
deleted file mode 100644
index 124690d..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex01.1.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetShadow();
-$graph->SetGridDepth(DEPTH_FRONT);
-
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex01.php b/nightly-test-server/jpgraph/Examples/filledlineex01.php
deleted file mode 100644
index 3bc240b..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex01.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetShadow();
-
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex02.php b/nightly-test-server/jpgraph/Examples/filledlineex02.php
deleted file mode 100644
index 9147608..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex02.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of filled line plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(Starting from Y=0)");
-
-$graph->yaxis->scale->SetAutoMin(0);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor("orange");
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$graph->Add($p1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/filledlineex03.php b/nightly-test-server/jpgraph/Examples/filledlineex03.php
deleted file mode 100644
index 21698b6..0000000
--- a/nightly-test-server/jpgraph/Examples/filledlineex03.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(11,30,20,13,10,'x',16,12,'x',15,4,9);
-
-// Setup the graph
-$graph = new Graph(400,250);
-$graph->SetScale('intlin');
-$graph->title->Set('Filled line with NULL values');
-//Make sure data starts from Zero whatever data we have
-$graph->yscale->SetAutoMin(0);
-
-$p1 = new LinePlot($datay);
-$p1->SetFillColor('lightblue');
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/filledstepstyleex1.php b/nightly-test-server/jpgraph/Examples/filledstepstyleex1.php
deleted file mode 100644
index 41bcbae..0000000
--- a/nightly-test-server/jpgraph/Examples/filledstepstyleex1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-include("../jpgraph.php");
-include("../jpgraph_line.php");
-
-// create the graph
-$graph= new Graph(400,250,"auto");
-
-$ydata = array(5,10,15,20,15,10);
-
-$graph->SetScale("textlin");
-$graph->SetShadow(true);
-$graph->SetMarginColor("antiquewhite");
-$graph->img->SetMargin(60,40,40,50);
-$graph->img->setTransparent("white");
-$graph->xaxis->SetFont(FF_FONT1);
-$graph->xaxis->setTextTickInterval(1);
-$graph->xaxis->SetTextLabelInterval(1);
-$graph->legend->SetFillColor("antiquewhite");
-$graph->legend->SetShadow(true);
-$graph->legend->SetLayout(LEGEND_VERT);
-$graph->legend->Pos(0.02,0.01);
-$graph->title->Set("Step Styled Example");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot = new LinePlot($ydata);
-$lineplot->SetColor("black");
-$lineplot->setFillColor("gray7");
-$lineplot->SetStepStyle();
-$lineplot->SetLegend(" 2002 ");
-
-// add plot to the graph
-$graph->Add($lineplot);
-$graph->ygrid->show(false,false);
-
-// display graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/fixscale_radarex1.php b/nightly-test-server/jpgraph/Examples/fixscale_radarex1.php
deleted file mode 100644
index b2cb121..0000000
--- a/nightly-test-server/jpgraph/Examples/fixscale_radarex1.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-$graph = new RadarGraph(300,300,'auto');
-$graph->SetScale("lin",0,50);
-$graph->yscale->ticks->Set(25,5);
-$graph->SetColor("white");
-$graph->SetShadow();
-
-$graph->SetCenter(0.5,0.55);
-
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-$graph->axis->SetWeight(2);
-
-// Uncomment the following lines to also show grid lines.
-//$graph->grid->SetLineStyle("longdashed");
-//$graph->grid->SetColor("navy");
-//$graph->grid->Show();
-	
-$graph->ShowMinorTickMarks();
-		
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->SetTitles(array("One","Two","Three","Four","Five","Sex","Seven","Eight","Nine","Ten"));
-		
-$plot = new RadarPlot(array(12,35,20,30,33,15,37));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFillColor('lightblue');
-$plot->SetLineWeight(2);
-
-$graph->Add($plot);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/funcex1.php b/nightly-test-server/jpgraph/Examples/funcex1.php
deleted file mode 100644
index b3832d3..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex1.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($x)*$x');
-list($xdata,$ydata) = $f->E(-1.2*M_PI,1.2*M_PI);
-
-$f = new FuncGenerator('$x*$x');
-list($x2data,$y2data) = $f->E(-2,2);
-
-// Setup the basic graph
-$graph = new Graph(450,350,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-
-// ... and titles
-$graph->title->Set('Example of Function plot');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(With some more advanced axis formatting\nHiding first and last label)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->xgrid->Show();
-
-$graph->yaxis->SetPos(0);
-$graph->yaxis->SetWeight(2);
-$graph->yaxis->HideZeroLabel();
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('black','darkblue');
-$graph->yaxis->HideTicks(true,false);
-$graph->yaxis->HideFirstLastLabel();
-
-$graph->xaxis->SetWeight(2);
-$graph->xaxis->HideZeroLabel();
-$graph->xaxis->HideFirstLastLabel();
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('black','darkblue');
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor('blue');
-$lp1->SetWeight(2);
-
-$lp2 = new LinePlot($y2data,$x2data);
-list($xm,$ym)=$lp2->Max();
-$lp2->SetColor('red');
-$lp2->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Add($lp2);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/funcex2.php b/nightly-test-server/jpgraph/Examples/funcex2.php
deleted file mode 100644
index ae0d38f..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($i)','$i*$i*$i');
-list($xdata,$ydata) = $f->E(-M_PI,M_PI,25);
-
-$graph = new Graph(380,450,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-$graph->SetAxisStyle(AXSTYLE_SIMPLE);
-
-//$graph->xaxis->SetLabelFormat('%.1f');
-
-$graph->title->Set("Function plot with marker");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXOUT Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->mark->SetType(MARK_FILLEDCIRCLE);
-$lp1->mark->SetFillColor("red");
-$lp1->SetColor("blue");
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/funcex3.php b/nightly-test-server/jpgraph/Examples/funcex3.php
deleted file mode 100644
index e49d626..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex3.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($i)','$i*$i*$i');
-list($xdata,$ydata) = $f->E(-M_PI,M_PI,25);
-
-$graph = new Graph(350,430,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetBox(true,'black',2);	
-$graph->SetMarginColor('white');
-$graph->SetColor('lightyellow');
-$graph->SetAxisStyle(AXSTYLE_BOXIN);
-$graph->xgrid->Show();
-
-
-//$graph->xaxis->SetLabelFormat('%.0f');
-
-$graph->img->SetMargin(50,50,60,40);		
-
-$graph->title->Set("Function plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXIN Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor("blue");
-$lp1->SetWeight(2);
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/funcex4.php b/nightly-test-server/jpgraph/Examples/funcex4.php
deleted file mode 100644
index 087e8cd..0000000
--- a/nightly-test-server/jpgraph/Examples/funcex4.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-$f = new FuncGenerator('cos($x)*$x');
-list($xdata,$ydata) = $f->E(-1.2*M_PI,1.2*M_PI);
-
-$f = new FuncGenerator('$x*$x');
-list($x2data,$y2data) = $f->E(-2,2);
-
-// Setup the basic graph
-$graph = new Graph(450,350,"auto");
-$graph->SetScale("linlin");
-//$graph->SetShadow();
-$graph->img->SetMargin(5,10,60,9);	
-$graph->SetBox(true,'green',2);	
-$graph->SetMarginColor('black');
-$graph->SetColor('black');
-
-// ... and titles
-$graph->title->Set('Example of Function plot');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor('lightgreen');
-$graph->subtitle->Set("(With some more advanced axis formatting\nHiding first and last label)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor('lightgreen');
-
-$graph->xgrid->Show();
-$graph->xgrid->SetColor('darkgreen');
-$graph->ygrid->SetColor('darkgreen');
-
-$graph->yaxis->SetPos(0);
-$graph->yaxis->SetWeight(2);
-$graph->yaxis->HideZeroLabel();
-$graph->yaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->SetColor('green','green');
-$graph->yaxis->HideTicks(true,true);
-$graph->yaxis->HideFirstLastLabel();
-
-$graph->xaxis->SetWeight(2);
-$graph->xaxis->HideZeroLabel();
-$graph->xaxis->HideFirstLastLabel();
-$graph->xaxis->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->SetColor('green','green');
-
-$lp1 = new LinePlot($ydata,$xdata);
-$lp1->SetColor('yellow');
-$lp1->SetWeight(2);
-
-$lp2 = new LinePlot($y2data,$x2data);
-list($xm,$ym)=$lp2->Max();
-$lp2->SetColor('blue');
-$lp2->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Add($lp2);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttconstrainex0.php b/nightly-test-server/jpgraph/Examples/ganttconstrainex0.php
deleted file mode 100644
index a9a8920..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttconstrainex0.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// 
-// The data for the graphs
-//
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-  array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-16",''),
-  array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",''),
-  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// The constrains between the activities
-//$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
-//		    array(2,3,CONSTRAIN_STARTSTART));
-$constrains = array();
-
-$progress = array(array(1,0.4));
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Example with grouping and constrains");
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);
-
-// Add the specified activities
-$graph->CreateSimple($data,$constrains,$progress);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttconstrainex1.php b/nightly-test-server/jpgraph/Examples/ganttconstrainex1.php
deleted file mode 100644
index 7d3ed53..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttconstrainex1.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// 
-// The data for the graphs
-//
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-  array(1,ACTYPE_NORMAL,   "  Label 1",      "2001-10-26","2001-11-18",''),
-  array(2,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-16",''),
-  array(3,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",''),
-  array(4,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// The constrains between the activities
-$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
-		    array(1,3,CONSTRAIN_STARTSTART),
-		    array(3,4,CONSTRAIN_STARTSTART));
-
-$progress = array(array(1,0.4));
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Example with grouping and constrains");
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);
-
-// Add the specified activities
-$graph->CreateSimple($data,$constrains,$progress);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttconstrainex2.php b/nightly-test-server/jpgraph/Examples/ganttconstrainex2.php
deleted file mode 100644
index 2e079dd..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttconstrainex2.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-
-// 
-// The data for the graphs
-//
-$data = array(
-    array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-    array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-11-01","2001-11-20",''),
-    array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-10-26","2001-11-03",''),
-    array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// The constrains between the activities
-$constrains = array(array(2,1,CONSTRAIN_ENDSTART),
-		    array(1,3,CONSTRAIN_STARTSTART));
-
-$progress = array(array(1,0.4));
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Example with grouping and constrains");
-//$graph->SetFrame(false);
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR);
-
-// Add the specified activities
-$graph->CreateSimple($data,$constrains,$progress);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttcsimex01.php b/nightly-test-server/jpgraph/Examples/ganttcsimex01.php
deleted file mode 100644
index a575c9c..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttcsimex01.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-// Gantt example to create CSIM
-
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$bar1 = new GanttBar(0,"Activity 1","2001-12-21","2002-01-20");
-$bar1->SetCSIMTarget('#','Go back 1');
-$bar1->title->SetCSIMTarget('#','Go back 1 (title)');
-$bar2 = new GanttBar(1,"Activity 2","2002-01-03","2002-01-25");
-$bar2->SetCSIMTarget('#','Go back 2');
-$bar2->title->SetCSIMTarget('#','Go back 2 (title)');
-
-$graph = new GanttGraph(500);
-$graph->title->Set("Example with image map");
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-
-$graph->Add(array($bar1,$bar2));
-
-// And stroke
-$graph->StrokeCSIM('ganttcsimex01.php');
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttcsimex02.php b/nightly-test-server/jpgraph/Examples/ganttcsimex02.php
deleted file mode 100644
index da51f88..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttcsimex02.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-// Gantt example to create CSIM using CreateSimple()
-
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",'',
-	'#1','Go home'),
-  array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-16",'ab,cd',
-	'#2','Go home'),
-  array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",'ek',
-	'#3','Go home'),
-  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2',
-	'#4','Go home') );
-
-// The constrains between the activities
-$constrains = array(array(1,2,CONSTRAIN_ENDSTART),
-		    array(2,3,CONSTRAIN_STARTSTART));
-
-$progress = array(array(1,0.4));
-
-$graph = new GanttGraph(500);
-$graph->title->Set("Example with image map");
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-
-$graph->CreateSimple($data,$constrains,$progress);
-
-// Add the specified activities
-//SetupSimpleGantt($graph,$data,$constrains,$progress);
-
-// And stroke
-$graph->StrokeCSIM('ganttcsimex02.php');
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttex00.php b/nightly-test-server/jpgraph/Examples/ganttex00.php
deleted file mode 100644
index 4214189..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex00.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// A new graph with automatic size
-$graph = new GanttGraph(0,0,"auto");
-
-//  A new activity on row '0'
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-$graph->Add($activity);
-
-// Display the Gantt chart
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex01.php b/nightly-test-server/jpgraph/Examples/ganttex01.php
deleted file mode 100644
index 30e6263..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex01.php
+++ /dev/null
@@ -1,40 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex02.php b/nightly-test-server/jpgraph/Examples/ganttex02.php
deleted file mode 100644
index 76ec5b4..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex02.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// Show day, week and month scale
-//$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-$graph->ShowHeaders(GANTT_HWEEK );
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_WNBR);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-02-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex03.php b/nightly-test-server/jpgraph/Examples/ganttex03.php
deleted file mode 100644
index d4a0e40..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex03.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(7,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex04.php b/nightly-test-server/jpgraph/Examples/ganttex04.php
deleted file mode 100644
index 5796854..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex04.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$graph->Add($milestone);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex05.php b/nightly-test-server/jpgraph/Examples/ganttex05.php
deleted file mode 100644
index 1ea07b0..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex05.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex06.php b/nightly-test-server/jpgraph/Examples/ganttex06.php
deleted file mode 100644
index 35b28d5..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex06.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex07.php b/nightly-test-server/jpgraph/Examples/ganttex07.php
deleted file mode 100644
index d2902b9..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex07.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex08.php b/nightly-test-server/jpgraph/Examples/ganttex08.php
deleted file mode 100644
index 9255433..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex08.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex09.php b/nightly-test-server/jpgraph/Examples/ganttex09.php
deleted file mode 100644
index 7ebf6b5..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex09.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(8);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex10.php b/nightly-test-server/jpgraph/Examples/ganttex10.php
deleted file mode 100644
index 1966ea1..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex10.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(1);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Add a right marker
-$activity2->rightMark->Show();	
-$activity2->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity2->rightMark->SetWidth(13);
-$activity2->rightMark->SetColor("red");
-$activity2->rightMark->SetFillColor("red");
-$activity2->rightMark->title->Set("M5");
-$activity2->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity2->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity2->SetHeight(1);
-
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex11.php b/nightly-test-server/jpgraph/Examples/ganttex11.php
deleted file mode 100644
index 0408f55..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex11.php
+++ /dev/null
@@ -1,89 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Add a right marker
-$activity2->rightMark->Show();	
-$activity2->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity2->rightMark->SetWidth(13);
-$activity2->rightMark->SetColor("red");
-$activity2->rightMark->SetFillColor("red");
-$activity2->rightMark->title->Set("M5");
-$activity2->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity2->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex12.php b/nightly-test-server/jpgraph/Examples/ganttex12.php
deleted file mode 100644
index e19dd39..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex12.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("A nice main title");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(Draft version)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(0);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Add a right marker
-$activity->rightMark->Show();	
-$activity->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity->rightMark->SetWidth(13);
-$activity->rightMark->SetColor("red");
-$activity->rightMark->SetFillColor("red");
-$activity->rightMark->title->Set("M5");
-$activity->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-20");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Add a right marker
-$activity2->rightMark->Show();	
-$activity2->rightMark->SetType(MARK_FILLEDCIRCLE);
-$activity2->rightMark->SetWidth(13);
-$activity2->rightMark->SetColor("red");
-$activity2->rightMark->SetFillColor("red");
-$activity2->rightMark->title->Set("M5");
-$activity2->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$activity2->rightMark->title->SetColor("white");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Create a miletone
-$milestone = new MileStone(2,"Milestone","2002-01-15","2002-01-15");
-$milestone->title->SetColor("black");
-$milestone->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($milestone);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex13.php b/nightly-test-server/jpgraph/Examples/ganttex13.php
deleted file mode 100644
index aff2d2f..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex13.php
+++ /dev/null
@@ -1,71 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex13.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Instead of week number show the date for the first day in the week
-// on the week scale
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Make the week scale font smaller than the default
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR4);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[ER,TR]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[BO,SW,JC]");
-
-// ADjust font for caption
-$activity2->caption->SetFont(FF_ARIAL,FS_BOLD);
-$activity2->caption->SetColor("darkred");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex14.php b/nightly-test-server/jpgraph/Examples/ganttex14.php
deleted file mode 100644
index ef7195c..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex14.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex14.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex15.php b/nightly-test-server/jpgraph/Examples/ganttex15.php
deleted file mode 100644
index af1468d..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex15.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex15.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex16.php b/nightly-test-server/jpgraph/Examples/ganttex16.php
deleted file mode 100644
index c8e2a03..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex16.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex16.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-$graph->scale->tableTitle->Show();
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex17.php b/nightly-test-server/jpgraph/Examples/ganttex17.php
deleted file mode 100644
index f8f90f8..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex17.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex17.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-
-// Modify the appearance of the dividing lines 
-$graph->scale->divider->SetWeight(3);
-$graph->scale->divider->SetColor("navy");
-$graph->scale->dividerh->SetWeight(3);
-$graph->scale->dividerh->SetColor("navy");
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex18.php b/nightly-test-server/jpgraph/Examples/ganttex18.php
deleted file mode 100644
index 7ccfe4f..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex18.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex18.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-
-// Modify the appearance of the dividing lines 
-$graph->scale->divider->SetWeight(3);
-$graph->scale->divider->SetColor("navy");
-
-$graph->scale->dividerh->SetWeight(3);
-$graph->scale->dividerh->SetColor("navy");
-
-$graph->SetBox(true,"navy",3);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex19.php b/nightly-test-server/jpgraph/Examples/ganttex19.php
deleted file mode 100644
index 091d82e..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex19.php
+++ /dev/null
@@ -1,84 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetBox();
-$graph->SetShadow();
-
-// Use swedish locale
-$graph->scale->SetDateLocale("sv_SE");
-
-// Add title and subtitle
-$graph->title->Set("Example of captions");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->subtitle->Set("(ganttex19.php)");
-
-// Show day, week and month scale
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HWEEK | GANTT_HMONTH);
-
-// Set table title
-$graph->scale->tableTitle->Set("(Rev: 1.22)");
-$graph->scale->tableTitle->SetFont(FF_FONT1,FS_BOLD);
-$graph->scale->SetTableTitleBackground("silver");
-$graph->scale->tableTitle->Show();
-
-$graph->scale->divider->SetStyle('solid');
-$graph->scale->divider->SetWeight(2);
-$graph->scale->divider->SetColor('black');
-
-
-$graph->SetBox(true,"navy",2);
-
-
-// Use the short name of the month together with a 2 digit year
-// on the month scale
-$graph->scale->month->SetStyle(MONTHSTYLE_SHORTNAMEYEAR2);
-$graph->scale->month->SetFontColor("white");
-$graph->scale->month->SetBackgroundColor("blue");
-
-// 0 % vertical label margin
-$graph->SetLabelVMarginFactor(1);
-
-// Format the bar for the first activity
-// ($row,$title,$startdate,$enddate)
-$activity = new GanttBar(0,"Project","2001-12-21","2002-01-07","[50%]");
-
-// Yellow diagonal line pattern on a red background
-$activity->SetPattern(BAND_RDIAG,"yellow");
-$activity->SetFillColor("red");
-
-// Set absolute height
-$activity->SetHeight(10);
-
-// Specify progress to 60%
-$activity->progress->Set(0.6);
-$activity->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Format the bar for the second activity
-// ($row,$title,$startdate,$enddate)
-$activity2 = new GanttBar(1,"Project","2001-12-21","2002-01-02","[30%]");
-
-// Yellow diagonal line pattern on a red background
-$activity2->SetPattern(BAND_RDIAG,"yellow");
-$activity2->SetFillColor("red");
-
-// Set absolute height
-$activity2->SetHeight(10);
-
-// Specify progress to 30%
-$activity2->progress->Set(0.3);
-$activity2->progress->SetPattern(BAND_HVCROSS,"blue");
-
-// Finally add the bar to the graph
-$graph->Add($activity);
-$graph->Add($activity2);
-
-// Add a vertical line
-$vline = new GanttVLine("2001-12-24","Phase 1");
-$vline->SetDayOffset(0.5);
-//$graph->Add($vline);
-
-// ... and display it
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/ganttex30.php b/nightly-test-server/jpgraph/Examples/ganttex30.php
deleted file mode 100644
index 9d73de2..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex30.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-// Gantt example 30
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Standard calls to create a new graph
-$graph = new GanttGraph(0,0,"auto");
-$graph->SetShadow();
-$graph->SetBox();
-
-// Titles for chart
-$graph->title->Set("General conversion plan");
-$graph->subtitle->Set("(Revision: 2001-11-18)");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// For illustration we enable all headers. 
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-
-// For the week we choose to show the start date of the week
-// the default is to show week number (according to ISO 8601)
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Change the scale font 
-$graph->scale->week->SetFont(FF_FONT0);
-$graph->scale->year->SetFont(FF_ARIAL,FS_BOLD,12);
-
-
-// Setup some data for the gantt bars
-$data = array(
-	array(0,"Group 1", "2001-10-29","2001-11-27",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-11-8","2001-12-14"),
-	array(2,"  Label 3", "2001-11-01","2001-11-8"),
-	array(4,"Group 2", "2001-11-07","2001-12-19",FF_FONT1,FS_BOLD,8),
-	array(5,"  Label 4", "2001-11-8","2001-12-19"),
-	array(6,"  Label 5", "2001-11-01","2001-11-8")
-	);
-
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",0.5);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-		
-	// If you like each bar can have a shadow
-	// $bar->SetShadow(true,"darkgray");	
-	
-	// For illustration lets make each bar be red with yellow diagonal stripes
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	
-	// To indicate progress each bar can have a smaller bar within
-	// For illustrative purpose just set the progress to 50% for each bar
-	$bar->progress->Set(0.5);
-	
-	// Each bar may also have optional left and right plot marks
-	// As illustration lets put a filled circle with a number at the end
-	// of each bar
-	$bar->rightMark->SetType(MARK_FILLEDCIRCLE);
-	$bar->rightMark->SetFillColor("red");
-	$bar->rightMark->SetColor("red");
-	$bar->rightMark->SetWidth(10);
-	
-	// Title for the mark
-	$bar->rightMark->title->Set("".$i+1);
-	$bar->rightMark->title->SetColor("white");
-	$bar->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,10);
-	$bar->rightMark->Show();
-	
-	// ... and add the bar to the gantt chart
-	$graph->Add($bar);
-}
-
-// Create a milestone mark
-$ms = new MileStone(7,"M5","2001-12-10","10/12");
-$ms->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($ms);
-
-// Create a vertical line to emphasize the milestone
-$vl = new GanttVLine("2001-12-10","Phase 1","darkred");
-$vl->SetDayOffset(0.5);	// Center the line in the day
-$graph->Add($vl);
-
-// Output the graph
-$graph->Stroke();
-
-// EOF
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/ganttex_slice.php b/nightly-test-server/jpgraph/Examples/ganttex_slice.php
deleted file mode 100644
index 6ff7405..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttex_slice.php
+++ /dev/null
@@ -1,78 +0,0 @@
-<?php
-// $Id$
-// Gantt example with sunday week start and only shows a partial graph
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Setup Gantt graph
-$graph = new GanttGraph(0,0,'auto');
-$graph->SetShadow();
-$graph->SetBox();
-
-// Only show part of the Gantt
-$graph->SetDateRange('2001-11-22','2002-1-24');
-
-// Weeks start on Sunday
-$graph->scale->SetWeekStart(0);
-
-$graph->title->Set("General conversion plan");
-$graph->subtitle->Set("(Slice between 2001-11-22 to 2002-01-24)");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,20);
-
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-
-
-$data = array(
-	array(0,"Group 1\tJohan", "2002-1-23","2002-01-28",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-10-26","2001-11-16"),
-	array(2,"  Label 3", "2001-11-30","2001-12-01"),
-	array(4,"Group 2", "2001-11-30","2001-12-22",FF_FONT1,FS_BOLD,8),
-	array(5,"  Label 4", "2001-11-30","2001-12-1"),
-	array(6,"  Label 5", "2001-12-6","2001-12-8"),
-	array(8,"    Label 8", "2001-11-30","2002-01-02")			
-	);
-
-
-// make up some fictionary activity bars
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[5%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-		
-	$bar->rightMark->Show();
-	$bar->rightMark->SetType(MARK_FILLEDCIRCLE);
-	$bar->rightMark->SetWidth(8);
-	$bar->rightMark->SetColor("red");
-	$bar->rightMark->SetFillColor("red");
-	$bar->rightMark->title->Set($i+1);
-	$bar->rightMark->title->SetFont(FF_ARIAL,FS_BOLD,12);
-	$bar->rightMark->title->SetColor("white");
-
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	$bar->progress->Set($i/10);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	
-	$graph->Add($bar);
-}
-
-
-// The line will NOT be shown since it is outside the specified slice
-$vline = new GanttVLine("2002-02-28");
-$vline->title->Set("2002-02-28");
-$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
-$graph->Add($vline);
-
-// The milestone will NOT be shown since it is outside the specified slice
-$ms = new MileStone(7,"M5","2002-01-28","28/1");
-$ms->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($ms);
-
-$graph->Stroke();
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantthgridex1.php b/nightly-test-server/jpgraph/Examples/gantthgridex1.php
deleted file mode 100644
index 21ce4d1..0000000
--- a/nightly-test-server/jpgraph/Examples/gantthgridex1.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-// Gantt horizontal grid example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-
-// Some dummy data for some activities
-$data = array(
-	array(0,"Group 1  Johan", "2001-10-23","2001-11-06",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-10-26","2001-11-04"),
-	array(3,"Group 2", "2001-11-20","2001-11-28",FF_FONT1,FS_BOLD,8),
-	array(4,"  Label 1", "2001-11-20","2001-12-1"));
-
-// New Gantt Graph
-$graph = new GanttGraph(500);
-
-// Setup a title
-$graph->title->Set("Grid example");
-$graph->subtitle->Set("(Horizontal grid)");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,14);
-
-// Specify what headers to show
-$graph->ShowHeaders(GANTT_HMONTH|GANTT_HDAY );
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT0);
-
-// Setup a horizontal grid
-$graph->hgrid->Show();
-$graph->hgrid->SetRowFillColor('darkblue@0.9');
-
-
-for($i=0; $i<count($data); ++$i) {
-    $bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[5%]",10);
-    if( count($data[$i]) > 4 )
-	$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-    $bar->SetPattern(BAND_RDIAG,"yellow");
-    $bar->SetFillColor("red");
-    $graph->Add($bar);
-}
-
-// Setup a vertical marker line 
-$vline = new GanttVLine("2001-11-01");
-$vline->SetDayOffset(0.5);
-$vline->title->Set("2001-11-01");
-$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
-$graph->Add($vline);
-
-// Setup a milestone
-$ms = new MileStone(6,"M5","2001-11-28","28/12");
-$ms->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->Add($ms);
-
-// And to show that you can also add an icon we add "Tux"
-$icon = new IconPlot('penguin.png',0.01,0.95,1,15);
-$icon->SetAnchor('left','bottom');
-$graph->Add($icon);
-
-// .. and finally send it back to the browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantthourex1.php b/nightly-test-server/jpgraph/Examples/gantthourex1.php
deleted file mode 100644
index 0cd89fe..0000000
--- a/nightly-test-server/jpgraph/Examples/gantthourex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-// Gantt hour example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-$graph->SetMarginColor('blue:1.7');
-$graph->SetColor('white');
-
-$graph->SetBackgroundGradient('navy','white',GRAD_HOR,BGRAD_MARGIN);
-$graph->scale->hour->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->hour->SetFont(FF_FONT1);
-$graph->scale->day->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->day->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set("Example of hours in scale");
-$graph->title->SetColor('white');
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HHOUR);
-
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-$graph->scale->week->SetFont(FF_FONT1);
-$graph->scale->hour->SetIntervall(4);
-
-$graph->scale->hour->SetStyle(HOURSTYLE_HM24);
-$graph->scale->day->SetStyle(DAYSTYLE_SHORTDAYDATE3);
-
-$data = array(
-    array(0,"  Label 1", "2001-01-26 04:00","2001-01-26 14:00"),
-    array(1,"  Label 2", "2001-01-26 10:00","2001-01-26 18:00"),
-    array(2,"  Label 3", "2001-01-26","2001-01-27 10:00")
-);
-
-
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[5%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	$graph->Add($bar);
-}
-
-$graph->Stroke();
-
-
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantthourminex1.php b/nightly-test-server/jpgraph/Examples/gantthourminex1.php
deleted file mode 100644
index 749c275..0000000
--- a/nightly-test-server/jpgraph/Examples/gantthourminex1.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-// Gantt hour + minute example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Some sample Gantt data
-$data = array(
-    array(0,array("Group 1","345 days","2004-03-01","2004-05-05"), "2001-11-27 10:00","2001-11-27 14:00",FF_FONT2,FS_NORMAL,0),
-    array(1,array("  Label one",' 122,5 days',' 2004-03-01',' 2003-05-05','MJ'), "2001-11-27 16:00","2001-11-27 18:00"),
-    array(2,"  Label two", "2001-11-27","2001-11-27 10:00"),
-    array(3,"  Label three", "2001-11-27","2001-11-27 08:00")
-);
-
-
-// Basic graph parameters
-$graph = new GanttGraph();
-$graph->SetMarginColor('darkgreen@0.8');
-$graph->SetColor('white');
-
-// We want to display day, hour and minute scales
-$graph->ShowHeaders(GANTT_HDAY | GANTT_HHOUR | GANTT_HMIN);
-
-// We want to have the following titles in our columns
-// describing each activity
-$graph->scale->actinfo->SetColTitles(
-    array('Act','Duration','Start','Finish','Resp'));//,array(100,70,70,70));
-
-// Uncomment the following line if you don't want the 3D look
-// in the columns headers
-//$graph->scale->actinfo->SetStyle(ACTINFO_2D);
-
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-
-//These are the default values for use in the columns
-//$graph->scale->actinfo->SetFontColor('black');
-//$graph->scale->actinfo->SetBackgroundColor('lightgray');
-//$graph->scale->actinfo->vgrid->SetStyle('solid');
-
-$graph->scale->actinfo->vgrid->SetColor('gray');
-$graph->scale->actinfo->SetColor('darkgray');
-
-// Setup day format
-$graph->scale->day->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->day->SetFont(FF_ARIAL);
-$graph->scale->day->SetStyle(DAYSTYLE_SHORTDAYDATE1);
-
-// Setup hour format
-$graph->scale->hour->SetIntervall(1);
-$graph->scale->hour->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->hour->SetFont(FF_FONT0);
-$graph->scale->hour->SetStyle(HOURSTYLE_H24);
-$graph->scale->hour->grid->SetColor('gray:0.8');
-
-// Setup minute format
-$graph->scale->minute->SetIntervall(30);
-$graph->scale->minute->SetBackgroundColor('lightyellow:1.5');
-$graph->scale->minute->SetFont(FF_FONT0);
-$graph->scale->minute->SetStyle(MINUTESTYLE_MM);
-$graph->scale->minute->grid->SetColor('lightgray');
-
-$graph->scale->tableTitle->Set('Phase 1');
-$graph->scale->tableTitle->SetFont(FF_ARIAL,FS_NORMAL,12);
-$graph->scale->SetTableTitleBackground('darkgreen@0.6');
-$graph->scale->tableTitle->Show(true);
-
-$graph->title->Set("Example of hours & mins scale");
-$graph->title->SetColor('darkgray');
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-
-
-for($i=0; $i<count($data); ++$i) {
-    $bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3]);
-    if( count($data[$i])>4 )
-	$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-    $bar->SetPattern(BAND_RDIAG,"yellow");
-    $bar->SetFillColor("gray");
-    $graph->Add($bar);
-}
-
-
-$vline = new GanttVLine("2001-11-27 13:00");
-$vline->title->Set("27/11 13:00");
-$vline->title->SetFont(FF_FONT1,FS_BOLD,10);
-$graph->Add($vline);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gantticonex1.php b/nightly-test-server/jpgraph/Examples/gantticonex1.php
deleted file mode 100644
index 6b36329..0000000
--- a/nightly-test-server/jpgraph/Examples/gantticonex1.php
+++ /dev/null
@@ -1,76 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// Basic Gantt graph
-$graph = new GanttGraph();
-$graph->title->Set("Using the builtin icons");
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-10');
-
-
-// 1.5 line spacing to make more room
-$graph->SetVMarginFactor(1.5);
-
-// Setup some nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-// For the titles we also add a minimum width of 100 pixels for the Task name column
-$graph->scale->actinfo->SetColTitles(
-    array('Note','Task','Duration','Start','Finish'),array(30,100));
-$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-$graph->scale->actinfo->vgrid->SetStyle('solid');
-$graph->scale->actinfo->vgrid->SetColor('gray');
-
-// Uncomment this to keep the columns but show no headers
-//$graph->scale->actinfo->Show(false);
-
-// Setup the icons we want to use
-$erricon = new IconImage(GICON_FOLDER,0.6);
-$startconicon = new IconImage(GICON_FOLDEROPEN,0.6);
-$endconicon = new IconImage(GICON_TEXTIMPORTANT,0.5);
-
-// Store the icons in the first column and use plain text in the others
-$data = array(
-	array(0,array($erricon,"Pre-study","102 days","23 Nov '01","1 Mar '02")
-	      , "2001-11-23","2002-03-1",FF_ARIAL,FS_NORMAL,8),
-	array(1,array($startconicon,"Prototype","21 days","26 Oct '01","16 Nov '01"),
-	      "2001-10-26","2001-11-16",FF_ARIAL,FS_NORMAL,8),
-	array(2,array($endconicon,"Report","12 days","1 Mar '02","13 Mar '02"),
-	      "2002-03-01","2002-03-13",FF_ARIAL,FS_NORMAL,8)
-);
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("gray");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$bar->title->SetCSIMTarget(array('#1'.$i,'#2'.$i,'#3'.$i,'#4'.$i,'#5'.$i),array('11'.$i,'22'.$i,'33'.$i));
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttmonthyearex1.php b/nightly-test-server/jpgraph/Examples/ganttmonthyearex1.php
deleted file mode 100644
index 25128ff..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttmonthyearex1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-
-$graph->title->Set("Only month & year scale");
-
-// Setup some "very" nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-01');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-// Data for our example activities
-$data = array(
-	array(0,"Group 1  Johan", "2001-11-23","2002-03-1",FF_FONT1,FS_BOLD,8),
-	array(1,"  Label 2", "2001-10-26","2001-11-16"));
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("red");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttmonthyearex2.php b/nightly-test-server/jpgraph/Examples/ganttmonthyearex2.php
deleted file mode 100644
index 02703b6..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttmonthyearex2.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-
-$graph->title->Set("Only month & year scale");
-
-// Setup some "very" nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-10');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-
-// Setup activity info
-
-// For the titles we also add a minimum width of 100 pixels for the Task name column
-$graph->scale->actinfo->SetColTitles(
-    array('Name','Duration','Start','Finish'),array(100));
-$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-$graph->scale->actinfo->vgrid->SetStyle('solid');
-$graph->scale->actinfo->vgrid->SetColor('gray');
-
-// Data for our example activities
-$data = array(
-	array(0,array("Pre-study","102 days","23 Nov '01","1 Mar '02")
-	      , "2001-11-23","2002-03-1",FF_ARIAL,FS_NORMAL,8),
-	array(1,array("Prototype","21 days","26 Oct '01","16 Nov '01"),
-	      "2001-10-26","2001-11-16",FF_ARIAL,FS_NORMAL,8),
-	array(2,array("Report","12 days","1 Mar '02","13 Mar '02"),
-	      "2002-03-01","2002-03-13",FF_ARIAL,FS_NORMAL,8)
-);
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("gray");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttmonthyearex3.php b/nightly-test-server/jpgraph/Examples/ganttmonthyearex3.php
deleted file mode 100644
index 2dbf314..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttmonthyearex3.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-$graph = new GanttGraph();
-
-$graph->title->Set("Only month & year scale");
-
-// Setup some "very" nonstandard colors
-$graph->SetMarginColor('lightgreen@0.8');
-$graph->SetBox(true,'yellow:0.6',2);
-$graph->SetFrame(true,'darkgreen',4);
-$graph->scale->divider->SetColor('yellow:0.6');
-$graph->scale->dividerh->SetColor('yellow:0.6');
-
-// Explicitely set the date range 
-// (Autoscaling will of course also work)
-$graph->SetDateRange('2001-10-06','2002-4-10');
-
-// Display month and year scale with the gridlines
-$graph->ShowHeaders(GANTT_HMONTH | GANTT_HYEAR);
-$graph->scale->month->grid->SetColor('gray');
-$graph->scale->month->grid->Show(true);
-$graph->scale->year->grid->SetColor('gray');
-$graph->scale->year->grid->Show(true);
-
-
-// Setup activity info
-
-// For the titles we also add a minimum width of 100 pixels for the Task name column
-$graph->scale->actinfo->SetColTitles(
-    array('Type','Name','Duration','Start','Finish'),array(40,100));
-$graph->scale->actinfo->SetBackgroundColor('green:0.5@0.5');
-$graph->scale->actinfo->SetFont(FF_ARIAL,FS_NORMAL,10);
-$graph->scale->actinfo->vgrid->SetStyle('solid');
-$graph->scale->actinfo->vgrid->SetColor('gray');
-
-// Data for our example activities
-$data = array(
-	array(0,array("","Pre-study","102 days","23 Nov '01","1 Mar '02")
-	      , "2001-11-23","2002-03-1",FF_ARIAL,FS_NORMAL,8),
-	array(1,array("","Prototype","21 days","26 Oct '01","16 Nov '01"),
-	      "2001-10-26","2001-11-16",FF_ARIAL,FS_NORMAL,8),
-	array(2,array("","Report","12 days","1 Mar '02","13 Mar '02"),
-	      "2002-03-01","2002-03-13",FF_ARIAL,FS_NORMAL,8)
-);
-	
-// Create the bars and add them to the gantt chart
-for($i=0; $i<count($data); ++$i) {
-	$bar = new GanttBar($data[$i][0],$data[$i][1],$data[$i][2],$data[$i][3],"[50%]",10);
-	if( count($data[$i])>4 )
-		$bar->title->SetFont($data[$i][4],$data[$i][5],$data[$i][6]);
-	$bar->SetPattern(BAND_RDIAG,"yellow");
-	$bar->SetFillColor("gray");
-	$bar->progress->Set(0.5);
-	$bar->progress->SetPattern(GANTT_SOLID,"darkgreen");
-	$graph->Add($bar);
-}
-
-// Output the chart
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/ganttsimpleex1.php b/nightly-test-server/jpgraph/Examples/ganttsimpleex1.php
deleted file mode 100644
index 64e9cf7..0000000
--- a/nightly-test-server/jpgraph/Examples/ganttsimpleex1.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-// Gantt example
-include ("../jpgraph.php");
-include ("../jpgraph_gantt.php");
-
-// 
-// The data for the graphs
-//
-$data = array(
-  array(0,ACTYPE_GROUP,    "Phase 1",        "2001-10-26","2001-11-23",''),
-  array(1,ACTYPE_NORMAL,   "  Label 2",      "2001-10-26","2001-11-13",'[KJ]'),
-  array(2,ACTYPE_NORMAL,   "  Label 3",      "2001-11-20","2001-11-22",'[EP]'),
-  array(3,ACTYPE_MILESTONE,"  Phase 1 Done", "2001-11-23",'M2') );
-
-// Create the basic graph
-$graph = new GanttGraph();
-$graph->title->Set("Gantt Graph using CreateSimple()");
-
-// Setup scale
-$graph->ShowHeaders(GANTT_HYEAR | GANTT_HMONTH | GANTT_HDAY | GANTT_HWEEK);
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAY);
-
-// Add the specified activities
-$graph->CreateSimple($data);
-
-// .. and stroke the graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradbkgex1.php b/nightly-test-server/jpgraph/Examples/gradbkgex1.php
deleted file mode 100644
index 0f25c64..0000000
--- a/nightly-test-server/jpgraph/Examples/gradbkgex1.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(4,26,12,18,8,22);
-$datay2 = array(12,9,42,8,20,19);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin",0,50);
-$graph->SetMargin(30,50,30,30);
-
-// We must have the frame enabled to get the gradient
-// However, we don't want the frame line so we set it to
-// white color which makes it invisible.
-$graph->SetFrame(true,'white');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('blue','navy:0.5',GRAD_HOR,BGRAD_PLOT);
-
-// Setup the tab title
-$graph->tabtitle->Set(' 3rd Division ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-
-// Setup x,Y grid
-$graph->xgrid->Show();
-$graph->xgrid->SetColor('gray@0.5');
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-$graph->ygrid->SetColor('gray@0.5');
-
-// Setup color for axis and labels on axis
-$graph->xaxis->SetColor('orange','black');
-$graph->yaxis->SetColor('orange','black');
-
-// Ticks on the outsid
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Setup the legend box colors and font
-$graph->legend->SetColor('white','navy');
-$graph->legend->SetFillColor('navy@0.25');
-$graph->legend->SetFont(FF_ARIAL,FS_BOLD,8);
-$graph->legend->SetShadow('darkgray@0.4',3);
-$graph->legend->SetPos(0.05,0.05,'right','top');
-
-// Create the first line
-$p1 = new LinePlot($datay1);
-$p1->SetColor("red");
-$p1->SetWeight(2);
-$p1->SetLegend('2002');
-$graph->Add($p1);
-
-// Create the second line
-$p2 = new LinePlot($datay2);
-$p2->SetColor("lightyellow");
-$p2->SetLegend('2001');
-$p2->SetWeight(2);
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex1.php b/nightly-test-server/jpgraph/Examples/gradlinefillex1.php
deleted file mode 100644
index c5b11cb..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex1.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,15,33,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetMarginColor('darkgreen@0.8');
-
-$graph->title->Set('Gradient filled line plot');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-$p1->SetWeight(0);
-$p1->SetFillGradient('red','yellow');
-
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex2.php b/nightly-test-server/jpgraph/Examples/gradlinefillex2.php
deleted file mode 100644
index 2c3d9fe..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex2.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,10,35,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetBox();
-$graph->SetMarginColor('darkgreen@0.8');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('darkred','yellow',GRAD_HOR,BGRAD_PLOT);
-
-$graph->title->Set('Gradient filled line plot ex2');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetFillGradient('white','darkgreen');
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex3.php b/nightly-test-server/jpgraph/Examples/gradlinefillex3.php
deleted file mode 100644
index 4f842d3..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex3.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,10,35,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetBox();
-$graph->SetMarginColor('darkgreen@0.8');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('darkred','yellow',GRAD_HOR,BGRAD_PLOT);
-
-$graph->title->Set('Gradient filled line plot ex3');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetFillGradient('white','darkgreen',4);
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/gradlinefillex4.php b/nightly-test-server/jpgraph/Examples/gradlinefillex4.php
deleted file mode 100644
index 59760c6..0000000
--- a/nightly-test-server/jpgraph/Examples/gradlinefillex4.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(20,10,35,5,17,35,22);
-
-// Setup the graph
-$graph = new Graph(400,200);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("intlin");
-$graph->SetBox();
-$graph->SetMarginColor('darkgreen@0.8');
-
-// Setup a background gradient image
-$graph->SetBackgroundGradient('darkred','yellow',GRAD_HOR,BGRAD_PLOT);
-
-$graph->title->Set('Gradient filled line plot ex2');
-$graph->yscale->SetAutoMin(0);
-
-// Create the line
-$p1 = new LinePlot($datay);
-$p1->SetFillGradient('white','darkgreen');
-$p1->SetStepStyle();
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/groupbarex1.php b/nightly-test-server/jpgraph/Examples/groupbarex1.php
deleted file mode 100644
index 024fdd9..0000000
--- a/nightly-test-server/jpgraph/Examples/groupbarex1.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay1=array(35,160,0,0,0,0);
-$datay2=array(35,190,190,190,190,190);
-$datay3=array(20,70,70,140,230,260);
-
-$graph = new Graph(450,200,'auto');	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->img->SetMargin(40,30,40,40);
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-$graph->xaxis->title->Set('Year 2002');
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Group bar plot');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$bplot1 = new BarPlot($datay1);
-$bplot2 = new BarPlot($datay2);
-$bplot3 = new BarPlot($datay3);
-
-$bplot1->SetFillColor("orange");
-$bplot2->SetFillColor("brown");
-$bplot3->SetFillColor("darkgreen");
-
-$bplot1->SetShadow();
-$bplot2->SetShadow();
-$bplot3->SetShadow();
-
-$bplot1->SetShadow();
-$bplot2->SetShadow();
-$bplot3->SetShadow();
-
-$gbarplot = new GroupBarPlot(array($bplot1,$bplot2,$bplot3));
-$gbarplot->SetWidth(0.6);
-$graph->Add($gbarplot);
-
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex1.php b/nightly-test-server/jpgraph/Examples/horizbarex1.php
deleted file mode 100644
index 8c9258c..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex1.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,5,8,12,6,3);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-// Size of graph
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-// Rotate graph 90 degrees and set margin
-$graph->Set90AndMargin(50,20,50,30);
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Horizontal bar graph ex 1");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-$graph->subtitle->Set("(No Y-axis)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(10);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-
-// We don't want to display Y-axis
-$graph->yaxis->Hide();
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("black","darkred");
-$bplot->value->SetFormat('%.1f mkr');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-// .. and stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex2.php b/nightly-test-server/jpgraph/Examples/horizbarex2.php
deleted file mode 100644
index a0cc418..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex2.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,5,8,12,6,3);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-$top = 80;
-$bottom = 30;
-$left = 50;
-$right = 30;
-$graph->Set90AndMargin($left,$right,$top,$bottom);
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Horizontal bar graph ex 2");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-$graph->subtitle->Set("(Axis at top)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(5);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-$graph->yaxis->SetLabelAlign('center','bottom');
-$graph->yaxis->SetLabelAngle(45);
-$graph->yaxis->SetLabelFormat('%d');
-$graph->yaxis->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-// We don't want to display Y-axis
-//$graph->yaxis->Hide();
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("black","darkred");
-$bplot->value->SetFormat('%.1f mkr');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex3.php b/nightly-test-server/jpgraph/Examples/horizbarex3.php
deleted file mode 100644
index 1105e06..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex3.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,-5,8,12,6,3);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul");
-
-// Size of graph
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-$top = 50;
-$bottom = 80;
-$left = 50;
-$right = 20;
-$graph->Set90AndMargin($left,$right,$top,$bottom);
-
-$graph->xaxis->SetPos('min');
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Horizontal bar graph ex 3");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14);
-$graph->subtitle->Set("(Axis at bottom)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_FONT2,FS_BOLD,12);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(5);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-
-// Setup the Y-axis to be displayed in the bottom of the 
-// graph. We also finetune the exact layout of the title,
-// ticks and labels to make them look nice.
-$graph->yaxis->SetPos('max');
-
-// First make the labels look right
-$graph->yaxis->SetLabelAlign('center','top');
-$graph->yaxis->SetLabelFormat('%d');
-$graph->yaxis->SetLabelSide(SIDE_RIGHT);
-
-// The fix the tick marks
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Finally setup the title
-$graph->yaxis->SetTitleSide(SIDE_RIGHT);
-$graph->yaxis->SetTitleMargin(35);
-
-// To align the title to the right use :
-$graph->yaxis->SetTitle('Turnaround 2002','high');
-$graph->yaxis->title->Align('right');
-
-// To center the title use :
-//$graph->yaxis->SetTitle('Turnaround 2002','center');
-//$graph->yaxis->title->Align('center');
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,12);
-$graph->yaxis->title->SetAngle(0);
-
-$graph->yaxis->SetFont(FF_FONT2,FS_NORMAL);
-// If you want the labels at an angle other than 0 or 90
-// you need to use TTF fonts
-//$graph->yaxis->SetLabelAngle(0);
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("black","darkred");
-$bplot->value->SetFormat('%.1f mkr');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex4.php b/nightly-test-server/jpgraph/Examples/horizbarex4.php
deleted file mode 100644
index a704e87..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex4.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(1992,1993,1995,1996,1997,1998,2001);
-
-// Size of graph
-$width=400; 
-$height=500;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-$top = 60;
-$bottom = 30;
-$left = 80;
-$right = 30;
-$graph->Set90AndMargin($left,$right,$top,$bottom);
-
-// Nice shadow
-$graph->SetShadow();
-
-// Setup labels
-$lbl = array("Andrew\nTait","Thomas\nAnderssen","Kevin\nSpacey","Nick\nDavidsson",
-"David\nLindquist","Jason\nTait","Lorin\nPersson");
-$graph->xaxis->SetTickLabels($lbl);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center','right');
-
-// Label align for Y-axis
-$graph->yaxis->SetLabelAlign('center','bottom');
-
-// Titles
-$graph->title->Set('Year Married');
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetWidth(0.5);
-$bplot->SetYMin(1990);
-
-$graph->Add($bplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/horizbarex6.php b/nightly-test-server/jpgraph/Examples/horizbarex6.php
deleted file mode 100644
index 0612e63..0000000
--- a/nightly-test-server/jpgraph/Examples/horizbarex6.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(2,3,5,8,12,6,3);
-$datax=array("320x240","640x480","600x800","1024x768","1280x1024(16)","1280x1024(32)",
-	     "1600x1200(32)");
-
-// Size of graph
-$width=300; 
-$height=400;
-
-// Set the basic parameters of the graph 
-$graph = new Graph($width,$height,'auto');
-$graph->SetScale("textlin");
-
-// No frame around the image
-$graph->SetFrame(false);
-
-// Rotate graph 90 degrees and set margin
-$graph->Set90AndMargin(100,20,50,30);
-
-// Set white margin color
-$graph->SetMarginColor('white');
-
-// Use a box around the plot area
-$graph->SetBox();
-
-// Use a gradient to fill the plot area
-$graph->SetBackgroundGradient('white','lightblue',GRAD_HOR,BGRAD_PLOT);
-
-// Setup title
-$graph->title->Set("Graphic card performance");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,11);
-$graph->subtitle->Set("(Non optimized)");
-
-// Setup X-axis
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_VERDANA,FS_NORMAL,8);
-
-// Some extra margin looks nicer
-$graph->xaxis->SetLabelMargin(10);
-
-// Label align for X-axis
-$graph->xaxis->SetLabelAlign('right','center');
-
-// Add some grace to y-axis so the bars doesn't go
-// all the way to the end of the plot area
-$graph->yaxis->scale->SetGrace(20);
-
-// We don't want to display Y-axis
-$graph->yaxis->Hide();
-
-// Now create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetShadow();
-
-//You can change the width of the bars if you like
-//$bplot->SetWidth(0.5);
-
-// Set gradient fill for bars
-$bplot->SetFillGradient('darkred','yellow',GRAD_HOR);
-
-// We want to display the value of each bar at the top
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD,10);
-//$bplot->value->SetAlign('left','center');
-$bplot->value->SetColor("white");
-$bplot->value->SetFormat('%.1f');
-$bplot->SetValuePos('max');
-
-// Add the bar to the graph
-$graph->Add($bplot);
-
-// Add some explanation text
-$txt = new Text('Note: Higher value is better.');
-$txt->SetPos(190,399,'center','bottom');
-$txt->SetFont(FF_COMIC,FS_NORMAL,8);
-$graph->Add($txt);
-
-// .. and stroke the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/imgmarkercsimex1.php b/nightly-test-server/jpgraph/Examples/imgmarkercsimex1.php
deleted file mode 100644
index dcef758..0000000
--- a/nightly-test-server/jpgraph/Examples/imgmarkercsimex1.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-$datay1 = array(4,26,15,44);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,5,25,20);
-
-// Setup the tab
-$graph->tabtitle->Set(' Year 2003 ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-$graph->tabtitle->SetColor('darkred','#E1E1FF');
-
-// Enable X-grid as well
-$graph->xgrid->Show();
-
-// Use months as X-labels
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the plot
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-
-$p1->SetCSIMTargets(array('#1','#2','#3','#4','#5'));
-
-// Use an image of favourite car as 
-$p1->mark->SetType(MARK_IMG,'saab_95.jpg',0.5);
-//$p1->mark->SetType(MARK_SQUARE);
-
-// Displayes value on top of marker image
-$p1->value->SetFormat('%d mil');
-$p1->value->Show();
-$p1->value->SetColor('darkred');
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p1->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p1->SetCenter();
-
-$graph->Add($p1);
-
-$graph->StrokeCSIM('imgmarkercsimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/imgmarkerex1.php b/nightly-test-server/jpgraph/Examples/imgmarkerex1.php
deleted file mode 100644
index 536622a..0000000
--- a/nightly-test-server/jpgraph/Examples/imgmarkerex1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-$datay1 = array(4,26,15,44);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,5,25,20);
-
-// Setup the tab
-$graph->tabtitle->Set(' Year 2003 ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-$graph->tabtitle->SetColor('darkred','#E1E1FF');
-
-// Enable X-grid as well
-$graph->xgrid->Show();
-
-// Use months as X-labels
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the plot
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-
-// Use an image of favourite car as marker
-$p1->mark->SetType(MARK_IMG,'saab_95.jpg',0.5);
-
-// Displayes value on top of marker image
-$p1->value->SetFormat('%d mil');
-$p1->value->Show();
-$p1->value->SetColor('darkred');
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p1->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p1->SetCenter();
-
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/impulsex1.php b/nightly-test-server/jpgraph/Examples/impulsex1.php
deleted file mode 100644
index bcb1109..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex1.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,40,40,40);		
-
-$graph->title->Set("Simple mpuls plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay);
-$sp1->mark->SetType(MARK_SQUARE);
-$sp1->SetImpuls();
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/impulsex2.php b/nightly-test-server/jpgraph/Examples/impulsex2.php
deleted file mode 100644
index 4ca1ca4..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex2.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("textlin");
-
-$graph->SetShadow();
-$graph->img->SetMargin(40,40,40,40);		
-
-$graph->title->Set("Impuls plot, variant 2");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->Set("Impuls respons");
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay);//,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(4);
-$sp1->SetImpuls();
-$sp1->SetColor("blue");
-$sp1->SetWeight(3);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/impulsex3.php b/nightly-test-server/jpgraph/Examples/impulsex3.php
deleted file mode 100644
index 8b1dc6a..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex3.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$numpoints=50;
-$k=0.05;
-
-// Create some data points
-for($i=0; $i<$numpoints; ++$i) {
-	$datay[$i]=exp(-$k*$i)*cos(2*M_PI/10*$i);
-}
-
-// A format callbakc function
-function mycallback($l) {
-	return sprintf("%02.2f",$l);
-}
-
-// Setup the basic parameters for the graph
-$graph = new Graph(400,200,"auto");
-$graph->SetScale("intlin");
-$graph->SetShadow();
-$graph->SetBox();
-
-$graph->title->Set("Impuls Example 3");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set format callback for labels
-$graph->yaxis->SetLabelFormatCallback("mycallback");
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Extend the margin for the labels on the Y-axis and reverse the direction
-// of the ticks on the Y-axis
-$graph->yaxis->SetLabelMargin(12);
-$graph->xaxis->SetLabelMargin(6);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-
-// Create a new impuls type scatter plot
-$sp1 = new ScatterPlot($datay);
-$sp1->mark->SetType(MARK_SQUARE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetImpuls();
-$sp1->SetColor("blue");
-$sp1->SetWeight(1);
-$sp1->mark->SetWidth(3);
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/impulsex4.php b/nightly-test-server/jpgraph/Examples/impulsex4.php
deleted file mode 100644
index 08acb75..0000000
--- a/nightly-test-server/jpgraph/Examples/impulsex4.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-include ("../jpgraph_line.php");
-
-$numpoints=50;
-$k=0.05;
-
-// Create some data points
-for($i=-$numpoints+1; $i<0; ++$i) {
-	$datay[$i+$numpoints-1]=exp($k*$i)*cos(2*M_PI/10*$i)*14;
-	$datayenv[$i+$numpoints-1]=exp($k*$i)*14;
-	$datax[$i+$numpoints-1]=$i;
-}
-
-for($i=0; $i<$numpoints; ++$i) {
-	$datay[$i+$numpoints-1]=exp(-$k*$i)*cos(2*M_PI/10*$i)*14;
-	$datayenv[$i+$numpoints-1]=exp(-$k*$i)*14;
-	$datax[$i+$numpoints-1]=$i;
-}
-
-// Setup the basic parameters for the graph
-$graph = new Graph(500,250,"auto");
-$graph->SetScale("intlin");
-
-$graph->SetShadow();
-$graph->SetBox();
-$graph->title->Set("Impuls Example 4");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Set some other color then the boring default
-$graph->SetColor("lightyellow");
-$graph->SetMarginColor("khaki");
-
-// Set legend box specification
-$graph->legend->SetFillColor("white");
-$graph->legend->SetLineWeight(2);
-
-// Set X-axis at the minimum value of Y-axis (default will be at 0)
-$graph->xaxis->SetPos("min");	// "min" will position the x-axis at the minimum value of the Y-axis
-
-// Extend the margin for the labels on the Y-axis and reverse the direction
-// of the ticks on the Y-axis
-$graph->yaxis->SetLabelMargin(12);
-$graph->xaxis->SetLabelMargin(6);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-
-// Add mark graph with static lines
-$line = new PlotLine(HORIZONTAL,0,"black",2);
-$graph->AddLine($line);
-
-// Create a new impuls type scatter plot
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_SQUARE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(3);
-
-$sp1->SetImpuls();
-$sp1->SetColor("blue");
-$sp1->SetWeight(1);
-$sp1->SetLegend("Non-causal signal");
-
-$graph->Add($sp1);
-
-// Create the envelope plot
-$ep1 = new LinePlot($datayenv,$datax);
-$ep1->SetStyle("dotted");
-$ep1->SetLegend("Positive envelope");
-
-$graph->Add($ep1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/inyaxisex1.php b/nightly-test-server/jpgraph/Examples/inyaxisex1.php
deleted file mode 100644
index 5954eb6..0000000
--- a/nightly-test-server/jpgraph/Examples/inyaxisex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Callback to negate the argument
-function _cb_negate($aVal) {
-    return round(-$aVal);
-}
-
-// A fake depth curve
-$ydata = array(0,1,4,5,8,9,10,14,16,16,16,18,20,20,20,22,22.5,22,19,19,15,15,15,15,10,10,10,6,5,5,5,4,4,2,1,0);
-
-// Negate all data
-$n = count($ydata);
-for($i=0; $i<$n; ++$i) {
-    $ydata[$i] = round(-$ydata[$i]);
-}
-
-// Basic graph setup
-$graph = new Graph(400,300,"auto");
-$graph->SetScale("linlin");
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetMarginColor('darkblue');
-$graph->SetColor('darkblue');
-$graph->SetAxisStyle(AXSTYLE_BOXOUT);
-
-$graph->title->Set("Depth curve. Dive #2");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor("white");
-
-$graph->subtitle->Set("(Negated Y-axis)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor("white");
-
-// Setup axis
-$graph->yaxis->SetLabelFormatCallback("_cb_negate");
-$graph->xaxis->SetColor("lightblue","white");
-$graph->yaxis->SetColor("lightblue","white");
-$graph->ygrid->SetColor("blue");
-
-
-$lp1 = new LinePlot($ydata);
-$lp1->SetColor("yellow");
-$lp1->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/inyaxisex2.php b/nightly-test-server/jpgraph/Examples/inyaxisex2.php
deleted file mode 100644
index 51da310..0000000
--- a/nightly-test-server/jpgraph/Examples/inyaxisex2.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Callback to negate the argument
-function _cb_negate($aVal) {
-    return round(-$aVal);
-}
-
-// A fake depth curve
-$ydata = array(0,1,4,5,8,9,10,14,16,16,16,18,20,20,20,22,22.5,22,19,19,15,15,15,15,10,10,10,6,5,5,5,4,4,2,1,0);
-
-// Negate all data
-$n = count($ydata);
-for($i=0; $i<$n; ++$i) {
-    $ydata[$i] = round(-$ydata[$i]);
-}
-
-// Basic graph setup
-$graph = new Graph(400,300,"auto");
-$graph->SetScale("linlin");
-$graph->img->SetMargin(50,50,60,40);	
-$graph->SetMarginColor('darkblue');
-$graph->SetColor('darkblue');
-$graph->SetAxisStyle(AXSTYLE_BOXOUT);
-$graph->SetBackgroundImage("blueblack400x300grad.png",1);
-//$graph->SetBackgroundImage("lightbluedarkblue400x300grad.png",1);
-
-$graph->title->Set("Depth curve. Dive #2");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor("white");
-
-$graph->subtitle->Set("(Negated Y-axis)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor("white");
-
-// Setup axis
-$graph->yaxis->SetLabelFormatCallback("_cb_negate");
-$graph->xaxis->SetColor("lightblue","white");
-$graph->yaxis->SetColor("lightblue","white");
-$graph->ygrid->SetColor("blue");
-
-
-$lp1 = new LinePlot($ydata);
-$lp1->SetColor("yellow");
-$lp1->SetWeight(2);
-
-
-$graph->Add($lp1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/inyaxisex3.php b/nightly-test-server/jpgraph/Examples/inyaxisex3.php
deleted file mode 100644
index 702549f..0000000
--- a/nightly-test-server/jpgraph/Examples/inyaxisex3.php
+++ /dev/null
@@ -1,69 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Callback to negate the argument
-function _cb_negate($aVal) {
-    return round(-$aVal);
-}
-
-// A fake depth curve
-$ydata = array(0,1,4,5,8,9,10,14,16,16,16,18,20,20,20,22,22.5,22,19,19,15,15,15,15,10,10,10,6,5,5,5,4,4,2,1,0);
-
-$n = count($ydata);
-$y2data = array();
-for( $i=0; $i< $n; ++$i ) {
-    $y2data[] = $ydata[$i]+10;
-}
-
-// Negate all data
-$n = count($ydata);
-for($i=0; $i<$n; ++$i) {
-    $ydata[$i] = round(-$ydata[$i]);
-    $y2data[$i] = round(-$y2data[$i]);
-}
-
-// Basic graph setup
-$graph = new Graph(400,300,"auto");
-$graph->SetScale("linlin");
-$graph->SetY2Scale("lin");
-$graph->SetMargin(50,50,60,40);	
-$graph->SetMarginColor('darkblue');
-$graph->SetColor('darkblue');
-
-// Setup titles
-$graph->title->Set("Inverting both Y-axis");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetColor("white");
-
-$graph->subtitle->Set("(Negated Y & Y2 axis)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-$graph->subtitle->SetColor("white");
-
-// Setup axis
-$graph->yaxis->SetLabelFormatCallback("_cb_negate");
-$graph->xaxis->SetColor("lightblue","white");
-$graph->yaxis->SetColor("lightblue","white");
-$graph->ygrid->SetColor("blue");
-
-// Setup Y2 axis
-$graph->y2axis->SetLabelFormatCallback("_cb_negate");
-$graph->y2axis->SetColor("darkred","white");
-$graph->y2scale->SetAutoMax(0); // To make sure it starts with 0
-
-// Setup plot 1
-$lp1 = new LinePlot($ydata);
-$lp1->SetColor("yellow");
-$lp1->SetWeight(2);
-$graph->Add($lp1);
-
-// Setup plot 2
-$lp2 = new LinePlot($y2data);
-$lp2->SetColor("darkred");
-$lp2->SetWeight(2);
-$graph->AddY2($lp2);
-
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/lightbluedarkblue400x300grad.png b/nightly-test-server/jpgraph/Examples/lightbluedarkblue400x300grad.png
deleted file mode 100644
index 86092ec..0000000
--- a/nightly-test-server/jpgraph/Examples/lightbluedarkblue400x300grad.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/linebarcentex1.php b/nightly-test-server/jpgraph/Examples/linebarcentex1.php
deleted file mode 100644
index 9c220c5..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarcentex1.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$l1datay = array(11,9,2,4,3,13,17);
-$l2datay = array(23,12,5,19,17,10,15);
-
-$datax=$gDateLocale->GetShortMonth();
-
-// Create the graph. 
-$graph = new Graph(400,200,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(40,130,20,40);
-$graph->SetShadow();
-$graph->xaxis->SetTickLabels($datax);
-
-// Create the linear error plot
-$l1plot=new LinePlot($l1datay);
-$l1plot->SetColor("red");
-$l1plot->SetWeight(2);
-$l1plot->SetLegend("Prediction");
-
-//Center the line plot in the center of the bars
-$l1plot->SetBarCenter();
-
-
-// Create the bar plot
-$bplot = new BarPlot($l2datay);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend("Result");
-
-// Add the plots to t'he graph
-$graph->Add($bplot);
-$graph->Add($l1plot);
-
-
-$graph->title->Set("Adding a line plot to a bar graph v1");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/linebarex1.php b/nightly-test-server/jpgraph/Examples/linebarex1.php
deleted file mode 100644
index c821d82..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarex1.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-$month=array(
-"Jan","Feb","Mar","Apr","Maj","Jun","Jul","Aug","Sep","Okt","Nov","Dec");
-
-// Create datapoints where every point
-$steps=100;
-for($i=0; $i<$steps; ++$i) {
-	$datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;
-	$databarx[]=sprintf("198%d %s",floor($i/12),$month[$i%12]);
-	
-	// Simulate an accumulated value for every 5:th data point
-	if( $i % 6 == 0 ) {
-		$databary[]=abs(25*sin($i)+5);
-	}
-	else {
-		$databary[]=0;
-	}
-	
-}
-
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-$graph->SetShadow();
-
-// Use an integer X-scale
-$graph->SetScale("textlin");
-
-// Set title and subtitle
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("100 data points, X-Scale: 'text'");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Make the margin around the plot a little bit bigger
-// then default
-$graph->img->SetMargin(40,140,40,80);	
-
-// Slightly adjust the legend from it's default position in the
-// top right corner to middle right side
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Display every 10:th datalabel
-$graph->xaxis->SetTextTickInterval(6);
-$graph->xaxis->SetTextLabelInterval(2);
-$graph->xaxis->SetTickLabels($databarx);
-$graph->xaxis->SetLabelAngle(90);
-
-// Create a red line plot
-$p1 = new LinePlot($datay);
-$p1->SetColor("red");
-$p1->SetLegend("Pressure");
-
-// Create the bar plot
-$b1 = new BarPlot($databary);
-$b1->SetLegend("Temperature");
-$b1->SetAbsWidth(6);
-$b1->SetShadow();
-
-// The order the plots are added determines who's ontop
-$graph->Add($p1);
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/linebarex2.php b/nightly-test-server/jpgraph/Examples/linebarex2.php
deleted file mode 100644
index 2db2402..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarex2.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-
-$steps=100;
-for($i=0; $i<$steps; ++$i) {
-	$datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;
-	$datax[]=$i;
-	if( $i % 10 == 0 ) {
-		$databarx[]=$i;
-		$databary[]=$datay[$i]/2;
-	}
-}
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-$graph->SetShadow();
-
-// Use an integer X-scale
-$graph->SetScale("intlin");
-
-// Set title and subtitle
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("(\"left\" aligned bars)");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Make the margin around the plot a little bit bigger
-// then default
-$graph->img->SetMargin(40,120,40,40);	
-
-// Slightly adjust the legend from it's default position in the
-// top right corner to middle right side
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create a red line plot
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor("red");
-$p1->SetLegend("Status one");
-$graph->Add($p1);
-
-// Create the bar plot
-$b1 = new BarPlot($databary,$databarx);
-$b1->SetLegend("Status two");
-$b1->SetAlign("left");
-$b1->SetShadow();
-$graph->Add($b1);
-
-// Finally output the  image
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/linebarex3.php b/nightly-test-server/jpgraph/Examples/linebarex3.php
deleted file mode 100644
index 8fa7923..0000000
--- a/nightly-test-server/jpgraph/Examples/linebarex3.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_bar.php");
-
-// Some data
-
-$steps=100;for($i=0; $i<$steps; ++$i) {	
-    $datay[$i]=log(pow($i,$i/10)+1)*sin($i/15)+35;	
-    $datax[]=$i;	
-    if( $i % 10 == 0 ) {		
-	$databarx[]=$i;		
-	$databary[]=$datay[$i]/2;	
-    }
-}
-
-// New graph with a background image and drop shadow
-$graph = new Graph(450,300,"auto");
-$graph->img->SetMargin(40,180,40,40);	
-$graph->SetBackgroundImage("tiger_bkg.png",BGIMG_FILLFRAME);
-
-//$graph->img->SetAntiAliasing();
-
-$graph->SetScale("intlin");
-$graph->SetShadow();
-$graph->title->Set("Combined bar and line plot");
-$graph->subtitle->Set("(\"center\" aligned bars)");
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Slightly adjust the legend from it's default position in the
-// top right corner. 
-$graph->legend->Pos(0.05,0.5,"right","center");
-
-// Create the first line
-
-$p1 = new LinePlot($datay,$datax);
-$p1->SetWeight(1);
-$p1->SetColor("red");
-$p1->SetLegend("Triumph Tiger -98");
-$graph->Add($p1);
-
-$b1 = new BarPlot($databary,$databarx);
-$b1->SetAbsWidth(10);
-$b1->SetAlign("center");
-$b1->SetShadow();
-$graph->Add($b1);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/linegraceex.php b/nightly-test-server/jpgraph/Examples/linegraceex.php
deleted file mode 100644
index e9b7c30..0000000
--- a/nightly-test-server/jpgraph/Examples/linegraceex.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay = array(0.2980,0.3039,0.3020,0.3027,0.3015);
-
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-
-$graph->img->SetAntiAliasing();
-$graph->SetScale("textlin");
-$graph->SetShadow();
-$graph->title->Set("Example of 10% top/bottom grace");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Add 10% grace to top and bottom of plot
-$graph->yscale->SetGrace(10,10);
-
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/lineiconex1.php b/nightly-test-server/jpgraph/Examples/lineiconex1.php
deleted file mode 100644
index 5bc4ad2..0000000
--- a/nightly-test-server/jpgraph/Examples/lineiconex1.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_iconplot.php");
-
-
-//$datay = array(20,15,23,15,17,35,22);
-$datay = array(30,25,33,25,27,45,32);
-$datay2 = array(3,25,10,15,50,5,18);
-$datay3 = array(10,5,10,15,5,2,1);
-
-// Setup the graph
-$graph = new Graph(400,250);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("textlin");
-
-$graph->title->Set('Adding an icon ("tux") in the background');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-//$graph->SetBackgroundGradient('red','blue');
-
-$graph->xaxis->SetPos('min');
-
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-$p1->SetFillGradient('yellow@0.4','red@0.4');
-
-$p2 = new LinePlot($datay2);
-$p2->SetColor("black");
-$p2->SetFillGradient('green@0.4','white');
-
-$p3 = new LinePlot($datay3);
-$p3->SetColor("blue");
-$p3->SetFillGradient('navy@0.4','white@0.4');
-
-$graph->Add($p1);
-$graph->Add($p2);
-$graph->Add($p3);
-
-$icon = new IconPlot('penguin.png',0.2,0.3,1,30);
-$icon->SetAnchor('center','center');
-$graph->Add($icon);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/lineiconex2.php b/nightly-test-server/jpgraph/Examples/lineiconex2.php
deleted file mode 100644
index 6215ab5..0000000
--- a/nightly-test-server/jpgraph/Examples/lineiconex2.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_flags.php");
-include ("../jpgraph_iconplot.php");
-
-$datay = array(30,25,33,25,27,45,32);
-
-// Setup the graph
-$graph = new Graph(400,250);
-$graph->SetMargin(40,40,20,30);	
-$graph->SetScale("textlin");
-
-$graph->title->Set('Adding a country flag as a an icon');
-
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-$p1->SetFillGradient('yellow@0.4','red@0.4');
-
-$graph->Add($p1);
-
-$icon = new IconPlot();
-$icon->SetCountryFlag('iceland',50,30,1.5,40,3);
-$icon->SetAnchor('left','top');
-$graph->Add($icon);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/linlogex1.php b/nightly-test-server/jpgraph/Examples/linlogex1.php
deleted file mode 100644
index 68aa454..0000000
--- a/nightly-test-server/jpgraph/Examples/linlogex1.php
+++ /dev/null
@@ -1,64 +0,0 @@
-<?php
-
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_error.php");
-
-$xdata = array( 2.0,  2.5,  3.0,  4.0,  5.0,  6.0,  8.0, 10.0,
-               12.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0,
-               75.0, 100., 125., 150., 175., 200., 250., 300.,
-               400., 500., 600., 800., 950.,
-              1200., 1500., 2000., 2500.);
-$ydata = array(270.,  280., // 2 m
-               330.,  340., // 2.5
-               410.,  420., // 3
-               550.,  560., // 4
-               670.,  680., // 5
-               770.,  780., // 6
-               930.,  940., // 8
-              1010., 1020., // 10
-              1040., 1050., // 12
-               980.,  990., // 15
-               860.,  870., // 20
-               720.,  730., // 25
-               590.,  600., // 30
-               370.,  380., // 40
-               330.,  340., // 50
-               320.,  330., // 60
-               320.,  330., // 75
-               300.,  310., // 100
-               305.,  315., // 125
-               310.,  320., // 150
-               315.,  325., // 175
-               300.,  310., // 200
-               270.,  280., // 250
-               240.,  250., // 300
-               200.,  210., // 400
-               150.,  160., // 500
-               120.,  130., // 600
-                50.,   60., // 800
-                30.,   40., // 950
-                15.,   20., // 1200
-                 8.,   10., // 1500
-                 7.,    9., // 2000
-                 8.,   10.  // 2500 m
-               );
-
-$graph = new Graph(500,300,"auto");
-$graph->SetScale("linlog");
-$graph->img->SetMargin(40,20,20,40);
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->Set("ab/2");
-$graph->yaxis->title->Set("rho_s");
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->ygrid->Show(true,true);
-$graph->xgrid->Show(true,true);
-
-$errorplot=new ErrorPlot($ydata, $xdata);
-
-$graph->Add($errorplot);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/listallflags.php b/nightly-test-server/jpgraph/Examples/listallflags.php
deleted file mode 100644
index 8cb7370..0000000
--- a/nightly-test-server/jpgraph/Examples/listallflags.php
+++ /dev/null
@@ -1,29 +0,0 @@
-<?php
-// List all current supported flags.
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_flags.php";
-
-// Flag size to use in table 
-$s = FLAGSIZE2 ;
-$w = 60;
-$flags = new FlagImages($s) ;
-
-// Create a nice table wil all flags and their full name (and index)
-echo "<table width=100%><tr>\n";
-$cols=0;
-while( list($key,$val) = each($flags->iCountryNameMap) ) {
-
-    echo '<td width=20%><a href="javascript:window.open(\'listallflags_helper.php?size=4&idx='.$val.'\',\'_new\',\'width=500,height=350\');void(0)"><img src="listallflags_helper.php?size='.$s.'&idx='.$val.'"></a><br>';
-    echo "<small>$key</small><br><small><font color=blue><i>idx=$val</i></font></small></td>\n";
-    
-    if( ++$cols == 5 ) {
-	echo "</tr>\n<tr>";
-	$cols=0;
-    }
-}
-
-echo "</tr></table>";
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/listallflags_helper.php b/nightly-test-server/jpgraph/Examples/listallflags_helper.php
deleted file mode 100644
index 29681ca..0000000
--- a/nightly-test-server/jpgraph/Examples/listallflags_helper.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-require_once '../jpgraph.php';
-require_once '../jpgraph_flags.php';
-
-if( empty($_GET['size']) ) {
-    $size = FLAGSIZE2;
-}
-else {
-    $size = $_GET['size'];
-}
-
-if( empty($_GET['idx']) ) {
-    $idx = 'ecua';
-}
-else {
-    $idx = $_GET['idx'];
-}
-
-
-$flags = new FlagImages($size) ;
-$img = $flags->GetImgByIdx($idx);
-header ("Content-type: image/png");
-ImagePng ($img);
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/listfontsex1.php b/nightly-test-server/jpgraph/Examples/listfontsex1.php
deleted file mode 100644
index d69f7e8..0000000
--- a/nightly-test-server/jpgraph/Examples/listfontsex1.php
+++ /dev/null
@@ -1,117 +0,0 @@
-<?php
-// $Id$
-include "../jpgraph.php";
-include "../jpgraph_canvas.php";
-include "../jpgraph_canvtools.php";
-
-
-$g = new CanvasGraph(550,450,'auto');
-$scale = new CanvasScale($g);
-$scale->Set(0,27,0,53);
-$g->SetMargin(5,6,5,6);
-$g->SetColor('white');
-$g->SetMarginColor("teal");
-$g->InitFrame();
-
-
-$t = new CanvasRectangleText();
-$t->SetFillColor('lightgreen');
-$t->SetFontColor('navy');
-$t->SetFont(FF_ARIAL,FS_NORMAL,16);
-$t->Set("\n\n\n\n\n\n\n\n\n\n\nTTF Fonts",0.5,19,26,32);
-$t->Stroke($g->img,$scale);
-
-
-$t = new CanvasRectangleText();
-
-$t->SetFillColor('');
-$t->SetFontColor('black');
-$t->SetColor('');
-$t->SetShadow('');
-$t->SetFont(FF_ARIAL,FS_BOLD,18);
-$t->Set('Family',1,1,8);
-$t->Stroke($g->img,$scale);
-
-$t->Set('Italic style',9,1,8);
-$t->Stroke($g->img,$scale);
-
-$t->Set('Bold style',17.5,1,8);
-$t->Stroke($g->img,$scale);
-
-
-$t->SetFillColor('yellow');
-$t->SetFontColor('black');
-$t->SetColor('black');
-$t->SetShadow('gray');
-
-$r=6;$c=1;$w=7.5;$h=3.5;
-
-$fonts=array(
-    array("Font 0",FF_FONT0,FS_NORMAL),
-    array("",FF_FONT0,FS_ITALIC),
-    array("",FF_FONT0,FS_BOLD),
-
-    array("Font 1",FF_FONT1,FS_NORMAL),
-    array("",FF_FONT1,FS_ITALIC),
-    array("Font 1 bold",FF_FONT1,FS_BOLD),
-
-    array("Font 2",FF_FONT2,FS_NORMAL),
-    array("",FF_FONT2,FS_ITALIC),
-    array("Font 2 bold",FF_FONT2,FS_BOLD),
-
-    array("Arial",FF_ARIAL,FS_NORMAL),
-    array("Arial italic",FF_ARIAL,FS_ITALIC),
-    array("Arial bold",FF_ARIAL,FS_BOLD),
-
-    array("Verdana",FF_VERDANA,FS_NORMAL),
-    array("Verdana italic",FF_VERDANA,FS_ITALIC),
-    array("Verdana bold",FF_VERDANA,FS_BOLD),
-
-
-    array("Trebuche",FF_TREBUCHE,FS_NORMAL),
-    array("Trebuche italic",FF_TREBUCHE,FS_ITALIC),
-    array("Trebuche bold",FF_TREBUCHE,FS_BOLD),
-
-    array("Georgia",FF_GEORGIA,FS_NORMAL),
-    array("Georgia italic",FF_GEORGIA,FS_ITALIC),
-    array("Georgia bold",FF_GEORGIA,FS_BOLD),
-
-    array("Comic",FF_COMIC,FS_NORMAL),
-    array("",FF_COMIC,FS_ITALIC),
-    array("Comic bold",FF_COMIC,FS_BOLD),
-
-    array("Courier",FF_COURIER,FS_NORMAL),
-    array("Courier italic",FF_COURIER,FS_ITALIC),
-    array("Courier bold",FF_COURIER,FS_BOLD),
-
-
-    array("Times normal",FF_TIMES,FS_NORMAL),
-    array("Times italic",FF_TIMES,FS_ITALIC),
-    array("Times bold italic",FF_TIMES,FS_BOLDITALIC),
-    );
-
-
-$n=count($fonts);
-
-for( $i=0; $i < $n; ++$i ) {
-    
-    if( $i==9 ) $r += 3;
-
-    if( $fonts[$i][0] ) {
-	$t->SetTxt($fonts[$i][0]);
-	$t->SetPos($c,$r,$w,$h);
-	$t->SetFont($fonts[$i][1],$fonts[$i][2],13);
-	$t->Stroke($g->img,$scale);
-    }
-
-    $c += $w+1;
-    if( $c > 30-$w-2 ) {
-	$c = 1;
-	$r += 4;
-    }
-
-}
-
-$g->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/logbarex1.php b/nightly-test-server/jpgraph/Examples/logbarex1.php
deleted file mode 100644
index 6e904a1..0000000
--- a/nightly-test-server/jpgraph/Examples/logbarex1.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(4,13,30,28,12,45,30,12,55,3,0.5);
-$datax=array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov");
-
-// Create the graph. 
-$graph = new Graph(400,220,'auto');	
-//$graph->img->SetMargin(50,30,50,50);
-$graph->SetScale("textlog");
-//$graph->SetShadow();
-
-// Setup titles for graph and axis
-$graph->title->Set("Bar with logarithmic Y-scale");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,18);
-
-$graph->xaxis->SetTitle("2002");
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_NORMAL,16);
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_NORMAL,16);
-$graph->yaxis->SetTitle("Y-title",'center');
-$graph->yaxis->SetTitleMargin(30);
-
-// Setup month on X-scale
-//$graph->xaxis->SetTickLabels($datax);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-//You can also set a manual base of the bars
-//$bplot->SetYBase(0.001);
-
-/*
-$bplot->SetShadow();
-$bplot->value->Show();
-$bplot->value->SetFont(FF_ARIAL,FS_BOLD);
-$bplot->value->SetAngle(45);
-$bplot->value->SetColor("black","darkred");
-*/
-
-$graph->Add($bplot);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/loglogex1.php b/nightly-test-server/jpgraph/Examples/loglogex1.php
deleted file mode 100644
index d136437..0000000
--- a/nightly-test-server/jpgraph/Examples/loglogex1.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-
-$ab2  = array( 1.5,  2.0,  2.5,  3.0,  4.0,  5.0,  6.0,  8.0, 10.0,
-              12.0, 15.0, 20.0, 25.0, 30.0, 40.0, 50.0, 60.0 ,75.0,
-              100., 125., 150.);
-$mn2  = array( 0.5,  0.5,  0.5,  0.5,  0.8,  0.8,  0.8,  0.8,  1.0,
-               1.0,  1.0,  1.0,  1.0,  2.0,  2.0,  2.0,  2.0,  2.0,
-               5.0,  5.0,  5.0);
-$rhos = array(30.0, 31.0, 32.0, 34.0, 35.5, 37.5, 38.0, 39.5, 41.5,
-              43.0, 41.0, 42.0, 42.5, 45.0, 49.0, 53.5, 58.0, 66.5,
-              75.0, 81.0, 89.0);
-
-// Create the graph.
-$graph = new Graph(500,300,"auto");     
-$graph->SetScale("loglog");              
-$graph->SetY2Scale("lin");               
-$graph->y2axis->SetColor("blue","blue"); 
-
-$graph->img->SetMargin(50,70,40,50);     
-$graph->title->Set("Geoelektrik");       
-$graph->xaxis->title->Set("Auslage ab/2 [m]");  
-$graph->yaxis->title->Set("rho_s [Ohm m]");     
-$graph->y2axis->title->Set("mn/2 [m]");         
-$graph->y2axis->title->SetColor("blue");
-$graph->y2axis->SetTitleMargin(35);
-$graph->title->SetFont(FF_FONT1,FS_BOLD);       
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD); 
-$graph->xgrid->Show(true,true);                  
-$graph->ygrid->Show(true,true);                  
-
-// Create the linear plot
-
-$lineplot=new LinePlot($rhos,$ab2);       
-$lineplot->SetWeight(1);
-$lineplot->mark->SetType(MARK_FILLEDCIRCLE);
-$lineplot->mark->SetWidth(2);
-
-// Create scatter plot 
-
-$scplot=new ScatterPlot($mn2,$ab2);
-$scplot->mark->SetType(MARK_FILLEDCIRCLE);
-$scplot->mark->SetColor("blue");
-$scplot->mark->SetWidth(2);
-
-// Add plots to the graph
-
-$graph->AddY2($scplot);
-$graph->Add($lineplot);
-
-// Display the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex1.php b/nightly-test-server/jpgraph/Examples/manscaleex1.php
deleted file mode 100644
index 4bb452f..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex1.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(220,200);
-$graph->SetScale("textlin",3,35);
-$graph->yscale->ticks->Set(7,2);
-
-$graph->title->Set('Manual scale, manual ticks');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex2.php b/nightly-test-server/jpgraph/Examples/manscaleex2.php
deleted file mode 100644
index 79abb18..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex2.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(220,200);
-$graph->SetScale("textlin",3,35);
-
-$graph->title->Set('Manual scale, exact limits');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex3.php b/nightly-test-server/jpgraph/Examples/manscaleex3.php
deleted file mode 100644
index 4d1d8d8..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex3.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(250,200);
-$graph->SetScale("textlin",3,35);
-$graph->SetTickDensity(TICKD_DENSE);
-$graph->yscale->SetAutoTicks();
-
-$graph->title->Set('Manual scale, auto ticks');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manscaleex4.php b/nightly-test-server/jpgraph/Examples/manscaleex4.php
deleted file mode 100644
index b1f01fd..0000000
--- a/nightly-test-server/jpgraph/Examples/manscaleex4.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(220,200);
-$graph->SetScale("textlin",3,35);
-$graph->yscale->SetAutoTicks();
-
-$graph->title->Set('Manual scale, allow adjustment');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$line = new LinePlot($ydata);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manualtickex1.php b/nightly-test-server/jpgraph/Examples/manualtickex1.php
deleted file mode 100644
index 95f5584..0000000
--- a/nightly-test-server/jpgraph/Examples/manualtickex1.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-//
-// Basic example on how to use custom tickmark feature to have a label
-// at the start of each month.
-//
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-// 
-// Create some random data for the plot. We use the current time for the
-// first X-position
-//
-$datay = array();
-$datax = array();
-$ts = time();
-$n=15; // Number of data points
-for($i=0; $i < $n; ++$i ) {
-    $datax[$i] = $ts+$i*700000; 
-    $datay[$i] = rand(5,60);
-}
-
-// Now get labels at the start of each month
-$dateUtils = new DateScaleUtils();
-list($tickPositions,$minTickPositions) = $dateUtils->GetTicks($datax);
-
-// We add some grace to the end of the X-axis scale so that the first and last
-// data point isn't exactly at the very end or beginning of the scale
-$grace = 400000;
-$xmin = $datax[0]-$grace;
-$xmax = $datax[$n-1]+$grace;
-
-//
-// The code to setup a very basic graph
-//
-$graph = new Graph(400,200);
-
-//
-// We use an integer scale on the X-axis since the positions on the X axis
-// are assumed to be UNI timestamps
-$graph->SetScale('intlin',0,0,$xmin,$xmax);
-$graph->title->Set('Basic example with manual ticks');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-//
-// Make sure that the X-axis is always at the bottom of the scale
-// (By default the X-axis is alwys positioned at Y=0 so if the scale
-// doesn't happen to include 0 the axis will not be shown)
-$graph->xaxis->SetPos('min');
-
-// Now set the tic positions
-$graph->xaxis->SetTickPositions($tickPositions,$minTickPositions);
-
-// The labels should be formatted at dates with "Year-month"
-$graph->xaxis->SetLabelFormatString('My',true);
-
-// Use Ariel font
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,9);
-
-// Add a X-grid
-$graph->xgrid->Show();
-
-// Create the plot line
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor('teal');
-$graph->Add($p1);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/manualtickex2.php b/nightly-test-server/jpgraph/Examples/manualtickex2.php
deleted file mode 100644
index 124d085..0000000
--- a/nightly-test-server/jpgraph/Examples/manualtickex2.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-//
-// Basic example on how to use custom tickmark feature to have a label
-// at the start of each month.
-//
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_utils.inc");
-
-// 
-// Create some random data for the plot. We use the current time for the
-// first X-position
-//
-$f = new FuncGenerator('cos($x)+1.5*cos(2*$x)');
-list($datax,$datay) = $f->E(0,10);
-
-// Now get labels at 1/2 PI intervall
-$tickPositions = array();
-$tickLabels = array();
-$tickPositions[0] = 0;
-$tickLabels[0] = '0';
-for($i=1; $i/2*M_PI < 11 ; ++$i ) {
-    $tickPositions[$i] = $i/2*M_PI;
-    if( $i % 2 )
-	$tickLabels[$i] = $i.'/2'.SymChar::Get('pi');
-    else
-	$tickLabels[$i] = ($i/2).SymChar::Get('pi');
-}
-
-$n = count($datax);
-$xmin = $datax[0];
-$xmax = $datax[$n-1];
-
-//
-// The code to setup a very basic graph
-//
-$graph = new Graph(400,200);
-
-//
-// We use an integer scale on the X-axis since the positions on the X axis
-// are assumed to be UNI timestamps
-$graph->SetScale('linlin',0,0,$xmin,$xmax);
-$graph->title->Set('Example with manual tick labels');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-//
-// Make sure that the X-axis is always at the bottom of the scale
-// (By default the X-axis is alwys positioned at Y=0 so if the scale
-// doesn't happen to include 0 the axis will not be shown)
-$graph->xaxis->SetPos('min');
-
-// Now set the tic positions
-$graph->xaxis->SetMajTickPositions($tickPositions,$tickLabels);
-
-// Use Times font
-$graph->xaxis->SetFont(FF_TIMES,FS_NORMAL,10);
-$graph->yaxis->SetFont(FF_TIMES,FS_NORMAL,10);
-
-// Add a X-grid
-$graph->xgrid->Show();
-
-// Create the plot line
-$p1 = new LinePlot($datay,$datax);
-$p1->SetColor('teal');
-$graph->Add($p1);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/markflagex1.php b/nightly-test-server/jpgraph/Examples/markflagex1.php
deleted file mode 100644
index a68c43e..0000000
--- a/nightly-test-server/jpgraph/Examples/markflagex1.php
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-include ("../jpgraph_scatter.php");
-
-$datay = array(
-    array(4,26,15,44),
-    array(20,51,32,20));
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,5,25,20);
-
-// Enable X-grid as well
-$graph->xgrid->Show();
-
-// Use months as X-labels
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-//------------------------
-// Create the plots
-//------------------------
-$p1 = new LinePlot($datay[0]);
-$p1->SetColor("navy");
-
-// Use a flag
-$p1->mark->SetType(MARK_FLAG1,'chin');
-
-// Displayes value on top of marker image
-$p1->value->SetFormat('%d mil');
-$p1->value->Show();
-$p1->value->SetColor('darkred');
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p1->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p1->SetCenter();
-
-$graph->Add($p1);
-
-//------------
-// 2:nd plot
-//------------
-$p2 = new LinePlot($datay[1]);
-$p2->SetColor("navy");
-
-// Use a flag
-$p2->mark->SetType(MARK_FLAG1,'united states');
-
-// Displayes value on top of marker image
-$p2->value->SetFormat('%d mil');
-$p2->value->Show();
-$p2->value->SetColor('darkred');
-$p2->value->SetFont(FF_ARIAL,FS_BOLD,10);
-// Increase the margin so that the value is printed avove tje
-// img marker
-$p2->value->SetMargin(14);
-
-// Incent the X-scale so the first and last point doesn't
-// fall on the edges
-$p2->SetCenter();
-$graph->Add($p2);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/multconstganttex01.php b/nightly-test-server/jpgraph/Examples/multconstganttex01.php
deleted file mode 100644
index d59d5e6..0000000
--- a/nightly-test-server/jpgraph/Examples/multconstganttex01.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php 
-// Gantt example 
-include ("../jpgraph.php"); 
-include ("../jpgraph_gantt.php"); 
-
-// Create the basic graph 
-$graph = new GanttGraph(); 
-$graph->title->Set("Example with multiple constrains"); 
-
-$bar1 = new GanttBar(0, "Label 1", "2003-06-08", "2003-06-12"); 
-$bar2 = new GanttBar(1, "Label 2", "2003-06-16", "2003-06-19"); 
-$bar3 = new GanttBar(2, "Label 3", "2003-06-15", "2003-06-21"); 
-
-//create constraints 
-$bar1->SetConstrain(1, CONSTRAIN_ENDSTART); 
-$bar1->SetConstrain(2, CONSTRAIN_ENDSTART); 
-
-// Setup scale 
-$graph->ShowHeaders(/*GANTT_HYEAR | GANTT_HMONTH |*/ GANTT_HDAY | GANTT_HWEEK); 
-$graph->scale->week->SetStyle(WEEKSTYLE_FIRSTDAYWNBR); 
-
-// Add the specified activities 
-$graph->Add($bar1); 
-$graph->Add($bar2); 
-$graph->Add($bar3); 
-
-// .. and stroke the graph 
-$graph->Stroke(); 
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/mulyaxiscsimex1.php b/nightly-test-server/jpgraph/Examples/mulyaxiscsimex1.php
deleted file mode 100644
index 90a6d05..0000000
--- a/nightly-test-server/jpgraph/Examples/mulyaxiscsimex1.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_line.php");
-
-
-// Setup some dummy targets for the CSIM
-$n = 5;
-for($i=0; $i < $n; ++$i ) {
-    $targ1[$i] = "#$i";
-    $targ2[$i] = "#$i";
-    $targ3[$i] = "#$i";
-    $alts1[$i] = "val=%d";
-    $alts2[$i] = "val=%d";
-    $alts3[$i] = "val=%d";
-}
-
-// Some data for the points
-$datay1 = array(3,10,4,1,6);
-$datay2 = array(25,22,18,24,20);
-$datay3 = array(89,70,92,77,96);
-
-// Create a basic graph with some suitable margins
-$graph = new Graph(500,250);
-$graph->SetMargin(60,180,50,40);
-$graph->SetMarginColor('white');
-$graph->title->Set("Multi Y-axes with Image Map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the scales for all axes
-$graph->SetScale("intlin");
-$graph->SetYScale(0,'int');
-$graph->SetYScale(1,'int');
-
-// Standard Y-axis plot
-$lp1 = new LinePlot($datay1);
-$lp1->SetLegend('2001');
-$lp1->mark->SetType(MARK_DIAMOND);
-$lp1->mark->SetWidth(15);
-$lp1->mark->SetFillColor('orange');
-$lp1->SetCSIMTargets($targ1,$alts1);
-$graph->yaxis->title->Set('Basic Rate');
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->yaxis->title->SetColor('black');
-$graph->Add($lp1);
-
-// First multi Y-axis plot
-$lp2 = new LinePlot($datay2);
-$lp2->SetLegend('2002');
-$lp2->mark->SetType(MARK_DIAMOND);
-$lp2->mark->SetWidth(15);
-$lp2->mark->SetFillColor('darkred');
-$lp2->SetCSIMTargets($targ2,$alts2);
-$graph->ynaxis[0]->SetColor('darkred');
-$graph->ynaxis[0]->title->Set('Rate A');
-$graph->ynaxis[0]->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->ynaxis[0]->title->SetColor('darkred');
-$graph->AddY(0,$lp2);
-
-// Second multi Y-axis plot
-$lp3 = new LinePlot($datay3);
-$lp3->SetLegend('2003');
-$lp3->mark->SetType(MARK_DIAMOND);
-$lp3->mark->SetWidth(15);
-$lp3->mark->SetFillColor('darkgreen');
-$lp3->SetCSIMTargets($targ3,$alts3);
-$graph->ynaxis[1]->SetColor('darkgreen');
-$graph->ynaxis[1]->title->Set('Rate B');
-$graph->ynaxis[1]->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->ynaxis[1]->title->SetColor('darkgreen');
-$graph->AddY(1,$lp3);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('auto');
-?>
diff --git a/nightly-test-server/jpgraph/Examples/mulyaxisex1.php b/nightly-test-server/jpgraph/Examples/mulyaxisex1.php
deleted file mode 100644
index 638042c..0000000
--- a/nightly-test-server/jpgraph/Examples/mulyaxisex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$n = 8;
-for($i=0; $i < $n; ++$i ) {
-    $datay[$i] = rand(1,10);
-    $datay2[$i] = rand(10,55);
-    $datay3[$i] = rand(200,600);
-    $datay4[$i] = rand(521,655);
-}
-
-$datay4[0] = 520;
-$datay4[7] = 660;
-
-// Setup the graph
-$graph = new Graph(450,250);
-$graph->SetMargin(40,150,40,30);
-$graph->SetMarginColor('white');
-
-$graph->SetScale('intlin');
-$graph->title->Set('Using multiple Y-axis');
-$graph->title->SetFont(FF_ARIAL,FS_NORMAL,14);
-
-$graph->SetYScale(0,'lin');
-$graph->SetYScale(1,'lin');
-$graph->SetYScale(2,'lin');
-
-$p1 = new LinePlot($datay);
-$graph->Add($p1);
-
-$p2 = new LinePlot($datay2);
-$p2->SetColor('teal');
-$graph->AddY(0,$p2);
-$graph->ynaxis[0]->SetColor('teal');
-
-$p3 = new LinePlot($datay3);
-$p3->SetColor('red');
-$graph->AddY(1,$p3);
-$graph->ynaxis[1]->SetColor('red');
-
-$p4 = new LinePlot($datay4);
-$p4->SetColor('blue');
-$graph->AddY(2,$p4);
-$graph->ynaxis[2]->SetColor('blue');
-
-// Output line
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/negbarvalueex01.php b/nightly-test-server/jpgraph/Examples/negbarvalueex01.php
deleted file mode 100644
index 5c60ee9..0000000
--- a/nightly-test-server/jpgraph/Examples/negbarvalueex01.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,40,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// DIsplay value at top of each bar
-$bplot->value->Show();
-$bplot->SetShadow();
-
-$graph->Add($bplot);
-
-// Position the scale at the min of the other axis
-$graph->xaxis->SetPos("min");
-
-// Add 10% more space at top and bottom of graph
-$graph->yscale->SetGrace(10,10);
-
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-$graph->title->Set("Example of bar plot with absolute labels");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_NORMAL,16);
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/nullvalueex01.php b/nightly-test-server/jpgraph/Examples/nullvalueex01.php
deleted file mode 100644
index 50cfec9..0000000
--- a/nightly-test-server/jpgraph/Examples/nullvalueex01.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datax = array("2001-04-01","2001-04-02","2001-04-03","2001-04-04","2001-04-05","2001-04-06");
-$datay = array(28,13,24,"",90,11);
-$data2y = array(11,41,"-",33,"-",63);
-
-// Setup graph
-$graph = new Graph(400,250,"auto");
-$graph->img->SetMargin(40,150,40,80);	
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-//Setup title
-$graph->title->Set("Line plot with null values");
-
-// Use built in font
-$graph->title->SetFont(FF_COMIC,FS_NORMAL,14);
-
-// Slightly adjust the legend from it's default position
-$graph->legend->Pos(0.03,0.5,"right","center");
-$graph->legend->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup X-scale
-$graph->xaxis->SetTickLabels($datax);
-$graph->xaxis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->xaxis->SetLabelAngle(45);
-
-// Create the first line
-$p1 = new LinePlot($datay);
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-$p1->SetColor("blue");
-$p1->SetCenter();
-$p1->SetLegend("Undefined\nvariant 1");
-$graph->Add($p1);
-
-// ... and the second
-$p2 = new LinePlot($data2y);
-$p2->mark->SetType(MARK_STAR);
-$p2->mark->SetFillColor("red");
-$p2->mark->SetWidth(4);
-$p2->SetColor("red");
-$p2->SetCenter();
-$p2->SetLegend("Undefined\nvariant 2");
-$graph->Add($p2);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/partiallyfilledlineex1.php b/nightly-test-server/jpgraph/Examples/partiallyfilledlineex1.php
deleted file mode 100644
index 4f5fae9..0000000
--- a/nightly-test-server/jpgraph/Examples/partiallyfilledlineex1.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-include("../jpgraph.php");
-include("../jpgraph_line.php");
-
-// Some data
-$ydata = array(5,10,15,20,15,10,8,7,4,10,5);
-
-// Create the graph
-$graph= new Graph(400,300,"auto");
-$graph->SetScale("textlin");
-$graph->SetShadow(true);
-$graph->SetMarginColor("lightblue");
-
-// Setup format for legend
-$graph->legend->SetFillColor("antiquewhite");
-$graph->legend->SetShadow(true);
-
-// Setup title
-$graph->title->Set("Filled Area Example");
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-
-// Setup semi-filled line plot
-$lineplot = new LinePlot($ydata);
-$lineplot->SetLegend("Semi-filled\nLineplot");
-
-// Set line color
-$lineplot->SetColor("black");
-
-// Setup the two areas to be filled
-$lineplot->AddArea(2,5,LP_AREA_FILLED,"red");
-$lineplot->AddArea(6,8,LP_AREA_FILLED,"green");
-
-// Display the marks on the lines
-$lineplot->mark->SetType(MARK_DIAMOND);
-$lineplot->mark->SetSize(8);
-$lineplot->mark->Show();
-
-// add plot to the graph
-$graph->Add($lineplot);
-
-// display graph
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/penguin.png b/nightly-test-server/jpgraph/Examples/penguin.png
deleted file mode 100644
index 2ae426a..0000000
--- a/nightly-test-server/jpgraph/Examples/penguin.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/pie3d_csimex1.php b/nightly-test-server/jpgraph/Examples/pie3d_csimex1.php
deleted file mode 100644
index 57c1db7..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3d_csimex1.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_pie.php");
-include_once ("../jpgraph_pie3d.php");
-
-//$gJpgBrandTiming=true;
-
-// Some data
-$data = array(40,21,17,27,23);
-
-// Create the Pie Graph. 
-$graph = new PieGraph(400,200,'auto');
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("3D Pie Client side image map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create
-$p1 = new PiePlot3D($data);
-$p1->SetLegends(array("Jan (%d)","Feb","Mar","Apr","May","Jun","Jul"));
-$targ=array("pie3d_csimex1.php?v=1","pie3d_csimex1.php?v=2","pie3d_csimex1.php?v=3",
-			"pie3d_csimex1.php?v=4","pie3d_csimex1.php?v=5","pie3d_csimex1.php?v=6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$p1->SetCSIMTargets($targ,$alts);
-
-// Use absolute labels
-$p1->SetLabelType(1);
-$p1->value->SetFormat("%d kr");
-
-// Move the pie slightly to the left
-$p1->SetCenter(0.4,0.5);
-
-$graph->Add($p1);
-
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('pie3d_csimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex1.php b/nightly-test-server/jpgraph/Examples/pie3dex1.php
deleted file mode 100644
index aa0bfdd..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex1.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 1 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetAngle(30);
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,12);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex2.php b/nightly-test-server/jpgraph/Examples/pie3dex2.php
deleted file mode 100644
index 50057ff..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex2.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-
-// Set A title for the plot
-$graph->title->Set("Example 2 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(0.4);
-$p1->SetHeight(5);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// You can explode several slices by specifying the explode
-// distance for some slices in an array
-$p1->Explode(array(0,40,0,30));
-
-// As a shortcut you can easily explode one numbered slice with
-// $p1->ExplodeSlice(3);
-
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,10);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex3.php b/nightly-test-server/jpgraph/Examples/pie3dex3.php
deleted file mode 100644
index cc4b52a..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex3.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 3 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(80);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// As a shortcut you can easily explode one numbered slice with
-$p1->ExplodeSlice(3);
-
-// Setup the slice values
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,11);
-$p1->value->SetColor("navy");
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex4.php b/nightly-test-server/jpgraph/Examples/pie3dex4.php
deleted file mode 100644
index d86aeec..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex4.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 4 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(80);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// Adjsut angle for first slice
-$p1->SetStartAngle(45);
-
-// As a shortcut you can easily explode one numbered slice with
-$p1->ExplodeSlice(3);
-
-// Setup slice values
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,11);
-$p1->value->SetColor("navy");
-
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie3dex5.php b/nightly-test-server/jpgraph/Examples/pie3dex5.php
deleted file mode 100644
index 4843157..0000000
--- a/nightly-test-server/jpgraph/Examples/pie3dex5.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(20,27,45,75,90);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 5 3D Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,18); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-// Create 3D pie plot
-$p1 = new PiePlot3d($data);
-$p1->SetTheme("sand");
-$p1->SetCenter(0.4);
-$p1->SetSize(80);
-
-// Adjust projection angle
-$p1->SetAngle(45);
-
-// Adjsut angle for first slice
-$p1->SetStartAngle(45);
-
-// Display the slice values
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,11);
-$p1->value->SetColor("navy");
-
-// Add colored edges to the 3D pie
-// NOTE: You can't have exploded slices with edges!
-$p1->SetEdge("navy");
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct"));
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pie_csimex1.php b/nightly-test-server/jpgraph/Examples/pie_csimex1.php
deleted file mode 100644
index 4cd3f73..0000000
--- a/nightly-test-server/jpgraph/Examples/pie_csimex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_pie.php");
-
-// Some data
-$data = array(40,21,17,14,23);
-
-// Create the Pie Graph. 
-$graph = new PieGraph(300,200,'auto');
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Client side image map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.4,0.5);
-
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul"));
-$targ=array("pie_csimex1.php#1","pie_csimex1.php#2","pie_csimex1.php#3",
-"pie_csimex1.php#4","pie_csimex1.php#5","pie_csimex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$p1->SetCSIMTargets($targ,$alts);
-
-$graph->Add($p1);
-
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('pie_csimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piebkgex1.php b/nightly-test-server/jpgraph/Examples/piebkgex1.php
deleted file mode 100644
index bb83a43..0000000
--- a/nightly-test-server/jpgraph/Examples/piebkgex1.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-include ("../jpgraph_pie3d.php");
-
-// Some data
-$data = array(
-    array(80,18,15,17),
-    array(35,28,6,34),
-    array(10,28,10,5),
-    array(22,22,10,17));
-
-$piepos = array(0.2,0.4,0.65,0.28,0.25,0.75,0.8,0.75);
-$titles = array('USA','Sweden','South America','Australia');
-
-$n = count($piepos)/2;
- 
-// A new graph
-$graph = new PieGraph(550,400,'auto');
-
-// Specify margins since we put the image in the plot area
-$graph->SetMargin(1,1,40,1);
-$graph->SetMarginColor('navy');
-$graph->SetShadow(false);
-
-// Setup background
-$graph->SetBackgroundImage('worldmap1.jpg',BGIMG_FILLPLOT);
-
-// Setup title
-$graph->title->Set("Pie plots with background image");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,20);
-$graph->title->SetColor('white');
-
-$p = array();
-// Create the plots
-for( $i=0; $i < $n; ++$i ) {
-    $d = "data$i";
-    $p[] = new PiePlot3D($data[$i]);
-}
-
-// Position the four pies
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->SetCenter($piepos[2*$i],$piepos[2*$i+1]);
-}
-
-// Set the titles
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->title->Set($titles[$i]);
-    $p[$i]->title->SetColor('white');
-    $p[$i]->title->SetFont(FF_ARIAL,FS_BOLD,12);
-}
-
-// Label font and color setup
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->value->SetFont(FF_ARIAL,FS_BOLD);
-    $p[$i]->value->SetColor('white');
-}
-
-// Show the percetages for each slice
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->value->Show();
-}
-
-// Label format
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->value->SetFormat("%01.1f%%");
-}
-
-// Size of pie in fraction of the width of the graph
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->SetSize(0.15);
-}
-
-// Format the border around each slice
-
-
-for( $i=0; $i < $n; ++$i ) {
-    $p[$i]->SetEdge(false);
-    $p[$i]->ExplodeSlice(1);
-}
-
-// Use one legend for the whole graph
-$p[0]->SetLegends(array("May","June","July","Aug"));
-$graph->legend->Pos(0.05,0.35);
-$graph->legend->SetShadow(false);
-
-for( $i=0; $i < $n; ++$i ) {
-    $graph->Add($p[$i]);
-}
-
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piec_csimex1.php b/nightly-test-server/jpgraph/Examples/piec_csimex1.php
deleted file mode 100644
index aa70770..0000000
--- a/nightly-test-server/jpgraph/Examples/piec_csimex1.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-// $Id$
-// Example of pie with center circle
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(50,28,25,27,31,20);
-
-// A new pie graph
-$graph = new PieGraph(400,400);
-
-// If you don't want any  border just uncomment this line
-// $graph->SetFrame(false);
-
-// Uncomment this line to add a drop shadow to the border
-// $graph->SetShadow();
-
-// Setup title
-$graph->title->Set("CSIM Center Pie plot ex 1");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,18);
-$graph->title->SetMargin(8); // Add a little bit more margin from the top
-
-// Create the pie plot
-$p1 = new PiePlotC($data);
-
-// Set the radius of pie (as fraction of image size)
-$p1->SetSize(0.32);
-
-// Move the center of the pie slightly to the top of the image
-$p1->SetCenter(0.5,0.45);
-
-// Label font and color setup
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$p1->value->SetColor('white');
-
-// Setup the title on the center circle
-$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
-$p1->midtitle->SetFont(FF_ARIAL,FS_NORMAL,14);
-
-// Set color for mid circle
-$p1->SetMidColor('yellow');
-
-// Use percentage values in the legends values (This is also the default)
-$p1->SetLabelType(PIE_VALUE_PER);
-
-// The label array values may have printf() formatting in them. The argument to the
-// form,at string will be the value of the slice (either the percetage or absolute
-// depending on what was specified in the SetLabelType() above.
-$lbl = array("adam\n%.1f%%","bertil\n%.1f%%","johan\n%.1f%%",
-	     "peter\n%.1f%%","daniel\n%.1f%%","erik\n%.1f%%");
-$p1->SetLabels($lbl);
-
-// Uncomment this line to remove the borders around the slices
-// $p1->ShowBorder(false);
-
-// Add drop shadow to slices
-$p1->SetShadow();
-
-// Explode all slices 15 pixels
-$p1->ExplodeAll(15);
-
-// Setup the CSIM targets
-$targ=array("piec_csimex1.php#1","piec_csimex1.php#2","piec_csimex1.php#3",
-	    "piec_csimex1.php#4","piec_csimex1.php#5","piec_csimex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$p1->SetCSIMTargets($targ,$alts);
-$p1->SetMidCSIM("piec_csimex1.php#7","Center");
-
-
-// Setup a small help text in the image
-$txt = new Text("Note: This is an example of image map. Hold\nyour mouse over the slices to see the values.\nThe URL just points back to this page");
-$txt->SetFont(FF_FONT1,FS_BOLD);
-$txt->Pos(0.5,0.97,'center','bottom');
-$txt->SetBox('yellow','black');
-$txt->SetShadow();
-$graph->AddText($txt);
-
-// Add plot to pie graph
-$graph->Add($p1);
-
-// .. and send the image on it's marry way to the browser
-$graph->StrokeCSIM('piec_csimex1.php');
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piecex1.php b/nightly-test-server/jpgraph/Examples/piecex1.php
deleted file mode 100644
index 1d39ba2..0000000
--- a/nightly-test-server/jpgraph/Examples/piecex1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-// $Id
-// Example of pie with center circle
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(50,28,25,27,31,20);
-
-// A new pie graph
-$graph = new PieGraph(300,300,'auto');
-
-// Setup title
-$graph->title->Set("Pie plot with center circle");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,14);
-$graph->title->SetMargin(8); // Add a little bit more margin from the top
-
-// Create the pie plot
-$p1 = new PiePlotC($data);
-
-// Set size of pie
-$p1->SetSize(0.32);
-
-// Label font and color setup
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,10);
-$p1->value->SetColor('black');
-
-// Setup the title on the center circle
-$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
-$p1->midtitle->SetFont(FF_COMIC,FS_NORMAL,10);
-
-// Set color for mid circle
-$p1->SetMidColor('yellow');
-
-// Use percentage values in the legends values (This is also the default)
-$p1->SetLabelType(PIE_VALUE_PER);
-
-// Add plot to pie graph
-$graph->Add($p1);
-
-// .. and send the image on it's marry way to the browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/piecex2.php b/nightly-test-server/jpgraph/Examples/piecex2.php
deleted file mode 100644
index 5d99812..0000000
--- a/nightly-test-server/jpgraph/Examples/piecex2.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-// $Id$
-// Example of pie with center circle
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(50,28,25,27,31,20);
-
-// A new pie graph
-$graph = new PieGraph(400,400,'auto');
-
-// Don't display the border
-$graph->SetFrame(false);
-
-// Uncomment this line to add a drop shadow to the border
-// $graph->SetShadow();
-
-// Setup title
-$graph->title->Set("PiePlotC");
-$graph->title->SetFont(FF_COMIC,FS_BOLD,18);
-$graph->title->SetMargin(8); // Add a little bit more margin from the top
-
-// Create the pie plot
-$p1 = new PiePlotC($data);
-
-// Set size of pie
-$p1->SetSize(0.35);
-
-// Label font and color setup
-$p1->value->SetFont(FF_ARIAL,FS_BOLD,12);
-$p1->value->SetColor('white');
-
-$p1->value->Show();
-
-// Setup the title on the center circle
-$p1->midtitle->Set("Test mid\nRow 1\nRow 2");
-$p1->midtitle->SetFont(FF_COMIC,FS_NORMAL,14);
-
-// Set color for mid circle
-$p1->SetMidColor('yellow');
-
-// Use percentage values in the legends values (This is also the default)
-$p1->SetLabelType(PIE_VALUE_PER);
-
-// The label array values may have printf() formatting in them. The argument to the
-// form,at string will be the value of the slice (either the percetage or absolute
-// depending on what was specified in the SetLabelType() above.
-$lbl = array("adam\n%.1f%%","bertil\n%.1f%%","johan\n%.1f%%",
-	     "peter\n%.1f%%","daniel\n%.1f%%","erik\n%.1f%%");
-$p1->SetLabels($lbl);
-
-// Uncomment this line to remove the borders around the slices
-// $p1->ShowBorder(false);
-
-// Add drop shadow to slices
-$p1->SetShadow();
-
-// Explode all slices 15 pixels
-$p1->ExplodeAll(15);
-
-// Add plot to pie graph
-$graph->Add($p1);
-
-// .. and send the image on it's marry way to the browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex1.php b/nightly-test-server/jpgraph/Examples/pieex1.php
deleted file mode 100644
index bf00510..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex1.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(113,5,160,3,15,10,1);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 1 Pie plot");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,14); 
-$graph->title->SetColor("brown");
-
-// Create pie plot
-$p1 = new PiePlot($data);
-//$p1->SetSliceColors(array("red","blue","yellow","green"));
-$p1->SetTheme("earth");
-
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,10);
-// Set how many pixels each slice should explode
-$p1->Explode(array(0,15,15,25,15));
-
-
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex2.php b/nightly-test-server/jpgraph/Examples/pieex2.php
deleted file mode 100644
index d80a8d5..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(40,21,17,14,23);
-
-// Create the Pie Graph. 
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Example 2 Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create
-$p1 = new PiePlot($data);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May","Jun","Jul"));
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex3.php b/nightly-test-server/jpgraph/Examples/pieex3.php
deleted file mode 100644
index 0f1ac21..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex3.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(40,21,17,14,23);
-
-// Create the Pie Graph.
-$graph = new PieGraph(350,300,"auto");
-$graph->SetShadow();
-
-// Set A title for the plot
-$graph->title->Set("Multiple - Pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create plots
-$size=0.13;
-$p1 = new PiePlot($data);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May"));
-$p1->SetSize($size);
-$p1->SetCenter(0.25,0.32);
-$p1->value->SetFont(FF_FONT0);
-$p1->title->Set("2001");
-
-$p2 = new PiePlot($data);
-$p2->SetSize($size);
-$p2->SetCenter(0.65,0.32);
-$p2->value->SetFont(FF_FONT0);
-$p2->title->Set("2002");
-
-$p3 = new PiePlot($data);
-$p3->SetSize($size);
-$p3->SetCenter(0.25,0.75);
-$p3->value->SetFont(FF_FONT0);
-$p3->title->Set("2003");
-
-$p4 = new PiePlot($data);
-$p4->SetSize($size);
-$p4->SetCenter(0.65,0.75);
-$p4->value->SetFont(FF_FONT0);
-$p4->title->Set("2004");
-
-$graph->Add($p1);
-$graph->Add($p2);
-$graph->Add($p3);
-$graph->Add($p4);
-
-$graph->Stroke();
-
-?>
-
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex4.php b/nightly-test-server/jpgraph/Examples/pieex4.php
deleted file mode 100644
index 2a1a168..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex4.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-$graph->title->Set("Example 4 of pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$p1 = new PiePlot($data);
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetSize(0.3);
-$p1->SetCenter(0.4);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May"));
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex5.php b/nightly-test-server/jpgraph/Examples/pieex5.php
deleted file mode 100644
index 89c2bb4..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex5.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,21,33);
-
-// Setup graph
-$graph = new PieGraph(300,200,"auto");
-$graph->SetShadow();
-
-// Setup graph title
-$graph->title->Set("Example 5 of pie plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->value->SetFont(FF_VERDANA,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetSize(0.3);
-$p1->SetCenter(0.4);
-$p1->SetLegends(array("Jan","Feb","Mar","Apr","May"));
-//$p1->SetStartAngle(M_PI/8);
-$p1->ExplodeSlice(3);
-
-$graph->Add($p1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex6.php b/nightly-test-server/jpgraph/Examples/pieex6.php
deleted file mode 100644
index bba3187..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex6.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(27,23,47,17);
-
-// A new graph
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Example of pie plot with absolute labels");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// The pie plot
-$p1 = new PiePlot($data);
-
-// Move center of pie to the left to make better room
-// for the legend
-$p1->SetCenter(0.35,0.5);
-
-// No border
-$p1->ShowBorder(false);
-
-// Label font and color setup
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-
-// Use absolute values (type==1)
-$p1->SetLabelType(PIE_VALUE_ABS);
-
-// Label format
-$p1->value->SetFormat("$%d");
-$p1->value->Show();
-
-// Size of pie in fraction of the width of the graph
-$p1->SetSize(0.3);
-
-// Legends
-$p1->SetLegends(array("May ($%d)","June ($%d)","July ($%d)","Aug ($%d)"));
-$graph->legend->Pos(0.05,0.15);
-
-$graph->Add($p1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex7.php b/nightly-test-server/jpgraph/Examples/pieex7.php
deleted file mode 100644
index 37d84db..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex7.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-//$Id$
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-// Some data
-$data = array(27,23,0,17);
-
-// A new graph
-$graph = new PieGraph(350,200,"auto");
-$graph->SetShadow();
-
-// Setup title
-$graph->title->Set("Pie plot with absolute labels");
-$graph->subtitle->Set('(With hidden 0 labels)');
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// The pie plot
-$p1 = new PiePlot($data);
-
-
-// Move center of pie to the left to make better room
-// for the legend
-$p1->SetCenter(0.35,0.5);
-
-// No border
-$p1->ShowBorder(false);
-
-// Label font and color setup
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-
-// Use absolute values (type==1)
-$p1->SetLabelType(PIE_VALUE_ABS);
-
-// Label format
-$p1->value->SetFormat("$%d");
-$p1->value->HideZero();
-$p1->value->Show();
-
-// Size of pie in fraction of the width of the graph
-$p1->SetSize(0.3);
-
-// Legends
-$p1->SetLegends(array("May ($%d)","June ($%d)","July ($%d)","Aug ($%d)"));
-$graph->legend->Pos(0.05,0.2);
-
-$graph->Add($p1);
-$graph->Stroke();
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pieex8.php b/nightly-test-server/jpgraph/Examples/pieex8.php
deleted file mode 100644
index c5ea25f..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex8.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,31,35);
-
-// A new pie graph
-$graph = new PieGraph(250,200,"auto");
-$graph->SetShadow();
-
-// Title setup
-$graph->title->Set("Adjusting the label pos");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the pie plot
-$p1 = new PiePlot($data);
-
-// Adjust size and position of plot
-$p1->SetSize(0.4);
-$p1->SetCenter(0.5,0.52);
-
-// Setup slice labels and move them into the plot
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetLabelPos(0.6);
-
-// Finally add the plot
-$graph->Add($p1);
-
-// ... and stroke it
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/pieex9.php b/nightly-test-server/jpgraph/Examples/pieex9.php
deleted file mode 100644
index 5a5536a..0000000
--- a/nightly-test-server/jpgraph/Examples/pieex9.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(40,60,31,35);
-
-// A new pie graph
-$graph = new PieGraph(250,200,"auto");
-$graph->SetShadow();
-
-// Title setup
-$graph->title->Set("Exploding all slices");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the pie plot
-$p1 = new PiePlot($data);
-
-// Adjust size and position of plot
-$p1->SetSize(0.35);
-$p1->SetCenter(0.5,0.52);
-
-// Setup slice labels and move them into the plot
-$p1->value->SetFont(FF_FONT1,FS_BOLD);
-$p1->value->SetColor("darkred");
-$p1->SetLabelPos(0.65);
-
-// Explode all slices
-$p1->ExplodeAll(10);
-
-// Add drop shadow
-$p1->SetShadow();
-
-// Finally add the plot
-$graph->Add($p1);
-
-// ... and stroke it
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex1.php b/nightly-test-server/jpgraph/Examples/pielabelsex1.php
deleted file mode 100644
index 65c6100..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex1.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines
-$p1->SetGuideLines();
-$p1->SetGuideLinesAdjust(1.4);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex2.php b/nightly-test-server/jpgraph/Examples/pielabelsex2.php
deleted file mode 100644
index beaa7c7..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex2.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines. Make labels line up vertically
-$p1->SetGuideLines(true,false);
-$p1->SetGuideLinesAdjust(1.5);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex3.php b/nightly-test-server/jpgraph/Examples/pielabelsex3.php
deleted file mode 100644
index d0296c7..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex3.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines. Make labels line up vertically
-// and force guide lines to always beeing used
-$p1->SetGuideLines(true,false,true);
-$p1->SetGuideLinesAdjust(1.5);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pielabelsex4.php b/nightly-test-server/jpgraph/Examples/pielabelsex4.php
deleted file mode 100644
index 0c74461..0000000
--- a/nightly-test-server/jpgraph/Examples/pielabelsex4.php
+++ /dev/null
@@ -1,38 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_pie.php");
-
-$data = array(19,12,4,3,3,12,3,3,5,6,7,8,8,1,7,2,2,4,6,8,21,23,2,2,12);
-
-// Create the Pie Graph.
-$graph = new PieGraph(300,350);
-
-// Set A title for the plot
-$graph->title->Set("Label guide lines");
-$graph->title->SetFont(FF_VERDANA,FS_BOLD,12); 
-$graph->title->SetColor("darkblue");
-$graph->legend->Pos(0.1,0.2);
-
-
-// Create pie plot
-$p1 = new PiePlot($data);
-$p1->SetCenter(0.5,0.55);
-$p1->SetSize(0.3);
-
-// Enable and set policy for guide-lines. Make labels line up vertically
-$p1->SetGuideLines(true,false);
-$p1->SetGuideLinesAdjust(1.1);
-
-// Setup the labels
-$p1->SetLabelType(PIE_VALUE_PER);	
-$p1->value->Show();			
-$p1->value->SetFont(FF_ARIAL,FS_NORMAL,9);	
-$p1->value->SetFormat('%2.1f%%');		
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/polarex0-180.php b/nightly-test-server/jpgraph/Examples/polarex0-180.php
deleted file mode 100644
index 68f93df..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex0-180.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-// A simple Polar graph, example 0
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(250,250);
-$graph->SetScale('lin');
-$graph->SetMargin(35,35,25,25);
-$graph->SetType(POLAR_180);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex0.php b/nightly-test-server/jpgraph/Examples/polarex0.php
deleted file mode 100644
index 46cddfe..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex0.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-// A simple Polar graph, example 0
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(250,250);
-$graph->SetScale('lin');
-$graph->SetMargin(35,35,25,25);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex1.php b/nightly-test-server/jpgraph/Examples/polarex1.php
deleted file mode 100644
index dc65337..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex1.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-// A simple Polar graph, example 1
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(600,500);
-$graph->SetScale('lin');
-$graph->SetType(POLAR_180);
-//$graph->SetAngle(90);
-//$graph->SetMargin(30-150,30-150,30+150,30+150);
-$graph->Set90AndMargin(40,40,40,40);
-//$graph->axis->SetLabelAlign('right','center');
-
-$p = new PolarPlot($data);
-$p->SetLegend("Test");
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex10.php b/nightly-test-server/jpgraph/Examples/polarex10.php
deleted file mode 100644
index 093c1e5..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex10.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-$data = array(5,1,20,5,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,160,5,175,1);
-$n = count($data);
-/*
-for($i=0; $i < $n; $i+=2 ) {
-    $data[$n+$i] = 360-$data[$i];
-    $data[$n+$i+1] = $data[$i+1];
-}
-*/
-$graph = new PolarGraph(350,480);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_360);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('lightblue:0.9','lightblue:0.9','lightblue:0.9');
-
-// Set label and axis colors
-$graph->axis->SetColor('black','navy','darkred');
-
-// Draw the ticks on the bottom side of the radius axis
-$graph->axis->SetTickSide(SIDE_DOWN);
-
-// Increase the margin for the labels since we changed the
-// side of the ticks.
-$graph->axis->SetLabelMargin(6);
-
-// Change fonts
-$graph->axis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->axis->SetAngleFont(FF_ARIAL,FS_NORMAL,8);
-
-
-// Setup graph title
-$graph->title->Set('Polar plot #10');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Setup tab title
-$graph->tabtitle->Set('Microphone #1');
-$graph->tabtitle->SetColor('brown:0.5','lightyellow');
-
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex2.php b/nightly-test-server/jpgraph/Examples/polarex2.php
deleted file mode 100644
index 3bb7004..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex2.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('lin');
-
-$graph->title->Set('Polar plot #2');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-// Hide last labels on the Radius axis
-// They intersect with the box otherwise
-$graph->axis->HideLastTickLabel();
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex3-lin.php b/nightly-test-server/jpgraph/Examples/polarex3-lin.php
deleted file mode 100644
index 29e5bb0..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex3-lin.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,300);
-$graph->SetScale('lin',200);
-$graph->SetType(POLAR_180);
-
-$graph->title->Set('Polar plot #3');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-$graph->axis->ShowGrid(true,false);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex3.php b/nightly-test-server/jpgraph/Examples/polarex3.php
deleted file mode 100644
index c0b160e..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex3.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,300);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-
-$graph->title->Set('Polar plot #3');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-$graph->axis->ShowGrid(true,false);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex4.php b/nightly-test-server/jpgraph/Examples/polarex4.php
deleted file mode 100644
index f9c6950..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex4.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log');
-
-$graph->title->Set('Polar plot #4');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-// Hide last labels on the Radius axis
-// They intersect with the box otherwise
-$graph->axis->HideLastTickLabel();
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex5.php b/nightly-test-server/jpgraph/Examples/polarex5.php
deleted file mode 100644
index 69a9910..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex5.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-// A simple Polar graph, example 2
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,
-	      85,270,90,280,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log');
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-$graph->title->Set('Polar plot #5');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-// Hide last labels on the Radius axis
-// They intersect with the box otherwise
-$graph->axis->HideLastTickLabel();
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex6.php b/nightly-test-server/jpgraph/Examples/polarex6.php
deleted file mode 100644
index dddde32..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex6.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,270,
-	      90,480,
-	      95,270,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log');
-$graph->SetType(POLAR_180);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-$graph->title->Set('Polar plot #6');
-$graph->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->title->SetColor('navy');
-
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightred@0.5');
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex7-1.php b/nightly-test-server/jpgraph/Examples/polarex7-1.php
deleted file mode 100644
index bbdd3e6..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex7-1.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,30,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,150,2,180,1);
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-$graph->SetPlotSize(220,250);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-$graph->SetBackgroundGradient('blue:1.3','brown:1.4',GRAD_HOR,BGRAD_PLOT);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('gray','gray','gray');
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Polar plot #7');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex7-2.php b/nightly-test-server/jpgraph/Examples/polarex7-2.php
deleted file mode 100644
index 342fc57..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex7-2.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,30,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,150,2,180,1);
-
-$n = count($data);
-for($i=0; $i < $n; $i+=2 ) {
-    $data[$n+$i] = 360-$data[$i];
-    $data[$n+$i+1] = $data[$i+1];
-}
-
-
-$graph = new PolarGraph(300,400);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_360);
-$graph->SetPlotSize(220,300);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-$graph->SetBackgroundGradient('blue:1.3','brown:1.4',GRAD_MIDHOR,BGRAD_PLOT);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('gray','gray','gray');
-
-$graph->title->Set('Polar plot #7-2');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('yellow@0.6');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex7.php b/nightly-test-server/jpgraph/Examples/polarex7.php
deleted file mode 100644
index 735aa8f..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex7.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-$graph = new PolarGraph(300,350);
-$graph->SetScale('lin',300);
-$graph->SetType(POLAR_180);
-$graph->SetPlotSize(220,250);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-$graph->SetBackgroundGradient('blue:1.3','brown:1.4',GRAD_HOR,BGRAD_PLOT);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('gray','gray','gray');
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Polar plot #7');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex8.php b/nightly-test-server/jpgraph/Examples/polarex8.php
deleted file mode 100644
index 84b1167..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex8.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-$graph = new PolarGraph(350,400);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-//$graph->SetPlotSize(250,250);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-// Set plotarea color
-$graph->SetColor('lightblue');
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('lightblue:0.8','lightblue:0.8','lightblue:0.8');
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->title->Set('Polar plot #8');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Adjust legen box position and color
-$graph->legend->SetColor('navy','darkgray');
-$graph->legend->SetFillColor('white');
-$graph->legend->SetShadow('darkgray@0.5',5);
-
-$p = new PolarPlot($data);
-$p->SetFillColor('white@0.5');
-$p->mark->SetType(MARK_SQUARE);
-$p->SetLegend("Mirophone #1\n(No amps)");
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/polarex9.php b/nightly-test-server/jpgraph/Examples/polarex9.php
deleted file mode 100644
index 206413c..0000000
--- a/nightly-test-server/jpgraph/Examples/polarex9.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-// A simple Polar graph,
-
-include "../jpgraph.php";
-include "../jpgraph_polar.php";
-
-$data = array(0,1,10,2,30,25,40,60,
-	      50,110,60,160,70,210,75,230,80,260,85,370,
-	      90,480,
-	      95,370,100,260,105,230,
-	      110,210,120,160,130,110,140,60,
-	      150,25,170,2,180,1);
-
-$graph = new PolarGraph(350,320);
-$graph->SetScale('log',100);
-$graph->SetType(POLAR_180);
-
-// Hide frame around graph (by setting width=0)
-$graph->SetFrame(true,'white',1);
-
-// Show both major and minor grid lines
-$graph->axis->ShowGrid(true,true);
-
-// Set color for gradient lines
-$graph->axis->SetGridColor('lightblue:0.9','lightblue:0.9','lightblue:0.9');
-
-// Set label and axis colors
-$graph->axis->SetColor('black','navy','darkred');
-
-// Draw the ticks on the bottom side of the radius axis
-$graph->axis->SetTickSide(SIDE_DOWN);
-
-// Increase the margin for the labels since we changed the
-// side of the ticks.
-$graph->axis->SetLabelMargin(6);
-
-// Change fonts
-$graph->axis->SetFont(FF_ARIAL,FS_NORMAL,8);
-$graph->axis->SetAngleFont(FF_ARIAL,FS_NORMAL,8);
-
-// Setup axis title
-$graph->axis->SetTitle('Coverage (in meter)','middle');
-$graph->axis->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup graph title
-$graph->title->Set('Polar plot #9');
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('navy');
-
-// Setup tab title
-$graph->tabtitle->Set('Microphone #1');
-$graph->tabtitle->SetColor('brown:0.5','lightyellow');
-
-
-$p = new PolarPlot($data);
-$p->SetFillColor('lightblue@0.5');
-$p->mark->SetType(MARK_SQUARE);
-
-$graph->Add($p);
-
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/pushpinex1.php b/nightly-test-server/jpgraph/Examples/pushpinex1.php
deleted file mode 100644
index 3102d30..0000000
--- a/nightly-test-server/jpgraph/Examples/pushpinex1.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-DEFINE('WORLDMAP','worldmap1.jpg');
-
-function markCallback($y,$x) {
-    // Return array width
-    // width,color,fill color, marker filename, imgscale
-    // any value can be false, in that case the default value will
-    // be used.
-    // We only make one pushpin another color
-    if( $x == 54 ) 
-	return array(false,false,false,'red',0.8);
-    else
-	return array(false,false,false,'green',0.8);
-}
-
-// Data arrays
-$datax = array(10,20,30,40,54,60,70,80);
-$datay = array(12,23,65,18,84,28,86,44);
-
-// Setup the graph
-$graph = new Graph(400,270);
-
-// We add a small 1pixel left,right,bottom margin so the plot area
-// doesn't cover the frame around the graph.
-$graph->img->SetMargin(1,1,1,1);
-$graph->SetScale('linlin',0,100,0,100);
-
-// We don't want any axis to be shown
-$graph->xaxis->Hide();
-$graph->yaxis->Hide();
-
-// Use a worldmap as the background and let it fill the plot area
-$graph->SetBackgroundImage(WORLDMAP,BGIMG_FILLPLOT);
-
-// Setup a nice title with a striped bevel background
-$graph->title->Set("Pushpin graph");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('white');
-$graph->SetTitleBackground('darkgreen',TITLEBKG_STYLE1,TITLEBKG_FRAME_BEVEL);
-$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'blue','darkgreen');
-
-// Finally create the scatterplot
-$sp = new ScatterPlot($datay,$datax);
-
-// We want the markers to be an image
-$sp->mark->SetType(MARK_IMG_PUSHPIN,'blue',0.6);
-
-// Install the Y-X callback for the markers
-$sp->mark->SetCallbackYX('markCallback');
-
-// ...  and add it to the graph
-$graph->Add($sp);    
-
-// .. and output to browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/pushpinex2.php b/nightly-test-server/jpgraph/Examples/pushpinex2.php
deleted file mode 100644
index 58c9773..0000000
--- a/nightly-test-server/jpgraph/Examples/pushpinex2.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-DEFINE('WORLDMAP','worldmap1.jpg');
-
-function markCallback($y,$x) {
-    // Return array width
-    // width,color,fill color, marker filename, imgscale
-    // any value can be false, in that case the default value will
-    // be used.
-    // We only make one pushpin another color
-    if( $x == 54 ) 
-	return array(false,false,false,'red',0.8);
-    else
-	return array(false,false,false,'green',0.8);
-}
-
-// Data arrays
-$datax = array(10,20,30,40,54,60,70,80);
-$datay = array(12,23,65,18,84,28,86,44);
-
-// Setup the graph
-$graph = new Graph(400,270);
-
-// We add a small 1pixel left,right,bottom margin so the plot area
-// doesn't cover the frame around the graph.
-$graph->img->SetMargin(1,1,1,1);
-$graph->SetScale('linlin',0,100,0,100);
-
-// We don't want any axis to be shown
-$graph->xaxis->Hide();
-$graph->yaxis->Hide();
-
-// Use a worldmap as the background and let it fill the plot area
-$graph->SetBackgroundImage(WORLDMAP,BGIMG_FILLPLOT);
-
-// Setup a nice title with a striped bevel background
-$graph->title->Set("Pushpin graph");
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,16);
-$graph->title->SetColor('white');
-$graph->SetTitleBackground('darkgreen',TITLEBKG_STYLE1,TITLEBKG_FRAME_BEVEL);
-$graph->SetTitleBackgroundFillStyle(TITLEBKG_FILLSTYLE_HSTRIPED,'blue','darkgreen');
-
-// Finally create the lineplot
-$lp = new LinePlot($datay,$datax);
-$lp->SetColor('lightgray');
-
-// We want the markers to be an image
-$lp->mark->SetType(MARK_IMG_PUSHPIN,'blue',0.6);
-
-// Install the Y-X callback for the markers
-$lp->mark->SetCallbackYX('markCallback');
-
-// ...  and add it to the graph
-$graph->Add($lp);    
-
-// .. and output to browser
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/radarex1.php b/nightly-test-server/jpgraph/Examples/radarex1.php
deleted file mode 100644
index e300697..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex1.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,46,71,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-$plot = new RadarPlot($data);
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex2.php b/nightly-test-server/jpgraph/Examples/radarex2.php
deleted file mode 100644
index 18ddb0c..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex2.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,46,71,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(300,200,"auto");
-
-$graph->title->Set('Weekly goals');
-$graph->subtitle->Set('Year 2003');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightred');
-$graph->SetSize(0.6);
-$graph->SetPos(0.5,0.6);
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex3.php b/nightly-test-server/jpgraph/Examples/radarex3.php
deleted file mode 100644
index a61e394..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex3.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,46,71,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex4.php b/nightly-test-server/jpgraph/Examples/radarex4.php
deleted file mode 100644
index c285e10..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex4.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex5.php b/nightly-test-server/jpgraph/Examples/radarex5.php
deleted file mode 100644
index 901db85..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex5.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetColor('darkred');
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex6.1.php b/nightly-test-server/jpgraph/Examples/radarex6.1.php
deleted file mode 100644
index f6ca02b..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex6.1.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-$data2 = array(15,50,46,39,25);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Add a drop shadow to the graph
-$graph->SetShadow();
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-$graph->SetColor('lightyellow');
-
-// ADjust the position to make more room
-// for the legend
-$graph->SetCenter(0.4,0.55);
-$graph->SetSize(0.6);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetColor('darkred');
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-$plot->SetLegend("QA results");
-
-$plot2 = new RadarPlot($data2);
-$plot2->SetLegend("Target");
-$plot2->SetColor('red');
-$plot2->SetFill(false);
-$plot2->SetLineWeight(2);
-
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Add($plot2);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex6.php b/nightly-test-server/jpgraph/Examples/radarex6.php
deleted file mode 100644
index 8b71761..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex6.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-	
-// Some data to plot
-$data = array(55,80,26,31,95);
-	
-// Create the graph and the plot
-$graph = new RadarGraph(250,200,"auto");
-
-// Add a drop shadow to the graph
-$graph->SetShadow();
-
-// Create the titles for the axis
-$titles = $gDateLocale->GetShortMonth();
-$graph->SetTitles($titles);
-$graph->SetColor('lightyellow');
-
-// ADjust the position to make more room
-// for the legend
-$graph->SetCenter(0.4,0.5);
-
-// Add grid lines
-$graph->grid->Show();
-$graph->grid->SetColor('darkred');
-$graph->grid->SetLineStyle('dotted');
-
-$plot = new RadarPlot($data);
-$plot->SetFillColor('lightblue');
-$plot->SetLegend("QA results");
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex7.php b/nightly-test-server/jpgraph/Examples/radarex7.php
deleted file mode 100644
index 5340f25..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex7.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-
-// Create the basic rtadar graph
-$graph = new RadarGraph(300,200,"auto");
-
-// Set background color and shadow
-$graph->SetColor("white");
-$graph->SetShadow();
-
-// Position the graph
-$graph->SetCenter(0.4,0.55);
-
-// Setup the axis formatting 	
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-$graph->axis->SetWeight(2);
-
-// Setup the grid lines
-$graph->grid->SetLineStyle("longdashed");
-$graph->grid->SetColor("navy");
-$graph->grid->Show();
-$graph->HideTickMarks();
-		
-// Setup graph titles
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->SetTitles(array("One","Two","Three","Four","Five","Sex","Seven","Eight","Nine","Ten"));
-// Create the first radar plot		
-$plot = new RadarPlot(array(30,80,60,40,71,81,47));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFill(false);
-$plot->SetLineWeight(2);
-
-// Create the second radar plot
-$plot2 = new RadarPlot(array(70,40,30,80,31,51,14));
-$plot2->SetLegend("Actual");
-$plot2->SetColor("blue","lightred");
-
-// Add the plots to the graph
-$graph->Add($plot2);
-$graph->Add($plot);
-
-// And output the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex8.1.php b/nightly-test-server/jpgraph/Examples/radarex8.1.php
deleted file mode 100644
index 4d85dd2..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex8.1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-
-// Create the basic radar graph
-$graph = new RadarGraph(300,200,"auto");
-$graph->img->SetAntiAliasing();
-
-// Set background color and shadow
-$graph->SetColor("white");
-$graph->SetShadow();
-
-// Position the graph
-$graph->SetCenter(0.4,0.55);
-
-// Setup the axis formatting 	
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the grid lines
-$graph->grid->SetLineStyle("solid");
-$graph->grid->SetColor("navy");
-$graph->grid->Show();
-$graph->HideTickMarks();
-		
-// Setup graph titles
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$graph->SetTitles($gDateLocale->GetShortMonth());
-
-// Create the first radar plot		
-$plot = new RadarPlot(array(70,80,60,90,71,81,47));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFill(false);
-$plot->SetLineWeight(2);
-
-// Create the second radar plot
-$plot2 = new RadarPlot(array(70,40,30,80,31,51,14));
-$plot2->SetLegend("Actual");
-$plot2->SetLineWeight(2);
-$plot2->SetColor("blue");
-$plot2->SetFill(false);
-
-// Add the plots to the graph
-$graph->Add($plot2);
-$graph->Add($plot);
-
-// And output the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex8.php b/nightly-test-server/jpgraph/Examples/radarex8.php
deleted file mode 100644
index 0e7a2a1..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex8.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_radar.php");
-
-// Create the basic radar graph
-$graph = new RadarGraph(300,200,"auto");
-//$graph->img->SetAntiAliasing();
-
-// Set background color and shadow
-$graph->SetColor("white");
-$graph->SetShadow();
-
-// Position the graph
-$graph->SetCenter(0.4,0.55);
-
-// Setup the axis formatting 	
-$graph->axis->SetFont(FF_FONT1,FS_BOLD);
-
-// Setup the grid lines
-$graph->grid->SetLineStyle("solid");
-$graph->grid->SetColor("navy");
-$graph->grid->Show();
-$graph->HideTickMarks();
-		
-// Setup graph titles
-$graph->title->Set("Quality result");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->SetTitles($gDateLocale->GetShortMonth());
-
-// Create the first radar plot		
-$plot = new RadarPlot(array(70,80,60,90,71,81,47));
-$plot->SetLegend("Goal");
-$plot->SetColor("red","lightred");
-$plot->SetFill(false);
-$plot->SetLineWeight(2);
-
-// Create the second radar plot
-$plot2 = new RadarPlot(array(70,40,30,80,31,51,14));
-$plot2->SetLegend("Actual");
-$plot2->SetLineWeight(2);
-$plot2->SetColor("blue");
-$plot2->SetFill(false);
-
-// Add the plots to the graph
-$graph->Add($plot2);
-$graph->Add($plot);
-
-// And output the graph
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/radarex9.php b/nightly-test-server/jpgraph/Examples/radarex9.php
deleted file mode 100644
index 14f97c2..0000000
--- a/nightly-test-server/jpgraph/Examples/radarex9.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-include ("../jpgraph.php"); 
-include ("../jpgraph_radar.php");
-
-$titles=array("N", '', "NW", '', "W", '', "SW", '', 'S', '', "SE", '', "E", '', "NE", '');
-$data=array(0, 0, 8, 10, 70, 90, 42, 0, 70, 60, 50, 40, 30, 40, 37.8, 72);
-
-$graph = new RadarGraph (250,270,"auto"); 
-
-$graph->title->Set("Accumulated PPM");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-$graph->subtitle->Set("(according to direction)");
-$graph->subtitle->SetFont(FF_VERDANA,FS_ITALIC,10);
-
-
-$graph->SetTitles($titles);
-$graph->SetCenter(0.5,0.55);
-$graph->HideTickMarks(); 
-$graph->SetColor('lightyellow');
-$graph->axis->SetColor('darkgray@0.3'); 
-$graph->grid->SetColor('darkgray@0.3');
-$graph->grid->Show();
-
-$graph->SetGridDepth(DEPTH_BACK);
-
-$plot = new RadarPlot($data);
-$plot->SetColor('red@0.2');
-$plot->SetLineWeight(1);
-$plot->SetFillColor('red@0.7');
-$graph->Add($plot);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/radarlogex1.php b/nightly-test-server/jpgraph/Examples/radarlogex1.php
deleted file mode 100644
index 390c2fb..0000000
--- a/nightly-test-server/jpgraph/Examples/radarlogex1.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_radar.php");
-
-// Some data to plot
-$data = array(242,58,1500,12,1397,810,373);
-$data2 = array(447,176,1472,191,1616,42,46);
-
-// Create the graph
-$graph = new RadarGraph(300,300,"auto");
-
-// Uncomment the following line to use anti-aliasing 
-// Note: Enabling this results in a very noticable slow
-// down of the image generation! And more load on your
-// server. Use it wisly!!
-$graph->img->SetAntiAliasing();
-
-// Make the spider graph fill out it's bounding box
-$graph->SetPlotSize(0.85);
-
-// Use logarithmic scale (If you don't use any SetScale()
-// the spider graph will default to linear scale
-$graph->SetScale("log");
-
-// Uncomment the following line if you want to supress
-// minor tick marks
-//$graph->yscale->ticks->SupressMinorTickMarks();
-
-// We want the major tick marks to be black and minor
-// slightly less noticable
-$graph->yscale->ticks->SetMarkColor("black","darkgray");
-
-// Set the axis title font 
-$graph->axis->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// Use blue axis
-$graph->axis->SetColor("blue");
-
-$plot = new RadarPlot($data);
-$plot->SetLineWeight(1);
-$plot->SetColor('forestgreen');
-
-$plot2 = new RadarPlot($data2);
-$plot2->SetLineWeight(2);
-$plot2->SetColor('red');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Add($plot2);
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/radarlogex2.php b/nightly-test-server/jpgraph/Examples/radarlogex2.php
deleted file mode 100644
index 3198f42..0000000
--- a/nightly-test-server/jpgraph/Examples/radarlogex2.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_log.php");
-include ("../jpgraph_radar.php");
-
-// Some data to plot
-$data = array(242,58,500,12,397,810,373);
-
-// Create the graph
-$graph = new RadarGraph(200,200,"auto");
-
-// Uncomment the following line to use anti-aliasing 
-// Note: Enabling this results in a very noticable slow
-// down of the image generation! And more load on your
-// server. Use it wisly!!
-$graph->img->SetAntiAliasing();
-
-// Make the spider graph fill out it's bounding box
-$graph->SetPlotSize(0.85);
-
-// Use logarithmic scale (If you don't use any SetScale()
-// the spider graph will default to linear scale
-$graph->SetScale("log");
-
-// Uncomment the following line if you want to supress
-// minor tick marks
-// $graph->yscale->ticks->SupressMinorTickMarks();
-
-// We want the major tick marks to be black and minor
-// slightly less noticable
-$graph->yscale->ticks->SetMarkColor("black","darkgray");
-
-// Set the axis title font 
-$graph->axis->title->SetFont(FF_ARIAL,FS_BOLD,12);
-
-// Use blue axis
-$graph->axis->SetColor("blue");
-
-$plot = new RadarPlot($data);
-$plot->SetLineWeight(2);
-$plot->SetColor('forestgreen');
-
-// Add the plot and display the graph
-$graph->Add($plot);
-$graph->Stroke();
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/radarmarkex1.php b/nightly-test-server/jpgraph/Examples/radarmarkex1.php
deleted file mode 100644
index af4cba5..0000000
--- a/nightly-test-server/jpgraph/Examples/radarmarkex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php"); 
-include ("../jpgraph_radar.php");
-
-$titles=array('Planning','Quality','Time','RR','CR','DR');
-$data=array(18, 40, 70, 90, 42,66);
-
-$graph = new RadarGraph (300,280,"auto"); 
-
-$graph->title->Set("Radar with marks");
-$graph->title->SetFont(FF_VERDANA,FS_NORMAL,12);
-
-$graph->SetTitles($titles);
-$graph->SetCenter(0.5,0.55);
-$graph->HideTickMarks(); 
-$graph->SetColor('lightgreen@0.7');
-$graph->axis->SetColor('darkgray'); 
-$graph->grid->SetColor('darkgray');
-$graph->grid->Show();
-
-$graph->axis->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-$graph->axis->title->SetMargin(5);
-$graph->SetGridDepth(DEPTH_BACK);
-$graph->SetSize(0.6);
-
-$plot = new RadarPlot($data);
-$plot->SetColor('red@0.2');
-$plot->SetLineWeight(1);
-$plot->SetFillColor('red@0.7');
-
-$plot->mark->SetType(MARK_IMG_SBALL,'red');
-
-$graph->Add($plot);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/rotateex1.php b/nightly-test-server/jpgraph/Examples/rotateex1.php
deleted file mode 100644
index 5bfc823..0000000
--- a/nightly-test-server/jpgraph/Examples/rotateex1.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(11,3,8,12,5,1,9,13,5,7);
-$y2data = array(354,200,265,99,111,91,198,225,293,251);
-
-$graph = new Graph(350,300,"auto");	
-$graph->SetAngle(40);
-$graph->img->SetMargin(80,80,80,80);
-$graph->SetScale("textlin");
-$graph->SetY2Scale("lin");
-$graph->SetShadow();
-
-// Create the linear plot
-$lineplot=new LinePlot($ydata);
-$lineplot2=new LinePlot($y2data);
-
-// Add the plot to the graph
-$graph->Add($lineplot);
-$graph->AddY2($lineplot2);
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-$graph->y2axis->SetColor("orange");
-
-$graph->title->Set("Example 1 rotated graph (40 degree)");
-$graph->legend->Pos(0.05,0.1,"right","top");
-
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
-
-$lineplot->SetColor("blue");
-$lineplot->SetWeight(2);
-
-$lineplot2->SetColor("orange");
-$lineplot2->SetWeight(2);
-
-$graph->yaxis->SetColor("blue");
-
-$lineplot->SetLegend("Plot 1");
-$lineplot2->SetLegend("Plot 2");
-
-// Display the graph
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/rotex0.php b/nightly-test-server/jpgraph/Examples/rotex0.php
deleted file mode 100644
index fe990e0..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex0.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex1.php b/nightly-test-server/jpgraph/Examples/rotex1.php
deleted file mode 100644
index 455e35d..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex1.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(45);
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex2.php b/nightly-test-server/jpgraph/Examples/rotex2.php
deleted file mode 100644
index 2e3a330..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex2.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(90);
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex3.php b/nightly-test-server/jpgraph/Examples/rotex3.php
deleted file mode 100644
index 2f05091..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex3.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(45);
-$graph->img->SetCenter(floor(270/2),floor(170/2));
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex4.php b/nightly-test-server/jpgraph/Examples/rotex4.php
deleted file mode 100644
index eeb2d97..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex4.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(90);
-$graph->img->SetCenter(floor(270/2),floor(170/2));
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/rotex5.php b/nightly-test-server/jpgraph/Examples/rotex5.php
deleted file mode 100644
index c61dcea..0000000
--- a/nightly-test-server/jpgraph/Examples/rotex5.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$ydata = array(12,17,22,19,5,15);
-
-$graph = new Graph(270,170);
-$graph->SetMargin(30,90,30,30);
-$graph->SetScale("textlin");
-
-$graph->img->SetAngle(-30);
-$graph->img->SetCenter(30,170-30);
-
-$line = new LinePlot($ydata);
-$line->SetLegend('2002');
-$line->SetColor('darkred');
-$line->SetWeight(2);
-$graph->Add($line);
-
-// Output graph
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/saab_95.jpg b/nightly-test-server/jpgraph/Examples/saab_95.jpg
deleted file mode 100644
index 189b0d4..0000000
--- a/nightly-test-server/jpgraph/Examples/saab_95.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/scatter_csimex1.php b/nightly-test-server/jpgraph/Examples/scatter_csimex1.php
deleted file mode 100644
index 572e8c8..0000000
--- a/nightly-test-server/jpgraph/Examples/scatter_csimex1.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_scatter.php");
-
-// Some data for the points
-$datax = array(3.5,13.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(10,22,12,13,17,20,16,19,30,31,40,43);
-
-// A new scatter graph
-$graph = new Graph(300,200,'auto');
-$graph->SetShadow();
-$graph->SetScale("linlin");
-
-//$graph->img->SetMargin(40,40,40,40);		
-
-$graph->title->Set("Scatter plot with Image Map");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Client side image map targets
-$targ=array("pie_csimex1.php#1","pie_csimex1.php#2","pie_csimex1.php#3",
-"pie_csimex1.php#4","pie_csimex1.php#5","pie_csimex1.php#6",
-"pie_csimex1.php#7","pie_csimex1.php#8","pie_csimex1.php#9" );
-
-// Strings to put as "alts" (and "title" value)
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-
-// Create a new scatter plot
-$sp1 = new ScatterPlot($datay,$datax);
-
-// Use diamonds as markerss
-$sp1->mark->SetType(MARK_DIAMOND);
-$sp1->mark->SetWidth(10);
-
-// Set the scatter plot image map targets
-$sp1->SetCSIMTargets($targ,$alts);
-
-// Add the plot
-$graph->Add($sp1);
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('scatter_csimex1.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/scatterex1.php b/nightly-test-server/jpgraph/Examples/scatterex1.php
deleted file mode 100644
index ed47006..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterex1.php
+++ /dev/null
@@ -1,22 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->img->SetMargin(40,40,40,40);		
-$graph->SetShadow();
-
-$graph->title->Set("A simple scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay,$datax);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/scatterex2.php b/nightly-test-server/jpgraph/Examples/scatterex2.php
deleted file mode 100644
index c68414c..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterex2.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->img->SetMargin(40,40,40,40);		
-$graph->SetShadow();
-
-$graph->title->Set("A simple scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(8);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex1.php b/nightly-test-server/jpgraph/Examples/scatterlinkex1.php
deleted file mode 100644
index 4ad155b..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex1.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-$graph = new Graph(300,200,"auto");
-$graph->img->SetMargin(40,40,40,40);	
-$graph->img->SetAntiAliasing();
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->title->Set("Linked Scatter plot ex1");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->SetLinkPoints(true,"red",2);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("navy");
-$sp1->mark->SetWidth(3);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex2.php b/nightly-test-server/jpgraph/Examples/scatterlinkex2.php
deleted file mode 100644
index 98615a0..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex2.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-
-// Make a circle with a scatterplot
-$steps=16;
-for($i=0; $i<$steps; ++$i) {
-	$a=2*M_PI/$steps*$i;
-	$datax[$i]=cos($a);
-	$datay[$i]=sin($a);
-}
-
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->img->SetMargin(40,40,40,40);		
-
-$graph->SetShadow();
-$graph->title->Set("Linked scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// 10% top and bottom grace
-$graph->yscale->SetGrace(5,5);
-$graph->xscale->SetGrace(1,1);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-
-//$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-$sp1->SetLinkPoints();
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex3.php b/nightly-test-server/jpgraph/Examples/scatterlinkex3.php
deleted file mode 100644
index 1909a93..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex3.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-
-// Make a circle with a scatterplot
-$steps=16;
-for($i=0; $i<$steps; ++$i) {
-	$a=2*M_PI/$steps*$i;
-	$datax[$i]=cos($a);
-	$datay[$i]=sin($a);
-}
-
-$graph = new Graph(350,230,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->SetAxisStyle(AXSTYLE_BOXOUT);
-
-$graph->img->SetMargin(50,50,60,40);		
-
-$graph->title->Set("Linked scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXOUT Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-
-// 10% top and bottom grace
-$graph->yscale->SetGrace(5,5);
-$graph->xscale->SetGrace(1,1);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-
-//$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-$sp1->SetLinkPoints();
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterlinkex4.php b/nightly-test-server/jpgraph/Examples/scatterlinkex4.php
deleted file mode 100644
index 1c90712..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterlinkex4.php
+++ /dev/null
@@ -1,45 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-// Make a circle with a scatterplot
-$steps=16;
-for($i=0; $i<$steps; ++$i) {
-	$a=2*M_PI/$steps*$i;
-	$datax[$i]=cos($a);
-	$datay[$i]=sin($a);
-}
-
-$graph = new Graph(350,230,"auto");
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->SetAxisStyle(AXSTYLE_BOXIN);
-
-$graph->img->SetMargin(50,50,60,40);		
-
-$graph->title->Set("Linked scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->subtitle->Set("(BOXIN Axis style)");
-$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
-
-
-// 10% top and bottom grace
-$graph->yscale->SetGrace(5,5);
-$graph->xscale->SetGrace(1,1);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->SetColor("blue");
-
-//$sp1->SetWeight(3);
-$sp1->mark->SetWidth(4);
-$sp1->SetLinkPoints();
-
-$graph->Add($sp1);
-
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/scatterrotex1.php b/nightly-test-server/jpgraph/Examples/scatterrotex1.php
deleted file mode 100644
index 9061e21..0000000
--- a/nightly-test-server/jpgraph/Examples/scatterrotex1.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_scatter.php");
-
-$datax = array(3.5,3.7,3,4,6.2,6,3.5,8,14,8,11.1,13.7);
-$datay = array(20,22,12,13,17,20,16,19,30,31,40,43);
-
-$graph = new Graph(300,200,"auto");
-$graph->SetScale("linlin");
-
-$graph->Set90AndMargin(40,40,40,40);		
-$graph->SetShadow();
-
-$graph->title->Set("A 90 degrees rotated scatter plot");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Adjust the label align for X-axis so they look good rotated
-$graph->xaxis->SetLabelAlign('right','center','right');
-
-// Adjust the label align for Y-axis so they look good rotated
-$graph->yaxis->SetLabelAlign('center','bottom');
-
-$graph->xaxis->SetTitle('X-Axis title','low');
-$graph->xaxis->title->SetAngle(90);
-$graph->xaxis->title->SetMargin(15);
-
-$sp1 = new ScatterPlot($datay,$datax);
-$sp1->mark->SetType(MARK_FILLEDCIRCLE);
-$sp1->mark->SetFillColor("red");
-$sp1->mark->SetWidth(5);
-
-$graph->Add($sp1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/show-example.php b/nightly-test-server/jpgraph/Examples/show-example.php
deleted file mode 100644
index 0907ce4..0000000
--- a/nightly-test-server/jpgraph/Examples/show-example.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php $target = urldecode($HTTP_GET_VARS['target']); ?>
-<!doctype html public "-//W3C//DTD HTML 4.0 Frameset//EN">
-<html>
-<head>
-<title> Test suite for JpGraph - <?php echo $target; ?></title>
-<script type="text/javascript" language="javascript">
-<!--
-function resize()
-{
-	return true;
-}
-//-->
-</script>
-</head>
-<frameset rows="*,*" onLoad="resize()">
-	<?php 
-	if( !strstr($target,"csim") )
-		echo "<frame src=\"show-image.php?target=".basename($target)."\" name=\"image\">";
-	else
-		echo	"<frame src=\"".basename($target)."\" name=\"image\">";
-	?>
-	<frame src="show-source.php?target=<?php echo basename($target); ?>" name="source">
-</frameset>
-</html>
diff --git a/nightly-test-server/jpgraph/Examples/show-image.php b/nightly-test-server/jpgraph/Examples/show-image.php
deleted file mode 100644
index 95766ae..0000000
--- a/nightly-test-server/jpgraph/Examples/show-image.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php $target =  urldecode($HTTP_GET_VARS['target']); ?>
-<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title> Image <?php echo basename($target); ?></title>
-</head>
-<body>
-<img src="<?php echo basename($target); ?>" border=0 alt="<?php echo basename($target); ?>" align="left">
-</body>
-</html>
diff --git a/nightly-test-server/jpgraph/Examples/show-source.php b/nightly-test-server/jpgraph/Examples/show-source.php
deleted file mode 100644
index 7c3c232..0000000
--- a/nightly-test-server/jpgraph/Examples/show-source.php
+++ /dev/null
@@ -1 +0,0 @@
-<?php highlight_file(basename(urldecode($HTTP_GET_VARS['target']))); ?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex1.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex1.php
deleted file mode 100644
index e1434d2..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex1.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_RDIAG,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_RDIAG');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex10.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex10.php
deleted file mode 100644
index 86b79b5..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex10.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_DIAGCROSS,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_DIAGCROSS');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex11.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex11.php
deleted file mode 100644
index 86b79b5..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex11.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_DIAGCROSS,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_DIAGCROSS');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex2.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex2.php
deleted file mode 100644
index 9417a1b..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex2.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_LDIAG,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_LDIAG');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex3.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex3.php
deleted file mode 100644
index 8af0b7c..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex3.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_SOLID,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_SOLID');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex4.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex4.php
deleted file mode 100644
index 2fb8cb0..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex4.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_3DPLANE,15,35,'khaki4');
-$band->SetDensity(60);
-$band->ShowFrame(true);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_3DPLANE, Density=60');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex5.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex5.php
deleted file mode 100644
index 8ce3432..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex5.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_HVCROSS,15,35,'khaki4');
-$band->ShowFrame(true);
-$band->SetOrder(DEPTH_FRONT);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_HVCROSS, In front');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex6.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex6.php
deleted file mode 100644
index 15d12aa..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex6.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_VLINE,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_VLINE');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex7.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex7.php
deleted file mode 100644
index 3923458..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex7.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_HLINE,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_HLINE');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex8.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex8.php
deleted file mode 100644
index 71fca24..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex8.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_3DPLANE,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_3DPLANE');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/smallstaticbandsex9.php b/nightly-test-server/jpgraph/Examples/smallstaticbandsex9.php
deleted file mode 100644
index 53213f4..0000000
--- a/nightly-test-server/jpgraph/Examples/smallstaticbandsex9.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-// Illustration of the different patterns for bands
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(10,29,3,6);
-
-// Create the graph. 
-$graph = new Graph(200,150,"auto");	
-$graph->SetScale("textlin");
-$graph->SetMargin(25,10,20,20);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("lightblue");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-$graph->ygrid->Show(false);
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$band = new PlotBand(HORIZONTAL,BAND_HVCROSS,15,35,'khaki4');
-$band->ShowFrame(false);
-$graph->AddBand($band);
-
-// Set title
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,10);
-$graph->title->SetColor('darkred');
-$graph->title->Set('BAND_HVCROSS');
-
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/splineex1.php b/nightly-test-server/jpgraph/Examples/splineex1.php
deleted file mode 100644
index 4130b79..0000000
--- a/nightly-test-server/jpgraph/Examples/splineex1.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-include "../jpgraph.php";
-include "../jpgraph_line.php";
-include "../jpgraph_scatter.php";
-include "../jpgraph_regstat.php";
-
-// Original data points
-$xdata = array(1,3,5,7,9,12,15,17.1);
-$ydata = array(5,1,9,6,4,3,19,12);
-
-// Get the interpolated values by creating
-// a new Spline object.
-$spline = new Spline($xdata,$ydata);
-
-// For the new data set we want 40 points to
-// get a smooth curve.
-list($newx,$newy) = $spline->Get(50);
-
-// Create the graph
-$g = new Graph(300,200);
-$g->SetMargin(30,20,40,30);
-$g->title->Set("Natural cubic splines");
-$g->title->SetFont(FF_ARIAL,FS_NORMAL,12);
-$g->subtitle->Set('(Control points shown in red)');
-$g->subtitle->SetColor('darkred');
-$g->SetMarginColor('lightblue');
-
-//$g->img->SetAntiAliasing();
-
-// We need a linlin scale since we provide both
-// x and y coordinates for the data points.
-$g->SetScale('linlin');
-
-// We want 1 decimal for the X-label
-$g->xaxis->SetLabelFormat('%1.1f');
-
-// We use a scatterplot to illustrate the original
-// contro points.
-$splot = new ScatterPlot($ydata,$xdata);
-
-// 
-$splot->mark->SetFillColor('red@0.3');
-$splot->mark->SetColor('red@0.5');
-
-// And a line plot to stroke the smooth curve we got
-// from the original control points
-$lplot = new LinePlot($newy,$newx);
-$lplot->SetColor('navy');
-
-// Add the plots to the graph and stroke
-$g->Add($lplot);
-$g->Add($splot);
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex1.php b/nightly-test-server/jpgraph/Examples/staticbandbarex1.php
deleted file mode 100644
index 6d3c7be..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex1.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$graph->AddBand(new PlotBand(HORIZONTAL,BAND_HLINE,0,10));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex2.php b/nightly-test-server/jpgraph/Examples/staticbandbarex2.php
deleted file mode 100644
index 7364ae1..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex2.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add band
-$graph->AddBand(new PlotBand(HORIZONTAL,BAND_RDIAG,0,"max","red",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex3.php b/nightly-test-server/jpgraph/Examples/staticbandbarex3.php
deleted file mode 100644
index 2832f35..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex3.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$uband=new PlotBand(HORIZONTAL,BAND_RDIAG,0,"max","green");
-$uband->ShowFrame(false);
-$lband=new PlotBand(HORIZONTAL,BAND_LDIAG,"min",0,"red");
-$lband->ShowFrame(false);
-
-$graph->AddBand($uband);
-$graph->AddBand($lband);
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex4.php b/nightly-test-server/jpgraph/Examples/staticbandbarex4.php
deleted file mode 100644
index abf5fa5..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex4.php
+++ /dev/null
@@ -1,60 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$uband=new PlotBand(HORIZONTAL,BAND_RDIAG,0,"max","green");
-$uband->ShowFrame(false);
-$uband->SetDensity(50); // 50% line density
-$lband=new PlotBand(HORIZONTAL,BAND_LDIAG,"min",0,"red");
-$lband->ShowFrame(false);
-$lband->SetDensity(20); // 20% line density
-
-$graph->AddBand($uband);
-$graph->AddBand($lband);
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex5.php b/nightly-test-server/jpgraph/Examples/staticbandbarex5.php
deleted file mode 100644
index 85d2eef..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex5.php
+++ /dev/null
@@ -1,63 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$band[0]=new PlotBand(HORIZONTAL,BAND_RDIAG,10,20,"green");
-$band[0]->ShowFrame(false);
-$band[0]->SetDensity(30);
-$band[1]=new PlotBand(HORIZONTAL,BAND_LDIAG,-20,-10,"red");
-$band[1]->ShowFrame(false);
-$band[1]->SetDensity(40);
-$band[2]=new PlotBand(HORIZONTAL,BAND_LDIAG,"min",-20,"red");
-$band[2]->ShowFrame(false);
-$band[2]->SetDensity(80);
-
-// We can also add band in an array
-$graph->AddBand($band);
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex6.php b/nightly-test-server/jpgraph/Examples/staticbandbarex6.php
deleted file mode 100644
index 8c618b3..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex6.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("Shows some possible patterns for bands");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$band[0]=new PlotBand(HORIZONTAL,BAND_RDIAG,10,20,"green");
-$band[0]->ShowFrame(false);
-$band[1]=new PlotBand(HORIZONTAL,BAND_LDIAG,-20,-10,"red");
-$band[1]->ShowFrame(false);
-$band[1]->SetDensity(20);
-$band[2]=new PlotBand(HORIZONTAL,BAND_DIAGCROSS,"min",-20,"red");
-$band[2]->ShowFrame(false);
-$band[2]->SetDensity(40);
-$band[3]=new PlotBand(VERTICAL,BAND_HLINE,0,1,"darkgray");
-$band[3]->ShowFrame(false);
-$band[3]->SetOrder(DEPTH_FRONT);
-$band[4]=new PlotBand(VERTICAL,BAND_HVCROSS,5,"max","darkgray");
-$band[4]->ShowFrame(false);
-$band[4]->SetOrder(DEPTH_FRONT);
-$band[5]=new PlotBand(HORIZONTAL,BAND_SOLID,20,"max","lightgreen");
-$band[6]=new PlotBand(HORIZONTAL,BAND_3DPLANE,-10,0,"blue");
-$band[6]->SetDensity(70);
-$graph->AddBand($band);
-
-$graph->AddLine(new PlotLine(HORIZONTAL,0,"black",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticbandbarex7.php b/nightly-test-server/jpgraph/Examples/staticbandbarex7.php
deleted file mode 100644
index 87eb20b..0000000
--- a/nightly-test-server/jpgraph/Examples/staticbandbarex7.php
+++ /dev/null
@@ -1,61 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,5,19,22,17,6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("Use of static line, 3D and solid band");
-
-// Turn off Y-grid (it's on by default)
-$graph->ygrid->Show(false);
-
-// Add 10% grace ("space") at top of Y-scale. 
-$graph->yscale->SetGrace(10);
-$graph->yscale->SetAutoMin(-20);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow("darkblue");
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show(true);
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add upper and lower band and use no frames
-$band[0]=new PlotBand(HORIZONTAL,BAND_3DPLANE,"min",0,"blue");
-$band[0]->ShowFrame(false);
-$band[0]->SetDensity(20);
-$band[1]=new PlotBand(HORIZONTAL,BAND_SOLID,0,"max","steelblue");
-$band[1]->ShowFrame(false);
-$graph->Add($band);
-
-$graph->Add(new PlotLine(HORIZONTAL,0,"black",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/staticlinebarex1.php b/nightly-test-server/jpgraph/Examples/staticlinebarex1.php
deleted file mode 100644
index 67a9829..0000000
--- a/nightly-test-server/jpgraph/Examples/staticlinebarex1.php
+++ /dev/null
@@ -1,54 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_bar.php");
-
-$datay=array(12,0,-19,-7,17,-6);
-
-// Create the graph. 
-$graph = new Graph(400,300,"auto");	
-$graph->img->SetMargin(60,30,50,40);
-$graph->SetScale("textlin");
-$graph->SetShadow();
-
-$graph->title->SetFont(FF_ARIAL,FS_BOLD,15);
-$graph->title->Set("Cash flow ");
-$graph->subtitle->Set("(Department X)");
-
-// Show both X and Y grid
-$graph->xgrid->Show(true,false);
-
-// Add 10% grace ("space") at top and botton of Y-scale. 
-$graph->yscale->SetGrace(10,10);
-
-// Turn the tick mark out from the plot area
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-$graph->yaxis->SetTickSide(SIDE_LEFT);
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-$bplot->SetFillColor("orange");
-$bplot->SetShadow();
-
-// Show the actual value for each bar on top/bottom
-$bplot->value->Show();
-$bplot->value->SetFormat("%02d kr");
-
-// Position the X-axis at the bottom of the plotare
-$graph->xaxis->SetPos("min");
-
-// .. and add the plot to the graph
-$graph->Add($bplot);
-
-// Add mark graph with static lines
-$graph->AddLine(new PlotLine(HORIZONTAL,0,"black",2));
-$graph->AddLine(new PlotLine(VERTICAL,3,"black",2));
-
-//$graph->title->Set("Test of bar gradient fill");
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-$graph->yaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-$graph->xaxis->title->SetFont(FF_ARIAL,FS_BOLD,11);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/stockex1.php b/nightly-test-server/jpgraph/Examples/stockex1.php
deleted file mode 100644
index 78dfcfb..0000000
--- a/nightly-test-server/jpgraph/Examples/stockex1.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-// Example of a stock chart
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-// Data must be in the format : open,close,min,max
-$datay = array(
-    34,42,27,45,
-    55,25,14,59,
-    15,40,12,47,
-    62,38,25,65,
-    38,49,32,64);
-
-// Setup a simple graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('lightblue');
-$graph->title->Set('Stockchart example');
-
-// Create a new stock plot
-$p1 = new StockPlot($datay);
-
-// Width of the bars (in pixels)
-$p1->SetWidth(9);
-
-// Uncomment the following line to hide the horizontal end lines
-//$p1->HideEndLines();
-
-// Add the plot to the graph and send it back to the browser
-$graph->Add($p1);
-$graph->Stroke();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/stockex2.php b/nightly-test-server/jpgraph/Examples/stockex2.php
deleted file mode 100644
index 41304b6..0000000
--- a/nightly-test-server/jpgraph/Examples/stockex2.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-// $Id$
-include ("../jpgraph.php");
-include ("../jpgraph_stock.php");
-
-
-$datay = array(
-    34,42,27,45,
-    55,25,12,59,
-    38,49,32,64,
-    34,40,29,42,
-    40,29,22,45 );
-
-// Setup basic graph
-$graph = new Graph(300,200);
-$graph->SetScale("textlin");
-$graph->SetMarginColor('white');
-$graph->SetFrame(false);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->SetBox();
-
-$graph->tabtitle->Set(' Week 34 ');
-$graph->tabtitle->SetFont(FF_ARIAL,FS_NORMAL,12);
-
-// Get week days in curent locale
-$days = $gDateLocale->GetShortDay();
-array_shift($days); // Start on monday
-$graph->xaxis->SetTickLabels($days);
-
-// Create stock plot
-$p1 = new StockPlot($datay);
-
-// Indent plot so first and last bar isn't on the edges
-$p1->SetCenter();
-
-// Add and stroke
-$graph->Add($p1);
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/stship.jpg b/nightly-test-server/jpgraph/Examples/stship.jpg
deleted file mode 100644
index 7f3bae6..0000000
--- a/nightly-test-server/jpgraph/Examples/stship.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/tabtitleex1.php b/nightly-test-server/jpgraph/Examples/tabtitleex1.php
deleted file mode 100644
index babf212..0000000
--- a/nightly-test-server/jpgraph/Examples/tabtitleex1.php
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-$datay1 = array(20,15,23,15);
-$datay2 = array(12,9,42,8);
-$datay3 = array(5,17,32,24);
-
-// Setup the graph
-$graph = new Graph(300,200);
-$graph->SetMarginColor('white');
-$graph->SetScale("textlin");
-$graph->SetFrame(false);
-$graph->SetMargin(30,50,30,30);
-
-$graph->tabtitle->Set(' Year 2003 ' );
-$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-
-
-$graph->yaxis->HideZeroLabel();
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-
-$graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
-
-// Create the first line
-$p1 = new LinePlot($datay1);
-$p1->SetColor("navy");
-$p1->SetLegend('Line 1');
-$graph->Add($p1);
-
-// Create the second line
-$p2 = new LinePlot($datay2);
-$p2->SetColor("red");
-$p2->SetLegend('Line 2');
-$graph->Add($p2);
-
-// Create the third line
-$p3 = new LinePlot($datay3);
-$p3->SetColor("orange");
-$p3->SetLegend('Line 3');
-$graph->Add($p3);
-
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetPos(0.1,0.1,'right','top');
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/testsuit.php b/nightly-test-server/jpgraph/Examples/testsuit.php
deleted file mode 100644
index 00319e7..0000000
--- a/nightly-test-server/jpgraph/Examples/testsuit.php
+++ /dev/null
@@ -1,108 +0,0 @@
-<?php
-//=======================================================================
-// File:	TESTSUIT.PHP
-// Description:	Run all the example script in current directory
-// Created: 	2002-07-11
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// License:	This code is released under QPL 1.0 
-// Copyright (C) 2001,2002 Johan Persson 
-//========================================================================
-
-//-------------------------------------------------------------------------
-//
-// Usage: testsuit.php[?type=1]    Generates all non image map scripts
-//        testsuit.php?type=2      Generates client side image map scripts 
-//       
-//-------------------------------------------------------------------------
-class TestDriver {
-    
-    var $iType;
-    var $iDir;
-
-    function TestDriver($aType=1,$aDir='') {
-	$this->iType = $aType;
-	if( $aDir == '' ) {
-	    $aDir = getcwd();
-	}
-	if( !chdir($aDir) ) {
-	    die("PANIC: Can't access directory : $aDir");
-	}
-	$this->iDir = $aDir;
-    }
-
-    function GetFiles() {
-	$d = dir($this->iDir);
-	$a = array();
-	while( $entry=$d->Read() ) {
-	    if( strstr($entry,".php") && strstr($entry,"x") && !strstr($entry,"show") && !strstr($entry,"csim") ) {
-		$a[] = $entry;
-	    }
-	}
-	$d->Close();
-	if( count($a) == 0 ) {
-	    die("PANIC: Apache/PHP does not have enough permission to read the scripts in directory: $this->iDir");	    
-	}
-	sort($a);
-	return $a;
-    }
-
-    function GetCSIMFiles() {
-	$d = dir($this->iDir);
-	$a = array();
-	while( $entry=$d->Read() ) {
-	    if( strstr($entry,".php") && strstr($entry,"csim") ) {
-		$a[] = $entry;
-	    }
-	}
-	$d->Close();
-	if( count($a) == 0 ) {
-	    die("PANIC: Apache/PHP does not have enough permission to read the CSIM scripts in directory: $this->iDir");	    
-	}
-	sort($a);
-	return $a;
-    }
-
-    
-    function Run() {
-	switch( $this->iType ) {
-	    case 1:
-		$files = $this->GetFiles();
-		break;
-	    case 2:
-		$files = $this->GetCSIMFiles();
-		break;
-	    default:
-		die('Panic: Unknown type of test');
-		break;
-	}
-	$n = count($files);
-	echo "<h2>Visual test suit for JpGraph</h2>";
-	echo "Testtype: " . ($this->iType==1 ? ' Standard images ':' Image map tests ');
-	echo "<br>Number of tests: $n<p>";
-	echo "<ol>";
-	
-	for( $i=0; $i<$n; ++$i ) {
-	    if( $this->iType ==1 ) {
-	    echo '<li><a href="show-example.php?target='.urlencode($files[$i]).'"><img src="'.$files[$i].'" border=0 align=top></a><br><strong>Filename:</strong> <i>'.basename($files[$i])."</i>\n";
-	    }
-	    else {
-		echo '<li><a href="show-example.php?target='.urlencode($files[$i]).'">'.$files[$i]."</a>\n";
-	    }
-	}
-	echo "</ol>";
-
-	echo "<p>Done.</p>";
-    }
-}
-
-$type=@$HTTP_GET_VARS['t'];
-if( empty($type) ) {
-    $type=1;
-}
-
-$driver = new TestDriver($type);
-$driver->Run();
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/text-example1.php b/nightly-test-server/jpgraph/Examples/text-example1.php
deleted file mode 100644
index a8ac965..0000000
--- a/nightly-test-server/jpgraph/Examples/text-example1.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_canvas.php");
-
-// Create the graph. 
-$graph = new CanvasGraph(350,200,"auto");	
-
-$t1 = new Text("This is a text with more text");
-$t1->Pos(0.05,0.5);
-$t1->SetOrientation("h");
-$t1->SetFont(FF_FONT1,FS_NORMAL);
-$t1->SetBox("white","black",'gray');
-$t1->SetColor("black");
-$graph->AddText($t1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/text-example2.php b/nightly-test-server/jpgraph/Examples/text-example2.php
deleted file mode 100644
index 4bfa961..0000000
--- a/nightly-test-server/jpgraph/Examples/text-example2.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_canvas.php");
-
-// Create the graph. 
-$graph = new CanvasGraph(350,200,"auto");	
-
-$t1 = new Text("a good\nas you can see right now per see\nThis is a text with\nseveral lines\n");
-$t1->Pos(0.05,100);
-$t1->SetFont(FF_FONT1,FS_NORMAL);
-$t1->SetBox("white","black",true);
-$t1->ParagraphAlign("right");
-$t1->SetColor("black");
-$graph->AddText($t1);
-
-$graph->Stroke();
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/Examples/textalignex1.php b/nightly-test-server/jpgraph/Examples/textalignex1.php
deleted file mode 100644
index 4a866c3..0000000
--- a/nightly-test-server/jpgraph/Examples/textalignex1.php
+++ /dev/null
@@ -1,77 +0,0 @@
-<?php
-// $Id$
-require_once "../jpgraph.php";
-require_once "../jpgraph_canvas.php";
-
-if( empty($_GET['a']) ) {
-    $angle=40;
-}
-else {
-    $angle=$_GET['a'];
-}
-
-$caption = "Demonstration of different anchor points for texts as specified with\nTextAlign(). The red cross marks the coordinate that was given to\nstroke each instance of the string.\n(The green box is the bounding rectangle for the text.)";
-$txt="TextAlign()";
-
-
-// Initial width and height since we need a "dummy" canvas to
-// calculate the height of the text strings
-$w=480;$h=50;
-$xm=90;$ym=80;
-
-$g = new CanvasGraph($w,$h);
-
-$aImg = $g->img;
-$aImg->SetFont(FF_ARIAL,FS_NORMAL,16);
-$tw=$aImg->GetBBoxWidth($txt,$angle);
-$th=$aImg->GetBBoxHeight($txt,$angle);
-
-$aImg->SetFont(FF_ARIAL,FS_NORMAL,11);
-$ch=$aImg->GetBBoxHeight($caption);
-
-// Calculate needed height for the image
-$h = 3*$th+2*$ym + $ch;
-$g = new CanvasGraph($w,$h);
-$aImg = $g->img;
-
-$prof = array('left','top',
-	      'center','top',
-	      'right','top',
-	      'left','center',
-	      'center','center',
-	      'right','center',
-	      'left','bottom',
-	      'center','bottom',
-	      'right','bottom');
-$n = count($prof)/2;
-
-for( $i=0,$r=0,$c=0; $i < $n; ++$i ) {
-    $x = $c*($tw+$xm)+$xm/2;
-    $y = $r*($th+$ym)+$ym/2-10;
-    $aImg->SetColor('blue');
-    $aImg->SetTextAlign($prof[$i*2],$prof[$i*2+1]);			
-    $aImg->SetFont(FF_ARIAL,FS_NORMAL,16);
-    $aImg->StrokeText($x,$y,$txt,$angle,"left",true);
-
-    $aImg->SetColor('black');
-    $aImg->SetFont(FF_FONT1,FS_BOLD);
-    $aImg->SetTextAlign('center','top');			
-    $align = sprintf('("%s","%s")',$prof[$i*2],$prof[$i*2+1]);
-    $aImg->StrokeText($c*($tw/2+$xm)+$xm/2+$tw/2,$r*($th/2+$ym)+$th+$ym/2-4,$align);
-    $c++;
-    if( $c==3 ) {
-	$c=0;$r++;
-    }
-}
-
-$aImg->SetTextAlign('center','bottom');			
-$aImg->SetFont(FF_ARIAL,FS_ITALIC,11);
-$aImg->StrokeText($w/2,$h-10,$caption,0,'left');
-
-$aImg->SetColor('navy');
-$aImg->Rectangle(0,0,$w-1,$h-1);
-
-$g->Stroke();
-
-?>
-
diff --git a/nightly-test-server/jpgraph/Examples/tiger_bkg.gif b/nightly-test-server/jpgraph/Examples/tiger_bkg.gif
deleted file mode 100644
index 3faaa17..0000000
--- a/nightly-test-server/jpgraph/Examples/tiger_bkg.gif
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/tiger_bkg.jpg b/nightly-test-server/jpgraph/Examples/tiger_bkg.jpg
deleted file mode 100644
index 43d45f3..0000000
--- a/nightly-test-server/jpgraph/Examples/tiger_bkg.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/tiger_bkg.png b/nightly-test-server/jpgraph/Examples/tiger_bkg.png
deleted file mode 100644
index 78d8e25..0000000
--- a/nightly-test-server/jpgraph/Examples/tiger_bkg.png
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/Examples/timestampex01.php b/nightly-test-server/jpgraph/Examples/timestampex01.php
deleted file mode 100644
index 62142a9..0000000
--- a/nightly-test-server/jpgraph/Examples/timestampex01.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-// Example on how to treat and format timestamp as human readable labels
-require_once("../jpgraph.php");
-require_once("../jpgraph_line.php");
-
-// Number of "fake" data points
-DEFINE('NDATAPOINTS',500);
-
-// Assume data points are sample every 10th second
-DEFINE('SAMPLERATE',10); 
-
-// Callback formatting function for the X-scale to convert timestamps
-// to hour and minutes.
-function TimeCallback($aVal) {
-    return Date('H:i', $aVal);
-}
-
-// Get start time
-$start = time();
-// Set the start time to be on the closest minute just before the "start" timestamp
-$adjstart = floor($start / 60);
-
-// Create a data set in range (20,100) and X-positions
-// We also apply a simple low pass filter on the data to make it less
-// random and a little smoother
-$data = array();
-$xdata = array();
-$data[0] = rand(20,100);
-$xdata[0] = $adjstart;
-for( $i=1; $i < NDATAPOINTS; ++$i ) {
-    $data[$i] = rand(20,100)*0.2 + $data[$i-1]*0.8;
-    $xdata[$i] = $adjstart + $i * SAMPLERATE;
-}
-
-// Assume that the data points represents data that is sampled every 10s
-// when determing the end value on the scale. We also add some extra
-// length to end on an even label tick.
-$adjend = $adjstart  + (NDATAPOINTS+10)*10;
-
-$graph = new Graph(500,250);
-$graph->SetMargin(40,20,30,50);
-
-// Now specify the X-scale explicit but let the Y-scale be auto-scaled
-$graph->SetScale("intlin",0,0,$adjstart,$adjend);
-$graph->title->Set("Example on TimeStamp Callback");
-
-// Setup the callback and adjust the angle of the labels
-$graph->xaxis->SetLabelFormatCallback('TimeCallback');
-$graph->xaxis->SetLabelAngle(90);
-
-// Set the labels every 5min (i.e. 300seconds) and minor ticks every minute
-$graph->xaxis->scale->ticks->Set(300,60);
-
-$line = new LinePlot($data,$xdata);
-$line->SetColor('lightblue');
-$graph->Add($line);
-
-$graph->Stroke();
-?>
diff --git a/nightly-test-server/jpgraph/Examples/titlecsimex01.php b/nightly-test-server/jpgraph/Examples/titlecsimex01.php
deleted file mode 100644
index 613585b..0000000
--- a/nightly-test-server/jpgraph/Examples/titlecsimex01.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-include_once ("../jpgraph.php");
-include_once ("../jpgraph_bar.php");
-
-$datay=array(12,26,9,17,31);
-
-// Create the graph. 
-$graph = new Graph(400,250);
-$graph->SetScale("textlin");
-$graph->SetMargin(50,80,20,40);
-$graph->yaxis->SetTitleMargin(30);
-$graph->yaxis->scale->SetGrace(30);
-$graph->SetShadow();
-
-
-// Create a bar pot
-$bplot = new BarPlot($datay);
-
-// Create targets for the bars image maps. One for each column
-$targ=array("bar_clsmex1.php#1","bar_clsmex1.php#2","bar_clsmex1.php#3","bar_clsmex1.php#4","bar_clsmex1.php#5","bar_clsmex1.php#6");
-$alts=array("val=%d","val=%d","val=%d","val=%d","val=%d","val=%d");
-$bplot->SetCSIMTargets($targ,$alts);
-$bplot->SetFillColor("orange");
-$bplot->SetLegend('Year 2001 %%','#kalle ','%s');
-
-// Display the values on top of each bar
-$bplot->SetShadow();
-$bplot->value->SetFormat(" $ %2.1f",70);
-$bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
-$bplot->value->SetColor("blue");
-$bplot->value->Show();
-
-$graph->Add($bplot);
-
-// Create a big "button" that has an image map action
-$txt1 = new Text("A simple text with\ntwo rows");
-$txt1->SetFont(FF_ARIAL);
-$txt1->SetBox('lightblue','black','white@1',5);
-$txt1->SetParagraphAlign('center');
-$txt1->SetPos(40,50);
-$txt1->SetCSIMTarget('#88','Text element');
-$graph->Add($txt1);
-
-// Add image map to the graph title as well (you can do this to the 
-// sub- and subsub-title as well)
-$graph->title->Set("Image maps barex1");
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-$graph->title->SetCSIMTarget('#45','Title for Bar');
-$graph->xaxis->title->Set("X-title");
-$graph->yaxis->title->Set("Y-title");
-
-// Setup the axis title image map and font style
-$graph->yaxis->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->yaxis->title->SetCSIMTarget('#55','Y-axis title');
-$graph->xaxis->title->SetFont(FF_FONT2,FS_BOLD);
-$graph->xaxis->title->SetCSIMTarget('#55','X-axis title');
-
-// Send back the HTML page which will call this script again
-// to retrieve the image.
-$graph->StrokeCSIM('titlecsimex01.php');
-
-?>
diff --git a/nightly-test-server/jpgraph/Examples/topxaxisex1.php b/nightly-test-server/jpgraph/Examples/topxaxisex1.php
deleted file mode 100644
index 956fcbf..0000000
--- a/nightly-test-server/jpgraph/Examples/topxaxisex1.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-include ("../jpgraph.php");
-include ("../jpgraph_line.php");
-
-// Some data
-$datay = array(25,29,29,39,55);
-
-$graph = new Graph(400,200,'auto');
-$graph->img->SetMargin(40,40,40,20);
-
-$graph->SetScale("linlin");
-$graph->SetShadow();
-$graph->title->Set("Top X-axis");
-
-// Start at 0
-$graph->yscale->SetAutoMin(0);
-
-// Add some air around the Y-scale
-$graph->yscale->SetGrace(100);
-
-// Use built in font
-$graph->title->SetFont(FF_FONT1,FS_BOLD);
-
-// Adjust the X-axis
-$graph->xaxis->SetPos("max");
-$graph->xaxis->SetLabelSide(SIDE_UP);
-$graph->xaxis->SetTickSide(SIDE_DOWN);
-
-// Create the line plot
-$p1 = new LinePlot($datay);
-$p1->SetColor("blue");
-
-// Specify marks for the line plots
-$p1->mark->SetType(MARK_FILLEDCIRCLE);
-$p1->mark->SetFillColor("red");
-$p1->mark->SetWidth(4);
-
-// Show values
-$p1->value->Show();
-
-// Add lineplot to graph
-$graph->Add($p1);
-
-// Output line
-$graph->Stroke();
-
-?>
-
-
diff --git a/nightly-test-server/jpgraph/Examples/worldmap1.jpg b/nightly-test-server/jpgraph/Examples/worldmap1.jpg
deleted file mode 100644
index caa7c14..0000000
--- a/nightly-test-server/jpgraph/Examples/worldmap1.jpg
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags.dat b/nightly-test-server/jpgraph/flags.dat
deleted file mode 100644
index d70d792..0000000
--- a/nightly-test-server/jpgraph/flags.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags_thumb100x100.dat b/nightly-test-server/jpgraph/flags_thumb100x100.dat
deleted file mode 100644
index f22a194..0000000
--- a/nightly-test-server/jpgraph/flags_thumb100x100.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags_thumb35x35.dat b/nightly-test-server/jpgraph/flags_thumb35x35.dat
deleted file mode 100644
index e14b9dd..0000000
--- a/nightly-test-server/jpgraph/flags_thumb35x35.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/flags_thumb60x60.dat b/nightly-test-server/jpgraph/flags_thumb60x60.dat
deleted file mode 100644
index 8ea1f6e..0000000
--- a/nightly-test-server/jpgraph/flags_thumb60x60.dat
+++ /dev/null
Binary files differ
diff --git a/nightly-test-server/jpgraph/gd_image.inc.php b/nightly-test-server/jpgraph/gd_image.inc.php
deleted file mode 100644
index 421f34d..0000000
--- a/nightly-test-server/jpgraph/gd_image.inc.php
+++ /dev/null
@@ -1,2381 +0,0 @@
-<?php
-//=======================================================================
-// File:	GD_IMAGE.INC.PHP
-// Description:	GD Instance of Image class
-// Created: 	2006-05-06
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-// TTF Font families
-DEFINE("FF_COURIER",10);
-DEFINE("FF_VERDANA",11);
-DEFINE("FF_TIMES",12);
-DEFINE("FF_COMIC",14);
-DEFINE("FF_ARIAL",15);
-DEFINE("FF_GEORGIA",16);
-DEFINE("FF_TREBUCHE",17);
-
-// Gnome Vera font
-// Available from http://www.gnome.org/fonts/
-DEFINE("FF_VERA",19);
-DEFINE("FF_VERAMONO",20);
-DEFINE("FF_VERASERIF",21);
-
-// Chinese font
-DEFINE("FF_SIMSUN",30);
-DEFINE("FF_CHINESE",31);
-DEFINE("FF_BIG5",31);
-
-// Japanese font
-DEFINE("FF_MINCHO",40);
-DEFINE("FF_PMINCHO",41);
-DEFINE("FF_GOTHIC",42);
-DEFINE("FF_PGOTHIC",43);
-
-// Limits for TTF fonts
-DEFINE('_FF_FIRST',10);
-DEFINE('_FF_LAST',43);
-
-// Older deprecated fonts 
-DEFINE("FF_BOOK",91);    // Deprecated fonts from 1.9
-DEFINE("FF_HANDWRT",92); // Deprecated fonts from 1.9
-
-// TTF Font styles
-DEFINE("FS_NORMAL",9001);
-DEFINE("FS_BOLD",9002);
-DEFINE("FS_ITALIC",9003);
-DEFINE("FS_BOLDIT",9004);
-DEFINE("FS_BOLDITALIC",9004);
-
-//Definitions for internal font, new style
-DEFINE("FF_FONT0",1);
-DEFINE("FF_FONT1",2);
-DEFINE("FF_FONT2",4);
-
-
-//===================================================
-// CLASS RGB
-// Description: Color definitions as RGB triples
-//===================================================
-class RGB {
-    var $rgb_table;
-    var $img;
-    function RGB(&$aImg) {
-	$this->img = &$aImg;
-		
-	// Conversion array between color names and RGB
-	$this->rgb_table = array(
-	    "aqua"=> array(0,255,255),		
-	    "lime"=> array(0,255,0),		
-	    "teal"=> array(0,128,128),
-	    "whitesmoke"=>array(245,245,245),
-	    "gainsboro"=>array(220,220,220),
-	    "oldlace"=>array(253,245,230),
-	    "linen"=>array(250,240,230),
-	    "antiquewhite"=>array(250,235,215),
-	    "papayawhip"=>array(255,239,213),
-	    "blanchedalmond"=>array(255,235,205),
-	    "bisque"=>array(255,228,196),
-	    "peachpuff"=>array(255,218,185),
-	    "navajowhite"=>array(255,222,173),
-	    "moccasin"=>array(255,228,181),
-	    "cornsilk"=>array(255,248,220),
-	    "ivory"=>array(255,255,240),
-	    "lemonchiffon"=>array(255,250,205),
-	    "seashell"=>array(255,245,238),
-	    "mintcream"=>array(245,255,250),
-	    "azure"=>array(240,255,255),
-	    "aliceblue"=>array(240,248,255),
-	    "lavender"=>array(230,230,250),
-	    "lavenderblush"=>array(255,240,245),
-	    "mistyrose"=>array(255,228,225),
-	    "white"=>array(255,255,255),
-	    "black"=>array(0,0,0),
-	    "darkslategray"=>array(47,79,79),
-	    "dimgray"=>array(105,105,105),
-	    "slategray"=>array(112,128,144),
-	    "lightslategray"=>array(119,136,153),
-	    "gray"=>array(190,190,190),
-	    "lightgray"=>array(211,211,211),
-	    "midnightblue"=>array(25,25,112),
-	    "navy"=>array(0,0,128),
-	    "cornflowerblue"=>array(100,149,237),
-	    "darkslateblue"=>array(72,61,139),
-	    "slateblue"=>array(106,90,205),
-	    "mediumslateblue"=>array(123,104,238),
-	    "lightslateblue"=>array(132,112,255),
-	    "mediumblue"=>array(0,0,205),
-	    "royalblue"=>array(65,105,225),
-	    "blue"=>array(0,0,255),
-	    "dodgerblue"=>array(30,144,255),
-	    "deepskyblue"=>array(0,191,255),
-	    "skyblue"=>array(135,206,235),
-	    "lightskyblue"=>array(135,206,250),
-	    "steelblue"=>array(70,130,180),
-	    "lightred"=>array(211,167,168),
-	    "lightsteelblue"=>array(176,196,222),
-	    "lightblue"=>array(173,216,230),
-	    "powderblue"=>array(176,224,230),
-	    "paleturquoise"=>array(175,238,238),
-	    "darkturquoise"=>array(0,206,209),
-	    "mediumturquoise"=>array(72,209,204),
-	    "turquoise"=>array(64,224,208),
-	    "cyan"=>array(0,255,255),
-	    "lightcyan"=>array(224,255,255),
-	    "cadetblue"=>array(95,158,160),
-	    "mediumaquamarine"=>array(102,205,170),
-	    "aquamarine"=>array(127,255,212),
-	    "darkgreen"=>array(0,100,0),
-	    "darkolivegreen"=>array(85,107,47),
-	    "darkseagreen"=>array(143,188,143),
-	    "seagreen"=>array(46,139,87),
-	    "mediumseagreen"=>array(60,179,113),
-	    "lightseagreen"=>array(32,178,170),
-	    "palegreen"=>array(152,251,152),
-	    "springgreen"=>array(0,255,127),
-	    "lawngreen"=>array(124,252,0),
-	    "green"=>array(0,255,0),
-	    "chartreuse"=>array(127,255,0),
-	    "mediumspringgreen"=>array(0,250,154),
-	    "greenyellow"=>array(173,255,47),
-	    "limegreen"=>array(50,205,50),
-	    "yellowgreen"=>array(154,205,50),
-	    "forestgreen"=>array(34,139,34),
-	    "olivedrab"=>array(107,142,35),
-	    "darkkhaki"=>array(189,183,107),
-	    "khaki"=>array(240,230,140),
-	    "palegoldenrod"=>array(238,232,170),
-	    "lightgoldenrodyellow"=>array(250,250,210),
-	    "lightyellow"=>array(255,255,200),
-	    "yellow"=>array(255,255,0),
-	    "gold"=>array(255,215,0),
-	    "lightgoldenrod"=>array(238,221,130),
-	    "goldenrod"=>array(218,165,32),
-	    "darkgoldenrod"=>array(184,134,11),
-	    "rosybrown"=>array(188,143,143),
-	    "indianred"=>array(205,92,92),
-	    "saddlebrown"=>array(139,69,19),
-	    "sienna"=>array(160,82,45),
-	    "peru"=>array(205,133,63),
-	    "burlywood"=>array(222,184,135),
-	    "beige"=>array(245,245,220),
-	    "wheat"=>array(245,222,179),
-	    "sandybrown"=>array(244,164,96),
-	    "tan"=>array(210,180,140),
-	    "chocolate"=>array(210,105,30),
-	    "firebrick"=>array(178,34,34),
-	    "brown"=>array(165,42,42),
-	    "darksalmon"=>array(233,150,122),
-	    "salmon"=>array(250,128,114),
-	    "lightsalmon"=>array(255,160,122),
-	    "orange"=>array(255,165,0),
-	    "darkorange"=>array(255,140,0),
-	    "coral"=>array(255,127,80),
-	    "lightcoral"=>array(240,128,128),
-	    "tomato"=>array(255,99,71),
-	    "orangered"=>array(255,69,0),
-	    "red"=>array(255,0,0),
-	    "hotpink"=>array(255,105,180),
-	    "deeppink"=>array(255,20,147),
-	    "pink"=>array(255,192,203),
-	    "lightpink"=>array(255,182,193),
-	    "palevioletred"=>array(219,112,147),
-	    "maroon"=>array(176,48,96),
-	    "mediumvioletred"=>array(199,21,133),
-	    "violetred"=>array(208,32,144),
-	    "magenta"=>array(255,0,255),
-	    "violet"=>array(238,130,238),
-	    "plum"=>array(221,160,221),
-	    "orchid"=>array(218,112,214),
-	    "mediumorchid"=>array(186,85,211),
-	    "darkorchid"=>array(153,50,204),
-	    "darkviolet"=>array(148,0,211),
-	    "blueviolet"=>array(138,43,226),
-	    "purple"=>array(160,32,240),
-	    "mediumpurple"=>array(147,112,219),
-	    "thistle"=>array(216,191,216),
-	    "snow1"=>array(255,250,250),
-	    "snow2"=>array(238,233,233),
-	    "snow3"=>array(205,201,201),
-	    "snow4"=>array(139,137,137),
-	    "seashell1"=>array(255,245,238),
-	    "seashell2"=>array(238,229,222),
-	    "seashell3"=>array(205,197,191),
-	    "seashell4"=>array(139,134,130),
-	    "AntiqueWhite1"=>array(255,239,219),
-	    "AntiqueWhite2"=>array(238,223,204),
-	    "AntiqueWhite3"=>array(205,192,176),
-	    "AntiqueWhite4"=>array(139,131,120),
-	    "bisque1"=>array(255,228,196),
-	    "bisque2"=>array(238,213,183),
-	    "bisque3"=>array(205,183,158),
-	    "bisque4"=>array(139,125,107),
-	    "peachPuff1"=>array(255,218,185),
-	    "peachpuff2"=>array(238,203,173),
-	    "peachpuff3"=>array(205,175,149),
-	    "peachpuff4"=>array(139,119,101),
-	    "navajowhite1"=>array(255,222,173),
-	    "navajowhite2"=>array(238,207,161),
-	    "navajowhite3"=>array(205,179,139),
-	    "navajowhite4"=>array(139,121,94),
-	    "lemonchiffon1"=>array(255,250,205),
-	    "lemonchiffon2"=>array(238,233,191),
-	    "lemonchiffon3"=>array(205,201,165),
-	    "lemonchiffon4"=>array(139,137,112),
-	    "ivory1"=>array(255,255,240),
-	    "ivory2"=>array(238,238,224),
-	    "ivory3"=>array(205,205,193),
-	    "ivory4"=>array(139,139,131),
-	    "honeydew"=>array(193,205,193),
-	    "lavenderblush1"=>array(255,240,245),
-	    "lavenderblush2"=>array(238,224,229),
-	    "lavenderblush3"=>array(205,193,197),
-	    "lavenderblush4"=>array(139,131,134),
-	    "mistyrose1"=>array(255,228,225),
-	    "mistyrose2"=>array(238,213,210),
-	    "mistyrose3"=>array(205,183,181),
-	    "mistyrose4"=>array(139,125,123),
-	    "azure1"=>array(240,255,255),
-	    "azure2"=>array(224,238,238),
-	    "azure3"=>array(193,205,205),
-	    "azure4"=>array(131,139,139),
-	    "slateblue1"=>array(131,111,255),
-	    "slateblue2"=>array(122,103,238),
-	    "slateblue3"=>array(105,89,205),
-	    "slateblue4"=>array(71,60,139),
-	    "royalblue1"=>array(72,118,255),
-	    "royalblue2"=>array(67,110,238),
-	    "royalblue3"=>array(58,95,205),
-	    "royalblue4"=>array(39,64,139),
-	    "dodgerblue1"=>array(30,144,255),
-	    "dodgerblue2"=>array(28,134,238),
-	    "dodgerblue3"=>array(24,116,205),
-	    "dodgerblue4"=>array(16,78,139),
-	    "steelblue1"=>array(99,184,255),
-	    "steelblue2"=>array(92,172,238),
-	    "steelblue3"=>array(79,148,205),
-	    "steelblue4"=>array(54,100,139),
-	    "deepskyblue1"=>array(0,191,255),
-	    "deepskyblue2"=>array(0,178,238),
-	    "deepskyblue3"=>array(0,154,205),
-	    "deepskyblue4"=>array(0,104,139),
-	    "skyblue1"=>array(135,206,255),
-	    "skyblue2"=>array(126,192,238),
-	    "skyblue3"=>array(108,166,205),
-	    "skyblue4"=>array(74,112,139),
-	    "lightskyblue1"=>array(176,226,255),
-	    "lightskyblue2"=>array(164,211,238),
-	    "lightskyblue3"=>array(141,182,205),
-	    "lightskyblue4"=>array(96,123,139),
-	    "slategray1"=>array(198,226,255),
-	    "slategray2"=>array(185,211,238),
-	    "slategray3"=>array(159,182,205),
-	    "slategray4"=>array(108,123,139),
-	    "lightsteelblue1"=>array(202,225,255),
-	    "lightsteelblue2"=>array(188,210,238),
-	    "lightsteelblue3"=>array(162,181,205),
-	    "lightsteelblue4"=>array(110,123,139),
-	    "lightblue1"=>array(191,239,255),
-	    "lightblue2"=>array(178,223,238),
-	    "lightblue3"=>array(154,192,205),
-	    "lightblue4"=>array(104,131,139),
-	    "lightcyan1"=>array(224,255,255),
-	    "lightcyan2"=>array(209,238,238),
-	    "lightcyan3"=>array(180,205,205),
-	    "lightcyan4"=>array(122,139,139),
-	    "paleturquoise1"=>array(187,255,255),
-	    "paleturquoise2"=>array(174,238,238),
-	    "paleturquoise3"=>array(150,205,205),
-	    "paleturquoise4"=>array(102,139,139),
-	    "cadetblue1"=>array(152,245,255),
-	    "cadetblue2"=>array(142,229,238),
-	    "cadetblue3"=>array(122,197,205),
-	    "cadetblue4"=>array(83,134,139),
-	    "turquoise1"=>array(0,245,255),
-	    "turquoise2"=>array(0,229,238),
-	    "turquoise3"=>array(0,197,205),
-	    "turquoise4"=>array(0,134,139),
-	    "cyan1"=>array(0,255,255),
-	    "cyan2"=>array(0,238,238),
-	    "cyan3"=>array(0,205,205),
-	    "cyan4"=>array(0,139,139),
-	    "darkslategray1"=>array(151,255,255),
-	    "darkslategray2"=>array(141,238,238),
-	    "darkslategray3"=>array(121,205,205),
-	    "darkslategray4"=>array(82,139,139),
-	    "aquamarine1"=>array(127,255,212),
-	    "aquamarine2"=>array(118,238,198),
-	    "aquamarine3"=>array(102,205,170),
-	    "aquamarine4"=>array(69,139,116),
-	    "darkseagreen1"=>array(193,255,193),
-	    "darkseagreen2"=>array(180,238,180),
-	    "darkseagreen3"=>array(155,205,155),
-	    "darkseagreen4"=>array(105,139,105),
-	    "seagreen1"=>array(84,255,159),
-	    "seagreen2"=>array(78,238,148),
-	    "seagreen3"=>array(67,205,128),
-	    "seagreen4"=>array(46,139,87),
-	    "palegreen1"=>array(154,255,154),
-	    "palegreen2"=>array(144,238,144),
-	    "palegreen3"=>array(124,205,124),
-	    "palegreen4"=>array(84,139,84),
-	    "springgreen1"=>array(0,255,127),
-	    "springgreen2"=>array(0,238,118),
-	    "springgreen3"=>array(0,205,102),
-	    "springgreen4"=>array(0,139,69),
-	    "chartreuse1"=>array(127,255,0),
-	    "chartreuse2"=>array(118,238,0),
-	    "chartreuse3"=>array(102,205,0),
-	    "chartreuse4"=>array(69,139,0),
-	    "olivedrab1"=>array(192,255,62),
-	    "olivedrab2"=>array(179,238,58),
-	    "olivedrab3"=>array(154,205,50),
-	    "olivedrab4"=>array(105,139,34),
-	    "darkolivegreen1"=>array(202,255,112),
-	    "darkolivegreen2"=>array(188,238,104),
-	    "darkolivegreen3"=>array(162,205,90),
-	    "darkolivegreen4"=>array(110,139,61),
-	    "khaki1"=>array(255,246,143),
-	    "khaki2"=>array(238,230,133),
-	    "khaki3"=>array(205,198,115),
-	    "khaki4"=>array(139,134,78),
-	    "lightgoldenrod1"=>array(255,236,139),
-	    "lightgoldenrod2"=>array(238,220,130),
-	    "lightgoldenrod3"=>array(205,190,112),
-	    "lightgoldenrod4"=>array(139,129,76),
-	    "yellow1"=>array(255,255,0),
-	    "yellow2"=>array(238,238,0),
-	    "yellow3"=>array(205,205,0),
-	    "yellow4"=>array(139,139,0),
-	    "gold1"=>array(255,215,0),
-	    "gold2"=>array(238,201,0),
-	    "gold3"=>array(205,173,0),
-	    "gold4"=>array(139,117,0),
-	    "goldenrod1"=>array(255,193,37),
-	    "goldenrod2"=>array(238,180,34),
-	    "goldenrod3"=>array(205,155,29),
-	    "goldenrod4"=>array(139,105,20),
-	    "darkgoldenrod1"=>array(255,185,15),
-	    "darkgoldenrod2"=>array(238,173,14),
-	    "darkgoldenrod3"=>array(205,149,12),
-	    "darkgoldenrod4"=>array(139,101,8),
-	    "rosybrown1"=>array(255,193,193),
-	    "rosybrown2"=>array(238,180,180),
-	    "rosybrown3"=>array(205,155,155),
-	    "rosybrown4"=>array(139,105,105),
-	    "indianred1"=>array(255,106,106),
-	    "indianred2"=>array(238,99,99),
-	    "indianred3"=>array(205,85,85),
-	    "indianred4"=>array(139,58,58),
-	    "sienna1"=>array(255,130,71),
-	    "sienna2"=>array(238,121,66),
-	    "sienna3"=>array(205,104,57),
-	    "sienna4"=>array(139,71,38),
-	    "burlywood1"=>array(255,211,155),
-	    "burlywood2"=>array(238,197,145),
-	    "burlywood3"=>array(205,170,125),
-	    "burlywood4"=>array(139,115,85),
-	    "wheat1"=>array(255,231,186),
-	    "wheat2"=>array(238,216,174),
-	    "wheat3"=>array(205,186,150),
-	    "wheat4"=>array(139,126,102),
-	    "tan1"=>array(255,165,79),
-	    "tan2"=>array(238,154,73),
-	    "tan3"=>array(205,133,63),
-	    "tan4"=>array(139,90,43),
-	    "chocolate1"=>array(255,127,36),
-	    "chocolate2"=>array(238,118,33),
-	    "chocolate3"=>array(205,102,29),
-	    "chocolate4"=>array(139,69,19),
-	    "firebrick1"=>array(255,48,48),
-	    "firebrick2"=>array(238,44,44),
-	    "firebrick3"=>array(205,38,38),
-	    "firebrick4"=>array(139,26,26),
-	    "brown1"=>array(255,64,64),
-	    "brown2"=>array(238,59,59),
-	    "brown3"=>array(205,51,51),
-	    "brown4"=>array(139,35,35),
-	    "salmon1"=>array(255,140,105),
-	    "salmon2"=>array(238,130,98),
-	    "salmon3"=>array(205,112,84),
-	    "salmon4"=>array(139,76,57),
-	    "lightsalmon1"=>array(255,160,122),
-	    "lightsalmon2"=>array(238,149,114),
-	    "lightsalmon3"=>array(205,129,98),
-	    "lightsalmon4"=>array(139,87,66),
-	    "orange1"=>array(255,165,0),
-	    "orange2"=>array(238,154,0),
-	    "orange3"=>array(205,133,0),
-	    "orange4"=>array(139,90,0),
-	    "darkorange1"=>array(255,127,0),
-	    "darkorange2"=>array(238,118,0),
-	    "darkorange3"=>array(205,102,0),
-	    "darkorange4"=>array(139,69,0),
-	    "coral1"=>array(255,114,86),
-	    "coral2"=>array(238,106,80),
-	    "coral3"=>array(205,91,69),
-	    "coral4"=>array(139,62,47),
-	    "tomato1"=>array(255,99,71),
-	    "tomato2"=>array(238,92,66),
-	    "tomato3"=>array(205,79,57),
-	    "tomato4"=>array(139,54,38),
-	    "orangered1"=>array(255,69,0),
-	    "orangered2"=>array(238,64,0),
-	    "orangered3"=>array(205,55,0),
-	    "orangered4"=>array(139,37,0),
-	    "deeppink1"=>array(255,20,147),
-	    "deeppink2"=>array(238,18,137),
-	    "deeppink3"=>array(205,16,118),
-	    "deeppink4"=>array(139,10,80),
-	    "hotpink1"=>array(255,110,180),
-	    "hotpink2"=>array(238,106,167),
-	    "hotpink3"=>array(205,96,144),
-	    "hotpink4"=>array(139,58,98),
-	    "pink1"=>array(255,181,197),
-	    "pink2"=>array(238,169,184),
-	    "pink3"=>array(205,145,158),
-	    "pink4"=>array(139,99,108),
-	    "lightpink1"=>array(255,174,185),
-	    "lightpink2"=>array(238,162,173),
-	    "lightpink3"=>array(205,140,149),
-	    "lightpink4"=>array(139,95,101),
-	    "palevioletred1"=>array(255,130,171),
-	    "palevioletred2"=>array(238,121,159),
-	    "palevioletred3"=>array(205,104,137),
-	    "palevioletred4"=>array(139,71,93),
-	    "maroon1"=>array(255,52,179),
-	    "maroon2"=>array(238,48,167),
-	    "maroon3"=>array(205,41,144),
-	    "maroon4"=>array(139,28,98),
-	    "violetred1"=>array(255,62,150),
-	    "violetred2"=>array(238,58,140),
-	    "violetred3"=>array(205,50,120),
-	    "violetred4"=>array(139,34,82),
-	    "magenta1"=>array(255,0,255),
-	    "magenta2"=>array(238,0,238),
-	    "magenta3"=>array(205,0,205),
-	    "magenta4"=>array(139,0,139),
-	    "mediumred"=>array(140,34,34),         
-	    "orchid1"=>array(255,131,250),
-	    "orchid2"=>array(238,122,233),
-	    "orchid3"=>array(205,105,201),
-	    "orchid4"=>array(139,71,137),
-	    "plum1"=>array(255,187,255),
-	    "plum2"=>array(238,174,238),
-	    "plum3"=>array(205,150,205),
-	    "plum4"=>array(139,102,139),
-	    "mediumorchid1"=>array(224,102,255),
-	    "mediumorchid2"=>array(209,95,238),
-	    "mediumorchid3"=>array(180,82,205),
-	    "mediumorchid4"=>array(122,55,139),
-	    "darkorchid1"=>array(191,62,255),
-	    "darkorchid2"=>array(178,58,238),
-	    "darkorchid3"=>array(154,50,205),
-	    "darkorchid4"=>array(104,34,139),
-	    "purple1"=>array(155,48,255),
-	    "purple2"=>array(145,44,238),
-	    "purple3"=>array(125,38,205),
-	    "purple4"=>array(85,26,139),
-	    "mediumpurple1"=>array(171,130,255),
-	    "mediumpurple2"=>array(159,121,238),
-	    "mediumpurple3"=>array(137,104,205),
-	    "mediumpurple4"=>array(93,71,139),
-	    "thistle1"=>array(255,225,255),
-	    "thistle2"=>array(238,210,238),
-	    "thistle3"=>array(205,181,205),
-	    "thistle4"=>array(139,123,139),
-	    "gray1"=>array(10,10,10),
-	    "gray2"=>array(40,40,30),
-	    "gray3"=>array(70,70,70),
-	    "gray4"=>array(100,100,100),
-	    "gray5"=>array(130,130,130),
-	    "gray6"=>array(160,160,160),
-	    "gray7"=>array(190,190,190),
-	    "gray8"=>array(210,210,210),
-	    "gray9"=>array(240,240,240),
-	    "darkgray"=>array(100,100,100),
-	    "darkblue"=>array(0,0,139),
-	    "darkcyan"=>array(0,139,139),
-	    "darkmagenta"=>array(139,0,139),
-	    "darkred"=>array(139,0,0),
-	    "silver"=>array(192, 192, 192),
-	    "eggplant"=>array(144,176,168),
-	    "lightgreen"=>array(144,238,144));		
-    }
-//----------------
-// PUBLIC METHODS
-    // Colors can be specified as either
-    // 1. #xxxxxx			HTML style
-    // 2. "colorname" 	as a named color
-    // 3. array(r,g,b)	RGB triple
-    // This function translates this to a native RGB format and returns an 
-    // RGB triple.
-    function Color($aColor) {
-	if (is_string($aColor)) {
-	    // Strip of any alpha factor
-	    $pos = strpos($aColor,'@');
-	    if( $pos === false ) {
-		$alpha = 0;
-	    }
-	    else {
-		$pos2 = strpos($aColor,':');
-		if( $pos2===false ) 
-		    $pos2 = $pos-1; // Sentinel
-		if( $pos > $pos2 ) {
-		    $alpha = substr($aColor,$pos+1);
-		    $aColor = substr($aColor,0,$pos);
-		}
-		else {
-		    $alpha = substr($aColor,$pos+1,$pos2-$pos-1);
-		    $aColor = substr($aColor,0,$pos).substr($aColor,$pos2);
-		}
-	    }
-
-	    // Extract potential adjustment figure at end of color
-	    // specification
-	    $pos = strpos($aColor,":");
-	    if( $pos === false ) {
-		$adj = 1.0;
-	    }
-	    else {
-		$adj = 0.0 + substr($aColor,$pos+1);
-		$aColor = substr($aColor,0,$pos);
-	    }
-	    if( $adj < 0 )
-		JpGraphError::RaiseL(25077);//('Adjustment factor for color must be > 0');
-
-	    if (substr($aColor, 0, 1) == "#") {
-		$r = hexdec(substr($aColor, 1, 2));
-		$g = hexdec(substr($aColor, 3, 2));
-		$b = hexdec(substr($aColor, 5, 2));
-	    } else {
-      		if(!isset($this->rgb_table[$aColor]) )
-		    JpGraphError::RaiseL(25078,$aColor);//(" Unknown color: $aColor");
-		$tmp=$this->rgb_table[$aColor];
-		$r = $tmp[0];
-		$g = $tmp[1];
-		$b = $tmp[2];
-	    }
-	    // Scale adj so that an adj=2 always
-	    // makes the color 100% white (i.e. 255,255,255. 
-	    // and adj=1 neutral and adj=0 black.
-	    if( $adj > 1 ) {
-		$m = ($adj-1.0)*(255-min(255,min($r,min($g,$b))));
-		return array(min(255,$r+$m), min(255,$g+$m), min(255,$b+$m),$alpha);
-	    }
-	    elseif( $adj < 1 ) {
-		$m = ($adj-1.0)*max(255,max($r,max($g,$b)));
-		return array(max(0,$r+$m), max(0,$g+$m), max(0,$b+$m),$alpha);
-	    }
-	    else {
-		return array($r,$g,$b,$alpha);
-	    }
-
-	} elseif( is_array($aColor) ) {
-	    if( count($aColor)==3 ) {
-		$aColor[3]=0;
-		return $aColor;
-	    }
-	    else
-		return $aColor;
-	}
-	else
-	    JpGraphError::RaiseL(25079,$aColor,count($aColor));//(" Unknown color specification: $aColor , size=".count($aColor));
-    }
-	
-    // Compare two colors
-    // return true if equal
-    function Equal($aCol1,$aCol2) {
-	$c1 = $this->Color($aCol1);
-	$c2 = $this->Color($aCol2);
-	if( $c1[0]==$c2[0] && $c1[1]==$c2[1] && $c1[2]==$c2[2] )
-	    return true;
-	else
-	    return false;
-    }
-	
-    // Allocate a new color in the current image
-    // Return new color index, -1 if no more colors could be allocated
-    function Allocate($aColor,$aAlpha=0.0) {
-	list ($r, $g, $b, $a) = $this->color($aColor);
-	// If alpha is specified in the color string then this
-	// takes precedence over the second argument
-	if( $a > 0 )
-	    $aAlpha = $a;
-	if( $GLOBALS['gd2'] ) {
-	    if( $aAlpha < 0 || $aAlpha > 1 ) {
-		JpGraphError::RaiseL(25080);//('Alpha parameter for color must be between 0.0 and 1.0');
-	    }
-	    return imagecolorresolvealpha($this->img, $r, $g, $b, round($aAlpha * 127));
-	} else {
-	    $index = imagecolorexact($this->img, $r, $g, $b);
-	    if ($index == -1) {
-      		$index = imagecolorallocate($this->img, $r, $g, $b);
-      		if( USE_APPROX_COLORS && $index == -1 )
-		    $index = imagecolorresolve($this->img, $r, $g, $b);
-	    } 
-	    return $index;
-	}
-    }
-} // Class
-
-	
-//===================================================
-// CLASS Image
-// Description: Wrapper class with some goodies to form the
-// Interface to low level image drawing routines.
-//===================================================
-class Image {
-    var $img_format;
-    var $expired=true;
-    var $img=null;
-    var $left_margin=30,$right_margin=20,$top_margin=20,$bottom_margin=30;
-    var $plotwidth=0,$plotheight=0;
-    var $rgb=null;
-    var $current_color,$current_color_name;
-    var $lastx=0, $lasty=0;
-    var $width=0, $height=0;
-    var $line_weight=1;
-    var $line_style=1;	// Default line style is solid
-    var $obs_list=array();
-    var $font_size=12,$font_family=FF_FONT1, $font_style=FS_NORMAL;
-    var $font_file='';
-    var $text_halign="left",$text_valign="bottom";
-    var $ttf=null;
-    var $use_anti_aliasing=false;
-    var $quality=null;
-    var $colorstack=array(),$colorstackidx=0;
-    var $canvascolor = 'white' ;
-    var $langconv = null ;
-
-    //---------------
-    // CONSTRUCTOR
-    function Image($aWidth,$aHeight,$aFormat=DEFAULT_GFORMAT) {
-	$this->CreateImgCanvas($aWidth,$aHeight);
-	$this->SetAutoMargin();		
-
-	if( !$this->SetImgFormat($aFormat) ) {
-	    JpGraphError::RaiseL(25081,$aFormat);//("JpGraph: Selected graphic format is either not supported or unknown [$aFormat]");
-	}
-	$this->ttf = new TTF();
-	$this->langconv = new LanguageConv();
-    }
-
-    // Should we use anti-aliasing. Note: This really slows down graphics!
-    function SetAntiAliasing() {
-	$this->use_anti_aliasing=true;
-    }
-
-    function CreateRawCanvas($aWidth=0,$aHeight=0) {
-	if( $aWidth <= 1 || $aHeight <= 1 ) {
-	    JpGraphError::RaiseL(25082,$aWidth,$aHeight);//("Illegal sizes specified for width or height when creating an image, (width=$aWidth, height=$aHeight)");
-	}
-	if( @$GLOBALS['gd2']==true && USE_TRUECOLOR ) {
-	    $this->img = @imagecreatetruecolor($aWidth, $aHeight);
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(25126);
-		//die("Can't create truecolor image. Check that you really have GD2 library installed.");
-	    }
-	    $this->SetAlphaBlending();
-	} else {
-	    $this->img = @imagecreate($aWidth, $aHeight);	
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(25126);
-		//die("<b>JpGraph Error:</b> Can't create image. Check that you really have the GD library installed.");
-	    }
-	}
-	if( $this->rgb != null ) 
-	    $this->rgb->img = $this->img ;
-	else
-	    $this->rgb = new RGB($this->img);				
-    }
-
-    function CloneCanvasH() {
-	$oldimage = $this->img;
-	$this->CreateRawCanvas($this->width,$this->height);
-	imagecopy($this->img,$oldimage,0,0,0,0,$this->width,$this->height);
-	return $oldimage;
-    }
-    
-    function CreateImgCanvas($aWidth=0,$aHeight=0) {
-
-	$old = array($this->img,$this->width,$this->height);
-	
-	$aWidth = round($aWidth);
-	$aHeight = round($aHeight);
-
-	$this->width=$aWidth;
-	$this->height=$aHeight;		
-
-	
-	if( $aWidth==0 || $aHeight==0 ) {
-	    // We will set the final size later. 
-	    // Note: The size must be specified before any other
-	    // img routines that stroke anything are called.
-	    $this->img = null;
-	    $this->rgb = null;
-	    return $old;
-	}
-	
-	$this->CreateRawCanvas($aWidth,$aHeight);
-		
-	// Set canvas color (will also be the background color for a 
-	// a pallett image
-	$this->SetColor($this->canvascolor);	
-	$this->FilledRectangle(0,0,$aWidth,$aHeight);
-
-	return $old ;
-    }
-
-    function CopyCanvasH($aToHdl,$aFromHdl,$aToX,$aToY,$aFromX,$aFromY,$aWidth,$aHeight,$aw=-1,$ah=-1) {
-	if( $aw === -1 ) {
-	    $aw = $aWidth;
-	    $ah = $aHeight;
-	    $f = 'imagecopyresized';
-	}
-	else {
-	    $f = $GLOBALS['copyfunc'] ;
-	}
-	$f($aToHdl,$aFromHdl,
-	   $aToX,$aToY,$aFromX,$aFromY, $aWidth,$aHeight,$aw,$ah);
-    }
-
-    function Copy($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1) {
-	$this->CopyCanvasH($this->img,$fromImg,$toX,$toY,$fromX,$fromY,
-			   $toWidth,$toHeight,$fromWidth,$fromHeight);
-    }
-
-    function CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1,$aMix=100) {
-	if( $aMix == 100 ) {
-	    $this->CopyCanvasH($this->img,$fromImg,
-			       $toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight);
-	}
-	else {
-	    if( ($fromWidth  != -1 && ($fromWidth != $toWidth))  ||
-		($fromHeight != -1 && ($fromHeight != $fromHeight)) ) {
-		// Create a new canvas that will hold the re-scaled original from image
-		if( $toWidth <= 1 || $toHeight <= 1 ) {
-		    JpGraphError::RaiseL(25083);//('Illegal image size when copying image. Size for copied to image is 1 pixel or less.');
-		}
-		if( @$GLOBALS['gd2']==true && USE_TRUECOLOR ) {
-		    $tmpimg = @imagecreatetruecolor($toWidth, $toHeight);
-		} else {
-		    $tmpimg = @imagecreate($toWidth, $toHeight);	
-		}	    
-		if( $tmpimg < 1 ) {
-		    JpGraphError::RaiseL(25084);//('Failed to create temporary GD canvas. Out of memory ?');
-		}
-		$this->CopyCanvasH($tmpimg,$fromImg,0,0,0,0,
-				   $toWidth,$toHeight,$fromWidth,$fromHeight);
-		$fromImg = $tmpimg;
-	    }
-	    imagecopymerge($this->img,$fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$aMix);
-	}
-    }
-
-    function GetWidth($aImg=null) {
-	if( $aImg === null ) 
-	    $aImg = $this->img;
-	return imagesx($aImg);
-    }
-
-    function GetHeight($aImg=null) {
-	if( $aImg === null ) 
-	    $aImg = $this->img;
-	return imagesy($aImg);
-    }
-    
-    function CreateFromString($aStr) {
-	$img = imagecreatefromstring($aStr);
-	if( $img === false ) {
-	    JpGraphError::RaiseL(25085);//('An image can not be created from the supplied string. It is either in a format not supported or the string is representing an corrupt image.');
-	}
-	return $img;
-    }
-
-    function SetCanvasH($aHdl) {
-	$this->img = $aHdl;
-	$this->rgb->img = $aHdl;
-    }
-
-    function SetCanvasColor($aColor) {
-	$this->canvascolor = $aColor ;
-    }
-
-    function SetAlphaBlending($aFlg=true) {
-	if( $GLOBALS['gd2'] )
-	    ImageAlphaBlending($this->img,$aFlg);
-	else 
-	    JpGraphError::RaiseL(25086);//('You only seem to have GD 1.x installed. To enable Alphablending requires GD 2.x or higher. Please install GD or make sure the constant USE_GD2 is specified correctly to reflect your installation. By default it tries to autodetect what version of GD you have installed. On some very rare occasions it may falsely detect GD2 where only GD1 is installed. You must then set USE_GD2 to false.');
-    }
-
-	
-    function SetAutoMargin() {	
-	GLOBAL $gJpgBrandTiming;
-	$min_bm=10;
-	/*
-	if( $gJpgBrandTiming )
-	    $min_bm=15;		
-	*/
-	$lm = min(40,$this->width/7);
-	$rm = min(20,$this->width/10);
-	$tm = max(20,$this->height/7);
-	$bm = max($min_bm,$this->height/7);
-	$this->SetMargin($lm,$rm,$tm,$bm);		
-    }
-
-				
-    //---------------
-    // PUBLIC METHODS	
-	
-    function SetFont($family,$style=FS_NORMAL,$size=10) {
-	$this->font_family=$family;
-	$this->font_style=$style;
-	$this->font_size=$size;
-	$this->font_file='';
-	if( ($this->font_family==FF_FONT1 || $this->font_family==FF_FONT2) && $this->font_style==FS_BOLD ){
-	    ++$this->font_family;
-	}
-	if( $this->font_family > FF_FONT2+1 ) { // A TTF font so get the font file
-
-	    // Check that this PHP has support for TTF fonts
-	    if( !function_exists('imagettfbbox') ) {
-		JpGraphError::RaiseL(25087);//('This PHP build has not been configured with TTF support. You need to recompile your PHP installation with FreeType support.');
-	    }
-	    $this->font_file = $this->ttf->File($this->font_family,$this->font_style);
-	}
-    }
-
-    // Get the specific height for a text string
-    function GetTextHeight($txt="",$angle=0) {
-	$tmp = split("\n",$txt);
-	$n = count($tmp);
-	$m=0;
-	for($i=0; $i< $n; ++$i)
-	    $m = max($m,strlen($tmp[$i]));
-
-	if( $this->font_family <= FF_FONT2+1 ) {
-	    if( $angle==0 ) {
-		$h = imagefontheight($this->font_family);
-		if( $h === false ) {
-		    JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');
-		}
-
-		return $n*$h;
-	    }
-	    else {
-		$w = @imagefontwidth($this->font_family);
-		if( $w === false ) {
-		    JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');
-		}
-
-		return $m*$w;
-	    }
-	}
-	else {
-	    $bbox = $this->GetTTFBBox($txt,$angle);
-	    return $bbox[1]-$bbox[5];
-	}
-    }
-	
-    // Estimate font height
-    function GetFontHeight($angle=0) {
-	$txt = "XOMg";
-	return $this->GetTextHeight($txt,$angle);
-    }
-	
-    // Approximate font width with width of letter "O"
-    function GetFontWidth($angle=0) {
-	$txt = 'O';
-	return $this->GetTextWidth($txt,$angle);
-    }
-	
-    // Get actual width of text in absolute pixels
-    function GetTextWidth($txt,$angle=0) {
-
-	$tmp = split("\n",$txt);
-	$n = count($tmp);
-	if( $this->font_family <= FF_FONT2+1 ) {
-
-	    $m=0;
-	    for($i=0; $i < $n; ++$i) {
-		$l=strlen($tmp[$i]);
-		if( $l > $m ) {
-		    $m = $l;
-		}
-	    }
-
-	    if( $angle==0 ) {
-		$w = @imagefontwidth($this->font_family);
-		if( $w === false ) {
-		    JpGraphError::RaiseL(25088);//('You have a misconfigured GD font support. The call to imagefontwidth() fails.');
-		}
-		return $m*$w;
-	    }
-	    else {
-		// 90 degrees internal so height becomes width
-		$h = @imagefontheight($this->font_family); 
-		if( $h === false ) {
-		    JpGraphError::RaiseL(25089);//('You have a misconfigured GD font support. The call to imagefontheight() fails.');
-		}
-		return $n*$h;
-	    }
-	}
-	else {
-	    // For TTF fonts we must walk through a lines and find the 
-	    // widest one which we use as the width of the multi-line
-	    // paragraph
-	    $m=0;
-	    for( $i=0; $i < $n; ++$i ) {
-		$bbox = $this->GetTTFBBox($tmp[$i],$angle);
-		$mm =  $bbox[2] - $bbox[0];
-		if( $mm > $m ) 
-		    $m = $mm;
-	    }
-	    return $m;
-	}
-    }
-	
-    // Draw text with a box around it
-    function StrokeBoxedText($x,$y,$txt,$dir=0,$fcolor="white",$bcolor="black",
-			     $shadowcolor=false,$paragraph_align="left",
-			     $xmarg=6,$ymarg=4,$cornerradius=0,$dropwidth=3) {
-
-	if( !is_numeric($dir) ) {
-	    if( $dir=="h" ) $dir=0;
-	    elseif( $dir=="v" ) $dir=90;
-	    else JpGraphError::RaiseL(25090,$dir);//(" Unknown direction specified in call to StrokeBoxedText() [$dir]");
-	}
-		
-	if( $this->font_family >= FF_FONT0 && $this->font_family <= FF_FONT2+1) {	
-	    $width=$this->GetTextWidth($txt,$dir) ;
-	    $height=$this->GetTextHeight($txt,$dir) ;
-	}
-	else {
-	    $width=$this->GetBBoxWidth($txt,$dir) ;
-	    $height=$this->GetBBoxHeight($txt,$dir) ;
-	}
-
-	$height += 2*$ymarg;
-	$width  += 2*$xmarg;
-
-	if( $this->text_halign=="right" ) $x -= $width;
-	elseif( $this->text_halign=="center" ) $x -= $width/2;
-	if( $this->text_valign=="bottom" ) $y -= $height;
-	elseif( $this->text_valign=="center" ) $y -= $height/2;
-	
-	if( $shadowcolor ) {
-	    $this->PushColor($shadowcolor);
-	    $this->FilledRoundedRectangle($x-$xmarg+$dropwidth,$y-$ymarg+$dropwidth,
-					  $x+$width+$dropwidth,$y+$height-$ymarg+$dropwidth,
-					  $cornerradius);
-	    $this->PopColor();
-	    $this->PushColor($fcolor);
-	    $this->FilledRoundedRectangle($x-$xmarg,$y-$ymarg,
-					  $x+$width,$y+$height-$ymarg,
-					  $cornerradius);		
-	    $this->PopColor();
-	    $this->PushColor($bcolor);
-	    $this->RoundedRectangle($x-$xmarg,$y-$ymarg,
-				    $x+$width,$y+$height-$ymarg,$cornerradius);
-	    $this->PopColor();
-	}
-	else {
-	    if( $fcolor ) {
-		$oc=$this->current_color;
-		$this->SetColor($fcolor);
-		$this->FilledRoundedRectangle($x-$xmarg,$y-$ymarg,$x+$width,$y+$height-$ymarg,$cornerradius);
-		$this->current_color=$oc;
-	    }
-	    if( $bcolor ) {
-		$oc=$this->current_color;
-		$this->SetColor($bcolor);			
-		$this->RoundedRectangle($x-$xmarg,$y-$ymarg,$x+$width,$y+$height-$ymarg,$cornerradius);
-		$this->current_color=$oc;			
-	    }
-	}
-		
-	$h=$this->text_halign;
-	$v=$this->text_valign;
-	$this->SetTextAlign("left","top");
-	$this->StrokeText($x, $y, $txt, $dir, $paragraph_align);
-	$bb = array($x-$xmarg,$y+$height-$ymarg,$x+$width,$y+$height-$ymarg,
-		    $x+$width,$y-$ymarg,$x-$xmarg,$y-$ymarg);
-	$this->SetTextAlign($h,$v);
-	return $bb;
-    }
-
-    // Set text alignment	
-    function SetTextAlign($halign,$valign="bottom") {
-	$this->text_halign=$halign;
-	$this->text_valign=$valign;
-    }
-	
-
-    function _StrokeBuiltinFont($x,$y,$txt,$dir=0,$paragraph_align="left",&$aBoundingBox,$aDebug=false) {
-
-	if( is_numeric($dir) && $dir!=90 && $dir!=0) 
-	    JpGraphError::RaiseL(25091);//(" Internal font does not support drawing text at arbitrary angle. Use TTF fonts instead.");
-
-	$h=$this->GetTextHeight($txt);
-	$fh=$this->GetFontHeight();
-	$w=$this->GetTextWidth($txt);
-	
-	if( $this->text_halign=="right") 				
-	    $x -= $dir==0 ? $w : $h;
-	elseif( $this->text_halign=="center" ) {
-	    // For center we subtract 1 pixel since this makes the middle
-	    // be prefectly in the middle
-	    $x -= $dir==0 ? $w/2-1 : $h/2;
-	}
-	if( $this->text_valign=="top" )
-	    $y += $dir==0 ? $h : $w;
-	elseif( $this->text_valign=="center" ) 				
-	    $y += $dir==0 ? $h/2 : $w/2;
-	
-	if( $dir==90 ) {
-	    imagestringup($this->img,$this->font_family,$x,$y,$txt,$this->current_color);
-	    $aBoundingBox = array(round($x),round($y),round($x),round($y-$w),round($x+$h),round($y-$w),round($x+$h),round($y));
-            if( $aDebug ) {
-		// Draw bounding box
-		$this->PushColor('green');
-		$this->Polygon($aBoundingBox,true);
-		$this->PopColor();
-	    }
-	}
-	else {
-	    if( ereg("\n",$txt) ) { 
-		$tmp = split("\n",$txt);
-		for($i=0; $i < count($tmp); ++$i) {
-		    $w1 = $this->GetTextWidth($tmp[$i]);
-		    if( $paragraph_align=="left" ) {
-			imagestring($this->img,$this->font_family,$x,$y-$h+1+$i*$fh,$tmp[$i],$this->current_color);
-		    }
-		    elseif( $paragraph_align=="right" ) {
-			imagestring($this->img,$this->font_family,$x+($w-$w1),
-				    $y-$h+1+$i*$fh,$tmp[$i],$this->current_color);
-		    }
-		    else {
-			imagestring($this->img,$this->font_family,$x+$w/2-$w1/2,
-				    $y-$h+1+$i*$fh,$tmp[$i],$this->current_color);
-		    }
-		}
-	    } 
-	    else {
-		//Put the text
-		imagestring($this->img,$this->font_family,$x,$y-$h+1,$txt,$this->current_color);
-	    }
-            if( $aDebug ) {
-		// Draw the bounding rectangle and the bounding box
-		$p1 = array(round($x),round($y),round($x),round($y-$h),round($x+$w),round($y-$h),round($x+$w),round($y));
-		
-		// Draw bounding box
-		$this->PushColor('green');
-		$this->Polygon($p1,true);
-		$this->PopColor();
-
-            }
-	    $aBoundingBox=array(round($x),round($y),round($x),round($y-$h),round($x+$w),round($y-$h),round($x+$w),round($y));
-	}
-    }
-
-    function AddTxtCR($aTxt) {
-	// If the user has just specified a '\n'
-	// instead of '\n\t' we have to add '\r' since
-	// the width will be too muchy otherwise since when
-	// we print we stroke the individually lines by hand.
-	$e = explode("\n",$aTxt);
-	$n = count($e);
-	for($i=0; $i<$n; ++$i) {
-	    $e[$i]=str_replace("\r","",$e[$i]);
-	}
-	return implode("\n\r",$e);
-    }
-
-    function GetTTFBBox($aTxt,$aAngle=0) {
-	$bbox = @ImageTTFBBox($this->font_size,$aAngle,$this->font_file,$aTxt);
-	if( $bbox === false ) {
-	    JpGraphError::RaiseL(25092,$this->font_file);
-//("There is either a configuration problem with TrueType or a problem reading font file (".$this->font_file."). Make sure file exists and is in a readable place for the HTTP process. (If 'basedir' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try uppgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library.");
-	}
-	return $bbox;
-    }
-
-    function GetBBoxTTF($aTxt,$aAngle=0) {
-	// Normalize the bounding box to become a minimum
-	// enscribing rectangle
-
-	$aTxt = $this->AddTxtCR($aTxt);
-
-	if( !is_readable($this->font_file) ) {
-	    JpGraphError::RaiseL(25093,$this->font_file);
-//('Can not read font file ('.$this->font_file.') in call to Image::GetBBoxTTF. Please make sure that you have set a font before calling this method and that the font is installed in the TTF directory.');
-	}
-	$bbox = $this->GetTTFBBox($aTxt,$aAngle);
-
-	if( $aAngle==0 ) 
-	    return $bbox;
-	if( $aAngle >= 0 ) {
-	    if(  $aAngle <= 90 ) { //<=0		
-		$bbox = array($bbox[6],$bbox[1],$bbox[2],$bbox[1],
-			      $bbox[2],$bbox[5],$bbox[6],$bbox[5]);
-	    }
-	    elseif(  $aAngle <= 180 ) { //<= 2
-		$bbox = array($bbox[4],$bbox[7],$bbox[0],$bbox[7],
-			      $bbox[0],$bbox[3],$bbox[4],$bbox[3]);
-	    }
-	    elseif(  $aAngle <= 270 )  { //<= 3
-		$bbox = array($bbox[2],$bbox[5],$bbox[6],$bbox[5],
-			      $bbox[6],$bbox[1],$bbox[2],$bbox[1]);
-	    }
-	    else {
-		$bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3],
-			      $bbox[4],$bbox[7],$bbox[0],$bbox[7]);
-	    }
-	}
-	elseif(  $aAngle < 0 ) {
-	    if( $aAngle <= -270 ) { // <= -3
-		$bbox = array($bbox[6],$bbox[1],$bbox[2],$bbox[1],
-			      $bbox[2],$bbox[5],$bbox[6],$bbox[5]);
-	    }
-	    elseif( $aAngle <= -180 ) { // <= -2
-		$bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3],
-			      $bbox[4],$bbox[7],$bbox[0],$bbox[7]);
-	    }
-	    elseif( $aAngle <= -90 ) { // <= -1
-		$bbox = array($bbox[2],$bbox[5],$bbox[6],$bbox[5],
-			      $bbox[6],$bbox[1],$bbox[2],$bbox[1]);
-	    }
-	    else {
-		$bbox = array($bbox[0],$bbox[3],$bbox[4],$bbox[3],
-			      $bbox[4],$bbox[7],$bbox[0],$bbox[7]);
-	    }
-	}	
-	return $bbox;
-    }
-
-    function GetBBoxHeight($aTxt,$aAngle=0) {
-	$box = $this->GetBBoxTTF($aTxt,$aAngle);
-	return $box[1]-$box[7]+1;
-    }
-
-    function GetBBoxWidth($aTxt,$aAngle=0) {
-	$box = $this->GetBBoxTTF($aTxt,$aAngle);
-	return $box[2]-$box[0]+1;	
-    }
-
-    function _StrokeTTF($x,$y,$txt,$dir=0,$paragraph_align="left",&$aBoundingBox,$debug=false) {
-
-	// Setupo default inter line margin for paragraphs to
-	// 25% of the font height.
-	$ConstLineSpacing = 0.25 ;
-
-	// Remember the anchor point before adjustment
-	if( $debug ) {
-	    $ox=$x;
-	    $oy=$y;
-	}
-
-	if( !ereg("\n",$txt) || ($dir>0 && ereg("\n",$txt)) ) {
-	    // Format a single line
-
-	    $txt = $this->AddTxtCR($txt);
-
-	    $bbox=$this->GetBBoxTTF($txt,$dir);
-	    
-	    // Align x,y ot lower left corner of bbox
-	    $x -= $bbox[0];
-	    $y -= $bbox[1];
-
-	    // Note to self: "topanchor" is deprecated after we changed the
-	    // bopunding box stuff. 
-	    if( $this->text_halign=="right" || $this->text_halign=="topanchor" ) 
-		$x -= $bbox[2]-$bbox[0];
-	    elseif( $this->text_halign=="center" ) $x -= ($bbox[2]-$bbox[0])/2; 
-	    
-	    if( $this->text_valign=="top" ) $y += abs($bbox[5])+$bbox[1];
-	    elseif( $this->text_valign=="center" ) $y -= ($bbox[5]-$bbox[1])/2; 
-
-	    ImageTTFText ($this->img, $this->font_size, $dir, $x, $y, 
-			  $this->current_color,$this->font_file,$txt); 
-
-	    // Calculate and return the co-ordinates for the bounding box
-	    $box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$txt);
-	    $p1 = array();
-
-
-	    for($i=0; $i < 4; ++$i) {
-		$p1[] = round($box[$i*2]+$x);
-		$p1[] = round($box[$i*2+1]+$y);
-	    }
-	    $aBoundingBox = $p1;
-
-	    // Debugging code to highlight the bonding box and bounding rectangle
-	    // For text at 0 degrees the bounding box and bounding rectangle are the
-	    // same
-            if( $debug ) {
-		// Draw the bounding rectangle and the bounding box
-		$box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$txt);
-		$p = array();
-		$p1 = array();
-		for($i=0; $i < 4; ++$i) {
-		    $p[] = $bbox[$i*2]+$x;
-		    $p[] = $bbox[$i*2+1]+$y;
-		    $p1[] = $box[$i*2]+$x;
-		    $p1[] = $box[$i*2+1]+$y;
-		}
-
-		// Draw bounding box
-		$this->PushColor('green');
-		$this->Polygon($p1,true);
-		$this->PopColor();
-		
-		// Draw bounding rectangle
-		$this->PushColor('darkgreen');
-		$this->Polygon($p,true);
-		$this->PopColor();
-		
-		// Draw a cross at the anchor point
-		$this->PushColor('red');
-		$this->Line($ox-15,$oy,$ox+15,$oy);
-		$this->Line($ox,$oy-15,$ox,$oy+15);
-		$this->PopColor();
-            }
-	}
-	else {
-	    // Format a text paragraph
-	    $fh=$this->GetFontHeight();
-
-	    // Line margin is 25% of font height
-	    $linemargin=round($fh*$ConstLineSpacing);
-	    $fh += $linemargin;
-	    $w=$this->GetTextWidth($txt);
-
-	    $y -= $linemargin/2;
-	    $tmp = split("\n",$txt);
-	    $nl = count($tmp);
-	    $h = $nl * $fh;
-
-	    if( $this->text_halign=="right") 				
-		$x -= $dir==0 ? $w : $h;
-	    elseif( $this->text_halign=="center" ) {
-		$x -= $dir==0 ? $w/2 : $h/2;
-	    }
-	    
-	    if( $this->text_valign=="top" )
-		$y +=	$dir==0 ? $h : $w;
-	    elseif( $this->text_valign=="center" ) 				
-		$y +=	$dir==0 ? $h/2 : $w/2;
-
-	    // Here comes a tricky bit. 
-	    // Since we have to give the position for the string at the
-	    // baseline this means thaht text will move slightly up
-	    // and down depending on any of it's character descend below
-	    // the baseline, for example a 'g'. To adjust the Y-position
-	    // we therefore adjust the text with the baseline Y-offset
-	    // as used for the current font and size. This will keep the
-	    // baseline at a fixed positoned disregarding the actual 
-	    // characters in the string. 
-	    $standardbox = $this->GetTTFBBox('Gg',$dir);
-	    $yadj = $standardbox[1];
-	    $xadj = $standardbox[0];
-	    $aBoundingBox = array();
-	    for($i=0; $i < $nl; ++$i) {
-		$wl = $this->GetTextWidth($tmp[$i]);
-		$bbox = $this->GetTTFBBox($tmp[$i],$dir);
-		if( $paragraph_align=="left" ) {
-		    $xl = $x; 
-		}
-		elseif( $paragraph_align=="right" ) {
-		    $xl = $x + ($w-$wl);
-		}
-		else {
-		    // Center
-		    $xl = $x + $w/2 - $wl/2 ;
-		}
-
-		$xl -= $bbox[0];
-		$yl = $y - $yadj; 
-		$xl = $xl - $xadj; 
-		ImageTTFText ($this->img, $this->font_size, $dir, 
-			      $xl, $yl-($h-$fh)+$fh*$i,
-			      $this->current_color,$this->font_file,$tmp[$i]); 
-
-		if( $debug  ) {
-		    // Draw the bounding rectangle around each line
-		    $box=@ImageTTFBBox($this->font_size,$dir,$this->font_file,$tmp[$i]);
-		    $p = array();
-		    for($j=0; $j < 4; ++$j) {
-			$p[] = $bbox[$j*2]+$xl;
-			$p[] = $bbox[$j*2+1]+$yl-($h-$fh)+$fh*$i;
-		    }
-		    
-		    // Draw bounding rectangle
-		    $this->PushColor('darkgreen');
-		    $this->Polygon($p,true);
-		    $this->PopColor();
-		}
-	    }
-
-	    // Get the bounding box
-	    $bbox = $this->GetBBoxTTF($txt,$dir);
-	    for($j=0; $j < 4; ++$j) {
-		$bbox[$j*2]+= round($x);
-		$bbox[$j*2+1]+= round($y - ($h-$fh) - $yadj);
-	    }
-	    $aBoundingBox = $bbox;
-
-	    if( $debug ) {	
-		// Draw a cross at the anchor point
-		$this->PushColor('red');
-		$this->Line($ox-25,$oy,$ox+25,$oy);
-		$this->Line($ox,$oy-25,$ox,$oy+25);
-		$this->PopColor();
-	    }
-
-	}
-    }
-	
-    function StrokeText($x,$y,$txt,$dir=0,$paragraph_align="left",$debug=false) {
-
-	$x = round($x);
-	$y = round($y);
-
-	// Do special language encoding
-	$txt = $this->langconv->Convert($txt,$this->font_family);
-
-	if( !is_numeric($dir) )
-	    JpGraphError::RaiseL(25094);//(" Direction for text most be given as an angle between 0 and 90.");
-			
-	if( $this->font_family >= FF_FONT0 && $this->font_family <= FF_FONT2+1) {	
-	    $this->_StrokeBuiltinFont($x,$y,$txt,$dir,$paragraph_align,$boundingbox,$debug);
-	}
-	elseif($this->font_family >= _FF_FIRST && $this->font_family <= _FF_LAST)  {
-	    $this->_StrokeTTF($x,$y,$txt,$dir,$paragraph_align,$boundingbox,$debug);
-	}
-	else
-	    JpGraphError::RaiseL(25095);//(" Unknown font font family specification. ");
-	return $boundingbox;
-    }
-	
-    function SetMargin($lm,$rm,$tm,$bm) {
-	$this->left_margin=$lm;
-	$this->right_margin=$rm;
-	$this->top_margin=$tm;
-	$this->bottom_margin=$bm;
-	$this->plotwidth=$this->width - $this->left_margin-$this->right_margin ; 
-	$this->plotheight=$this->height - $this->top_margin-$this->bottom_margin ;
-	if( $this->width  > 0 && $this->height > 0 ) {
-	    if( $this->plotwidth < 0  || $this->plotheight < 0 )
-		JpGraphError::raise("Too small plot area. ($lm,$rm,$tm,$bm : $this->plotwidth x $this->plotheight). With the given image size and margins there is to little space left for the plot. Increase the plot size or reduce the margins.");
-	}
-    }
-
-    function SetTransparent($color) {
-	imagecolortransparent ($this->img,$this->rgb->allocate($color));
-    }
-	
-    function SetColor($color,$aAlpha=0) {
-	$this->current_color_name = $color;
-	$this->current_color=$this->rgb->allocate($color,$aAlpha);
-	if( $this->current_color == -1 ) {
-	    $tc=imagecolorstotal($this->img);
-	    JpGraphError::RaiseL(25096);
-//("Can't allocate any more colors. Image has already allocated maximum of <b>$tc colors</b>. This might happen if you have anti-aliasing turned on together with a background image or perhaps gradient fill since this requires many, many colors. Try to turn off anti-aliasing. If there is still a problem try downgrading the quality of the background image to use a smaller pallete to leave some entries for your graphs. You should try to limit the number of colors in your background image to 64. If there is still problem set the constant DEFINE(\"USE_APPROX_COLORS\",true); in jpgraph.php This will use approximative colors when the palette is full. Unfortunately there is not much JpGraph can do about this since the palette size is a limitation of current graphic format and what the underlying GD library suppports."); 
-	}
-	return $this->current_color;
-    }
-	
-    function PushColor($color) {
-	if( $color != "" ) {
-	    $this->colorstack[$this->colorstackidx]=$this->current_color_name;
-	    $this->colorstack[$this->colorstackidx+1]=$this->current_color;
-	    $this->colorstackidx+=2;
-	    $this->SetColor($color);
-	}
-	else {
-	    JpGraphError::RaiseL(25097);//("Color specified as empty string in PushColor().");
-	}
-    }
-	
-    function PopColor() {
-	if($this->colorstackidx<1)
-	    JpGraphError::RaiseL(25098);//(" Negative Color stack index. Unmatched call to PopColor()");
-	$this->current_color=$this->colorstack[--$this->colorstackidx];
-	$this->current_color_name=$this->colorstack[--$this->colorstackidx];
-    }
-	
-	
-    // Why this duplication? Because this way we can call this method
-    // for any image and not only the current objsct
-    function AdjSat($sat) {	
-	if( $GLOBALS['gd2'] && USE_TRUECOLOR )
-	    return;
-	$this->_AdjSat($this->img,$sat);	
-    }	
-	
-    function _AdjSat($img,$sat) {
-	$nbr = imagecolorstotal ($img);
-	for( $i=0; $i<$nbr; ++$i ) {
-	    $colarr = imagecolorsforindex ($img,$i);
-	    $rgb[0]=$colarr["red"];
-	    $rgb[1]=$colarr["green"];
-	    $rgb[2]=$colarr["blue"];
-	    $rgb = $this->AdjRGBSat($rgb,$sat);
-	    imagecolorset ($img, $i, $rgb[0], $rgb[1], $rgb[2]);
-	}
-    }
-	
-    function AdjBrightContrast($bright,$contr=0) {
-	if( $GLOBALS['gd2'] && USE_TRUECOLOR )
-	    return;
-	$this->_AdjBrightContrast($this->img,$bright,$contr);
-    }
-
-    function _AdjBrightContrast($img,$bright,$contr=0) {
-	if( $bright < -1 || $bright > 1 || $contr < -1 || $contr > 1 )
-	    JpGraphError::RaiseL(25099);//(" Parameters for brightness and Contrast out of range [-1,1]");		
-	$nbr = imagecolorstotal ($img);
-	for( $i=0; $i<$nbr; ++$i ) {
-	    $colarr = imagecolorsforindex ($img,$i);
-	    $r = $this->AdjRGBBrightContrast($colarr["red"],$bright,$contr);
-	    $g = $this->AdjRGBBrightContrast($colarr["green"],$bright,$contr);
-	    $b = $this->AdjRGBBrightContrast($colarr["blue"],$bright,$contr);		
-	    imagecolorset ($img, $i, $r, $g, $b);
-	}
-    }
-	
-    // Private helper function for adj sat
-    // Adjust saturation for RGB array $u. $sat is a value between -1 and 1
-    // Note: Due to GD inability to handle true color the RGB values are only between
-    // 8 bit. This makes saturation quite sensitive for small increases in parameter sat.
-    // 
-    // Tip: To get a grayscale picture set sat=-100, values <-100 changes the colors
-    // to it's complement.
-    // 
-    // Implementation note: The saturation is implemented directly in the RGB space
-    // by adjusting the perpendicular distance between the RGB point and the "grey"
-    // line (1,1,1). Setting $sat>0 moves the point away from the line along the perp.
-    // distance and a negative value moves the point closer to the line.
-    // The values are truncated when the color point hits the bounding box along the
-    // RGB axis.
-    // DISCLAIMER: I'm not 100% sure this is he correct way to implement a color 
-    // saturation function in RGB space. However, it looks ok and has the expected effect.
-    function AdjRGBSat($rgb,$sat) {
-	// TODO: Should be moved to the RGB class
-	// Grey vector
-	$v=array(1,1,1);
-
-	// Dot product
-	$dot = $rgb[0]*$v[0]+$rgb[1]*$v[1]+$rgb[2]*$v[2];
-
-	// Normalize dot product
-	$normdot = $dot/3;	// dot/|v|^2
-
-	// Direction vector between $u and its projection onto $v
-	for($i=0; $i<3; ++$i)
-	    $r[$i] = $rgb[$i] - $normdot*$v[$i];
-
-	// Adjustment factor so that sat==1 sets the highest RGB value to 255
-	if( $sat > 0 ) {
-	    $m=0;
-	    for( $i=0; $i<3; ++$i) {
-		if( sign($r[$i]) == 1 && $r[$i]>0)
-		    $m=max($m,(255-$rgb[$i])/$r[$i]);
-	    }
-	    $tadj=$m;
-	}
-	else
-	    $tadj=1;
-		
-	$tadj = $tadj*$sat;	
-	for($i=0; $i<3; ++$i) {
-	    $un[$i] = round($rgb[$i] + $tadj*$r[$i]);		
-	    if( $un[$i]<0 ) $un[$i]=0;		// Truncate color when they reach 0
-	    if( $un[$i]>255 ) $un[$i]=255;// Avoid potential rounding error
-	}		
-	return $un;	
-    }	
-
-    // Private helper function for AdjBrightContrast
-    function AdjRGBBrightContrast($rgb,$bright,$contr) {
-	// TODO: Should be moved to the RGB class
-	// First handle contrast, i.e change the dynamic range around grey
-	if( $contr <= 0 ) {
-	    // Decrease contrast
-	    $adj = abs($rgb-128) * (-$contr);
-	    if( $rgb < 128 ) $rgb += $adj;
-	    else $rgb -= $adj;
-	}
-	else { // $contr > 0
-	    // Increase contrast
-	    if( $rgb < 128 ) $rgb = $rgb - ($rgb * $contr);
-	    else $rgb = $rgb + ((255-$rgb) * $contr);
-	}
-	
-	// Add (or remove) various amount of white
-	$rgb += $bright*255;	
-	$rgb=min($rgb,255);
-	$rgb=max($rgb,0);
-	return $rgb;	
-    }
-	
-    function SetLineWeight($weight) {
-	$this->line_weight = $weight;
-    }
-	
-    function SetStartPoint($x,$y) {
-	$this->lastx=round($x);
-	$this->lasty=round($y);
-    }
-	
-    function Arc($cx,$cy,$w,$h,$s,$e) {
-	// GD Arc doesn't like negative angles
-	while( $s < 0) $s += 360;
-	while( $e < 0) $e += 360;
-    	
-	imagearc($this->img,round($cx),round($cy),round($w),round($h),
-		 $s,$e,$this->current_color);
-    }
-    
-    function FilledArc($xc,$yc,$w,$h,$s,$e,$style="") {
-
-	if( $GLOBALS['gd2'] ) {
-	    while( $s < 0 ) $s += 360;
-	    while( $e < 0 ) $e += 360;
-	    if( $style=="" ) 
-		$style=IMG_ARC_PIE;
-	    imagefilledarc($this->img,round($xc),round($yc),round($w),round($h),
-			   round($s),round($e),$this->current_color,$style);
-	    return;
-	}
-
-
-	// In GD 1.x we have to do it ourself interesting enough there is surprisingly
-	// little difference in time between doing it PHP and using the optimised GD 
-	// library (roughly ~20%) I had expected it to be at least 100% slower doing it
-	// manually with a polygon approximation in PHP.....
-	$fillcolor = $this->current_color_name;
-
-	$w /= 2; // We use radius in our calculations instead
-	$h /= 2;
-
-	// Setup the angles so we have the same conventions as the builtin
-	// FilledArc() which is a little bit strange if you ask me....
-
-	$s = 360-$s;
-	$e = 360-$e;
-
-	if( $e > $s ) {
-	    $e = $e - 360;
-	    $da = $s - $e; 
-	}
-	$da = $s-$e;
-
-	// We use radians
-	$s *= M_PI/180;
-	$e *= M_PI/180;
-	$da *= M_PI/180;
-
-	// Calculate a polygon approximation
-	$p[0] = $xc;
-	$p[1] = $yc;
-
-	// Heuristic on how many polygons we need to make the
-	// arc look good
-	$numsteps = round(8 * abs($da) * ($w+$h)*($w+$h)/1500);
-
-	if( $numsteps == 0 ) return;
-	if( $numsteps < 7 ) $numsteps=7;
-	$delta = abs($da)/$numsteps;
-	
-	$pa=array();
-	$a = $s;
-	for($i=1; $i<=$numsteps; ++$i ) {
-	    $p[2*$i] = round($xc + $w*cos($a));
-	    $p[2*$i+1] = round($yc - $h*sin($a));
-	    //$a = $s + $i*$delta; 
-	    $a -= $delta; 
-	    $pa[2*($i-1)] = $p[2*$i];
-	    $pa[2*($i-1)+1] = $p[2*$i+1];
-	}
-
-	// Get the last point at the exact ending angle to avoid
-	// any rounding errors.
-	$p[2*$i] = round($xc + $w*cos($e));
-	$p[2*$i+1] = round($yc - $h*sin($e));
-	$pa[2*($i-1)] = $p[2*$i];
-	$pa[2*($i-1)+1] = $p[2*$i+1];
-	$i++;
-
-	$p[2*$i] = $xc;
-    	$p[2*$i+1] = $yc;
-	if( $fillcolor != "" ) {
-	    $this->PushColor($fillcolor);
-	    imagefilledpolygon($this->img,$p,count($p)/2,$this->current_color);
-	    $this->PopColor();
-	}
-    }
-
-    function FilledCakeSlice($cx,$cy,$w,$h,$s,$e) {
-	$this->CakeSlice($cx,$cy,$w,$h,$s,$e,$this->current_color_name);
-    }
-
-    function CakeSlice($xc,$yc,$w,$h,$s,$e,$fillcolor="",$arccolor="") {
-	$s = round($s); $e = round($e);
-	$w = round($w); $h = round($h);
-	$xc = round($xc); $yc = round($yc);
-	$this->PushColor($fillcolor);
-	$this->FilledArc($xc,$yc,2*$w,2*$h,$s,$e);
-	$this->PopColor();
-	if( $arccolor != "" ) {
-	    $this->PushColor($arccolor);
-	    // We add 2 pixels to make the Arc() better aligned with the filled arc. 
-	    if( $GLOBALS['gd2'] ) {
-		imagefilledarc($this->img,$xc,$yc,2*$w,2*$h,$s,$e,$this->current_color,IMG_ARC_NOFILL | IMG_ARC_EDGED ) ;
-	    }
-	    else {
-		$this->Arc($xc,$yc,2*$w+2,2*$h+2,$s,$e);
-		$xx = $w * cos(2*M_PI - $s*M_PI/180) + $xc;
-		$yy = $yc - $h * sin(2*M_PI - $s*M_PI/180);
-		$this->Line($xc,$yc,$xx,$yy);
-		$xx = $w * cos(2*M_PI - $e*M_PI/180) + $xc;
-		$yy = $yc - $h * sin(2*M_PI - $e*M_PI/180);
-		$this->Line($xc,$yc,$xx,$yy);
-	    }
-	    $this->PopColor();
-	}
-    }
-
-    function Ellipse($xc,$yc,$w,$h) {
-	$this->Arc($xc,$yc,$w,$h,0,360);
-    }
-	
-    // Breseham circle gives visually better result then using GD
-    // built in arc(). It takes some more time but gives better
-    // accuracy.
-    function BresenhamCircle($xc,$yc,$r) {
-	$d = 3-2*$r;
-	$x = 0;
-	$y = $r;
-	while($x<=$y) {
-	    $this->Point($xc+$x,$yc+$y);			
-	    $this->Point($xc+$x,$yc-$y);
-	    $this->Point($xc-$x,$yc+$y);
-	    $this->Point($xc-$x,$yc-$y);
-			
-	    $this->Point($xc+$y,$yc+$x);
-	    $this->Point($xc+$y,$yc-$x);
-	    $this->Point($xc-$y,$yc+$x);
-	    $this->Point($xc-$y,$yc-$x);
-			
-	    if( $d<0 ) $d += 4*$x+6;
-	    else {
-		$d += 4*($x-$y)+10;		
-		--$y;
-	    }
-	    ++$x;
-	}
-    }
-			
-    function Circle($xc,$yc,$r) {
-	if( USE_BRESENHAM )
-	    $this->BresenhamCircle($xc,$yc,$r);
-	else {
-
-	    /*
-            // Some experimental code snippet to see if we can get a decent 
-	    // result doing a trig-circle
-	    // Create an approximated circle with 0.05 rad resolution
-	    $end = 2*M_PI;
-	    $l = $r/10;
-	    if( $l < 3 ) $l=3;
-	    $step_size = 2*M_PI/(2*$r*M_PI/$l);
-	    $pts = array();
-	    $pts[] = $r + $xc;
-	    $pts[] = $yc;
-	    for( $a=$step_size; $a <= $end; $a += $step_size ) {
-		$pts[] = round($xc + $r*cos($a));
-		$pts[] = round($yc - $r*sin($a));
-	    }
-	    imagepolygon($this->img,$pts,count($pts)/2,$this->current_color);
-	    */
-
-	    $this->Arc($xc,$yc,$r*2,$r*2,0,360);		
-
-	    // For some reason imageellipse() isn't in GD 2.0.1, PHP 4.1.1
-	    //imageellipse($this->img,$xc,$yc,$r,$r,$this->current_color);
-	}
-    }
-	
-    function FilledCircle($xc,$yc,$r) {
-	if( $GLOBALS['gd2'] ) {
-	    imagefilledellipse($this->img,round($xc),round($yc),
-	    		       2*$r,2*$r,$this->current_color);
-	}
-	else {
-	    for( $i=1; $i < 2*$r; $i += 2 ) {
-		// To avoid moire patterns we have to draw some
-		// 1 extra "skewed" filled circles
-		$this->Arc($xc,$yc,$i,$i,0,360);
-		$this->Arc($xc,$yc,$i+1,$i,0,360);
-		$this->Arc($xc,$yc,$i+1,$i+1,0,360);
-	    }
-	}	
-    }
-	
-    // Linear Color InterPolation
-    function lip($f,$t,$p) {
-	$p = round($p,1);
-	$r = $f[0] + ($t[0]-$f[0])*$p;
-	$g = $f[1] + ($t[1]-$f[1])*$p;
-	$b = $f[2] + ($t[2]-$f[2])*$p;
-	return array($r,$g,$b);
-    }
-
-    // Anti-aliased line. 
-    // Note that this is roughly 8 times slower then a normal line!
-    function WuLine($x1,$y1,$x2,$y2) {
-	// Get foreground line color
-	$lc = imagecolorsforindex($this->img,$this->current_color);
-	$lc = array($lc["red"],$lc["green"],$lc["blue"]);
-
-	$dx = $x2-$x1;
-	$dy = $y2-$y1;
-	
-	if( abs($dx) > abs($dy) ) {
-	    if( $dx<0 ) {
-		$dx = -$dx;$dy = -$dy;
-		$tmp=$x2;$x2=$x1;$x1=$tmp;
-		$tmp=$y2;$y2=$y1;$y1=$tmp;
-	    }
-	    $x=$x1<<16; $y=$y1<<16;
-	    $yinc = ($dy*65535)/$dx;
-	    while( ($x >> 16) < $x2 ) {
-				
-		$bc = @imagecolorsforindex($this->img,imagecolorat($this->img,$x>>16,$y>>16));
-		if( $bc <= 0 ) {
-		    JpGraphError::RaiseL(25100);//('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and that truecolor is enabled.');
-		}
-		$bc=array($bc["red"],$bc["green"],$bc["blue"]);
-				
-		$this->SetColor($this->lip($lc,$bc,($y & 0xFFFF)/65535));
-		imagesetpixel($this->img,$x>>16,$y>>16,$this->current_color);
-		$this->SetColor($this->lip($lc,$bc,(~$y & 0xFFFF)/65535));
-		imagesetpixel($this->img,$x>>16,($y>>16)+1,$this->current_color);
-		$x += 65536; $y += $yinc;
-	    }
-	}
-	else {
-	    if( $dy<0 ) {
-		$dx = -$dx;$dy = -$dy;
-		$tmp=$x2;$x2=$x1;$x1=$tmp;
-		$tmp=$y2;$y2=$y1;$y1=$tmp;
-	    }
-	    $x=$x1<<16; $y=$y1<<16;
-	    $xinc = ($dx*65535)/$dy;	
-	    while( ($y >> 16) < $y2 ) {
-				
-		$bc = @imagecolorsforindex($this->img,imagecolorat($this->img,$x>>16,$y>>16));
-		if( $bc <= 0 ) {
-		    JpGraphError::RaiseL(25100);//('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and truecolor is enabled.');
-
-		}
-
-		$bc=array($bc["red"],$bc["green"],$bc["blue"]);				
-				
-		$this->SetColor($this->lip($lc,$bc,($x & 0xFFFF)/65535));
-		imagesetpixel($this->img,$x>>16,$y>>16,$this->current_color);
-		$this->SetColor($this->lip($lc,$bc,(~$x & 0xFFFF)/65535));
-		imagesetpixel($this->img,($x>>16)+1,$y>>16,$this->current_color);
-		$y += 65536; $x += $xinc;
-	    }
-	}
-	$this->SetColor($lc);
-	imagesetpixel($this->img,$x2,$y2,$this->current_color);		
-	imagesetpixel($this->img,$x1,$y1,$this->current_color);			
-    }
-
-    // Set line style dashed, dotted etc
-    function SetLineStyle($s) {
-	if( is_numeric($s) ) {
-	    if( $s<1 || $s>4 ) 
-		JpGraphError::RaiseL(25101,$s);//(" Illegal numeric argument to SetLineStyle(): ($s)");
-	}
-	elseif( is_string($s) ) {
-	    if( $s == "solid" ) $s=1;
-	    elseif( $s == "dotted" ) $s=2;
-	    elseif( $s == "dashed" ) $s=3;
-	    elseif( $s == "longdashed" ) $s=4;
-	    else JpGraphError::RaiseL(25102,$s);//(" Illegal string argument to SetLineStyle(): $s");
-	}
-	else JpGraphError::RaiseL(25103,$s);//(" Illegal argument to SetLineStyle $s");
-	$this->line_style=$s;
-    }
-	
-    // Same as Line but take the line_style into account
-    function StyleLine($x1,$y1,$x2,$y2) {
-	switch( $this->line_style ) {
-	    case 1:// Solid
-		$this->Line($x1,$y1,$x2,$y2);
-		break;
-	    case 2: // Dotted
-		$this->DashedLine($x1,$y1,$x2,$y2,1,6);
-		break;
-	    case 3: // Dashed
-		$this->DashedLine($x1,$y1,$x2,$y2,2,4);
-		break;
-	    case 4: // Longdashes
-		$this->DashedLine($x1,$y1,$x2,$y2,8,6);
-		break;
-	    default:
-		JpGraphError::RaiseL(25104,$this->line_style);//(" Unknown line style: $this->line_style ");
-		break;
-	}
-    }
-
-    function Line($x1,$y1,$x2,$y2) {
-
-	$x1 = round($x1);
-	$x2 = round($x2);
-	$y1 = round($y1);
-	$y2 = round($y2);
-
-	if( $this->line_weight==0 ) return;
-	if( $this->use_anti_aliasing ) {
-	    $dx = $x2-$x1;
-	    $dy = $y2-$y1;
-	    // Vertical, Horizontal or 45 lines don't need anti-aliasing
-	    if( $dx!=0 && $dy!=0 && $dx!=$dy ) {
-		$this->WuLine($x1,$y1,$x2,$y2);
-		return;
-	    }
-	}
-	if( $this->line_weight==1 ) {
-	    imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color);
-	}
-	elseif( $x1==$x2 ) {		// Special case for vertical lines
-	    imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color);
-	    $w1=floor($this->line_weight/2);
-	    $w2=floor(($this->line_weight-1)/2);
-	    for($i=1; $i<=$w1; ++$i) 
-		imageline($this->img,$x1+$i,$y1,$x2+$i,$y2,$this->current_color);
-	    for($i=1; $i<=$w2; ++$i) 
-		imageline($this->img,$x1-$i,$y1,$x2-$i,$y2,$this->current_color);
-	}
-	elseif( $y1==$y2 ) {		// Special case for horizontal lines
-	    imageline($this->img,$x1,$y1,$x2,$y2,$this->current_color);
-	    $w1=floor($this->line_weight/2);
-	    $w2=floor(($this->line_weight-1)/2);
-	    for($i=1; $i<=$w1; ++$i) 
-		imageline($this->img,$x1,$y1+$i,$x2,$y2+$i,$this->current_color);
-	    for($i=1; $i<=$w2; ++$i) 
-		imageline($this->img,$x1,$y1-$i,$x2,$y2-$i,$this->current_color);		
-	}
-	else {	// General case with a line at an angle
-	    $a = atan2($y1-$y2,$x2-$x1);
-	    // Now establish some offsets from the center. This gets a little
-	    // bit involved since we are dealing with integer functions and we
-	    // want the apperance to be as smooth as possible and never be thicker
-	    // then the specified width.
-			
-	    // We do the trig stuff to make sure that the endpoints of the line
-	    // are perpendicular to the line itself.
-	    $dx=(sin($a)*$this->line_weight/2);
-	    $dy=(cos($a)*$this->line_weight/2);
-
-	    $pnts = array($x2+$dx,$y2+$dy,$x2-$dx,$y2-$dy,$x1-$dx,$y1-$dy,$x1+$dx,$y1+$dy);
-	    imagefilledpolygon($this->img,$pnts,count($pnts)/2,$this->current_color);
-	}		
-	$this->lastx=$x2; $this->lasty=$y2;		
-    }
-
-    function Polygon($p,$closed=FALSE,$fast=FALSE) {
-	if( $this->line_weight==0 ) return;
-	$n=count($p);
-	$oldx = $p[0];
-	$oldy = $p[1];
-	if( $fast ) {
-	    for( $i=2; $i < $n; $i+=2 ) {
-		imageline($this->img,$oldx,$oldy,$p[$i],$p[$i+1],$this->current_color);
-		$oldx = $p[$i];
-		$oldy = $p[$i+1];
-	    }
-	    if( $closed ) {
-		imageline($this->img,$p[$n*2-2],$p[$n*2-1],$p[0],$p[1],$this->current_color);
-	    }
-	}
-	else {
-	    for( $i=2; $i < $n; $i+=2 ) {
-		$this->StyleLine($oldx,$oldy,$p[$i],$p[$i+1]);
-		$oldx = $p[$i];
-		$oldy = $p[$i+1];
-	    }
-	}
-	if( $closed )
-	    $this->Line($oldx,$oldy,$p[0],$p[1]);
-    }
-	
-    function FilledPolygon($pts) {
-	$n=count($pts);
-	if( $n == 0 ) {
-	    JpGraphError::RaiseL(25105);//('NULL data specified for a filled polygon. Check that your data is not NULL.');
-	}
-	for($i=0; $i < $n; ++$i) 
-	    $pts[$i] = round($pts[$i]);
-	imagefilledpolygon($this->img,$pts,count($pts)/2,$this->current_color);
-    }
-	
-    function Rectangle($xl,$yu,$xr,$yl) {
-	$this->Polygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl,$xl,$yu));
-    }
-	
-    function FilledRectangle($xl,$yu,$xr,$yl) {
-	$this->FilledPolygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl));
-    }
-
-    function FilledRectangle2($xl,$yu,$xr,$yl,$color1,$color2,$style=1) {
-	// Fill a rectangle with lines of two colors
-	if( $style===1 ) {
-	    // Horizontal stripe
-	    if( $yl < $yu ) {
-		$t = $yl; $yl=$yu; $yu=$t;
-	    }
-	    for( $y=$yu; $y <= $yl; ++$y) {
-		$this->SetColor($color1);
-		$this->Line($xl,$y,$xr,$y);
-		++$y;
-		$this->SetColor($color2);
-		$this->Line($xl,$y,$xr,$y);
-	    }
-	}
-	else {
-	    if( $xl < $xl ) {
-		$t = $xl; $xl=$xr; $xr=$t;
-	    }
-	    for( $x=$xl; $x <= $xr; ++$x) {
-		$this->SetColor($color1);
-		$this->Line($x,$yu,$x,$yl);
-		++$x;
-		$this->SetColor($color2);
-		$this->Line($x,$yu,$x,$yl);
-	    }
-	}
-    }
-
-    function ShadowRectangle($xl,$yu,$xr,$yl,$fcolor=false,$shadow_width=3,$shadow_color=array(102,102,102)) {
-	// This is complicated by the fact that we must also handle the case where
-        // the reactangle has no fill color
-	$this->PushColor($shadow_color);
-	$this->FilledRectangle($xr-$shadow_width,$yu+$shadow_width,$xr,$yl-$shadow_width-1);
-	$this->FilledRectangle($xl+$shadow_width,$yl-$shadow_width,$xr,$yl);
-	//$this->FilledRectangle($xl+$shadow_width,$yu+$shadow_width,$xr,$yl);
-	$this->PopColor();
-	if( $fcolor==false )
-	    $this->Rectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1);
-	else {		
-	    $this->PushColor($fcolor);
-	    $this->FilledRectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1);
-	    $this->PopColor();
-	    $this->Rectangle($xl,$yu,$xr-$shadow_width-1,$yl-$shadow_width-1);
-	}
-    }
-
-    function FilledRoundedRectangle($xt,$yt,$xr,$yl,$r=5) {
-	if( $r==0 ) {
-	    $this->FilledRectangle($xt,$yt,$xr,$yl);
-	    return;
-	}
-
-	// To avoid overlapping fillings (which will look strange
-	// when alphablending is enabled) we have no choice but 
-	// to fill the five distinct areas one by one.
-	
-	// Center square
-	$this->FilledRectangle($xt+$r,$yt+$r,$xr-$r,$yl-$r);
-	// Top band
-	$this->FilledRectangle($xt+$r,$yt,$xr-$r,$yt+$r-1);
-	// Bottom band
-	$this->FilledRectangle($xt+$r,$yl-$r+1,$xr-$r,$yl);
-	// Left band
-	$this->FilledRectangle($xt,$yt+$r+1,$xt+$r-1,$yl-$r);
-	// Right band
-	$this->FilledRectangle($xr-$r+1,$yt+$r,$xr,$yl-$r);
-
-	// Topleft & Topright arc
-	$this->FilledArc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-	$this->FilledArc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-	// Bottomleft & Bottom right arc
-	$this->FilledArc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-	$this->FilledArc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-    }
-
-    function RoundedRectangle($xt,$yt,$xr,$yl,$r=5) {    
-
-	if( $r==0 ) {
-	    $this->Rectangle($xt,$yt,$xr,$yl);
-	    return;
-	}
-
-	// Top & Bottom line
-	$this->Line($xt+$r,$yt,$xr-$r,$yt);
-	$this->Line($xt+$r,$yl,$xr-$r,$yl);
-
-	// Left & Right line
-	$this->Line($xt,$yt+$r,$xt,$yl-$r);
-	$this->Line($xr,$yt+$r,$xr,$yl-$r);
-
-	// Topleft & Topright arc
-	$this->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-	$this->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-	// Bottomleft & Bottomright arc
-	$this->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-	$this->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-    }
-
-    function FilledBevel($x1,$y1,$x2,$y2,$depth=2,$color1='white@0.4',$color2='darkgray@0.4') {
-	$this->FilledRectangle($x1,$y1,$x2,$y2);
-	$this->Bevel($x1,$y1,$x2,$y2,$depth,$color1,$color2);
-    }
-
-    function Bevel($x1,$y1,$x2,$y2,$depth=2,$color1='white@0.4',$color2='black@0.5') {
-	$this->PushColor($color1);
-	for( $i=0; $i < $depth; ++$i ) {
-	    $this->Line($x1+$i,$y1+$i,$x1+$i,$y2-$i);
-	    $this->Line($x1+$i,$y1+$i,$x2-$i,$y1+$i);
-	}
-	$this->PopColor();
-	
-	$this->PushColor($color2);
-	for( $i=0; $i < $depth; ++$i ) {
-	    $this->Line($x1+$i,$y2-$i,$x2-$i,$y2-$i);
-	    $this->Line($x2-$i,$y1+$i,$x2-$i,$y2-$i-1);
-	}
-	$this->PopColor();
-    }
-
-    function StyleLineTo($x,$y) {
-	$this->StyleLine($this->lastx,$this->lasty,$x,$y);
-	$this->lastx=$x;
-	$this->lasty=$y;
-    }
-	
-    function LineTo($x,$y) {
-	$this->Line($this->lastx,$this->lasty,$x,$y);
-	$this->lastx=$x;
-	$this->lasty=$y;
-    }
-	
-    function Point($x,$y) {
-	imagesetpixel($this->img,round($x),round($y),$this->current_color);
-    }
-	
-    function Fill($x,$y) {
-	imagefill($this->img,round($x),round($y),$this->current_color);
-    }
-
-    function FillToBorder($x,$y,$aBordColor) {
-	$bc = $this->rgb->allocate($aBordColor);
-	if( $bc == -1 ) {
-	    JpGraphError::RaiseL(25106);//('Image::FillToBorder : Can not allocate more colors');
-	}
-	imagefilltoborder($this->img,round($x),round($y),$bc,$this->current_color);
-    }
-	
-    function DashedLine($x1,$y1,$x2,$y2,$dash_length=1,$dash_space=4) {
-
-	$x1 = round($x1);
-	$x2 = round($x2);
-	$y1 = round($y1);
-	$y2 = round($y2);
-
-	// Code based on, but not identical to, work by Ariel Garza and James Pine
-	$line_length = ceil (sqrt(pow(($x2 - $x1),2) + pow(($y2 - $y1),2)) );
-	$dx = ($line_length) ? ($x2 - $x1) / $line_length : 0;
-	$dy = ($line_length) ? ($y2 - $y1) / $line_length : 0;
-	$lastx = $x1; $lasty = $y1;
-	$xmax = max($x1,$x2);
-	$xmin = min($x1,$x2);
-	$ymax = max($y1,$y2);
-	$ymin = min($y1,$y2);
-	for ($i = 0; $i < $line_length; $i += ($dash_length + $dash_space)) {
-	    $x = ($dash_length * $dx) + $lastx;
-	    $y = ($dash_length * $dy) + $lasty;
-			
-	    // The last section might overshoot so we must take a computational hit
-	    // and check this.
-	    if( $x>$xmax ) $x=$xmax;
-	    if( $y>$ymax ) $y=$ymax;
-			
-	    if( $x<$xmin ) $x=$xmin;
-	    if( $y<$ymin ) $y=$ymin;
-
-	    $this->Line($lastx,$lasty,$x,$y);
-	    $lastx = $x + ($dash_space * $dx);
-	    $lasty = $y + ($dash_space * $dy);
-	} 
-    } 
-
-    function SetExpired($aFlg=true) {
-	$this->expired = $aFlg;
-    }
-	
-    // Generate image header
-    function Headers() {
-	
-	// In case we are running from the command line with the client version of
-	// PHP we can't send any headers.
-	$sapi = php_sapi_name();
-	if( $sapi == 'cli' )
-	    return;
-	
-	if( headers_sent($file,$lineno) ) {
-	    $file=basename($file);
-	    $t = new ErrMsgText();
-	    $msg = $t->Get(10,$file,$lineno);
-	    die($msg);
-	}	
-	
-	if ($this->expired) {
-	    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-	    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
-	    header("Cache-Control: no-cache, must-revalidate");
-	    header("Pragma: no-cache");
-	}
-	header("Content-type: image/$this->img_format");
-    }
-
-    // Adjust image quality for formats that allow this
-    function SetQuality($q) {
-	$this->quality = $q;
-    }
-	
-    // Stream image to browser or to file
-    function Stream($aFile="") {
-	$func="image".$this->img_format;
-	if( $this->img_format=="jpeg" && $this->quality != null ) {
-	    $res = @$func($this->img,$aFile,$this->quality);
-	}
-	else {
-	    if( $aFile != "" ) {
-		$res = @$func($this->img,$aFile);
-		if( !$res )
-		    JpGraphError::RaiseL(25107,$aFile);//("Can't write to file '$aFile'. Check that the process running PHP has enough permission.");
-	    }
-	    else {
-		$res = @$func($this->img);
-		if( !$res )
-		    JpGraphError::RaiseL(25108);//("Can't stream image. This is most likely due to a faulty PHP/GD setup. Try to recompile PHP and use the built-in GD library that comes with PHP.");
-		
-	    }
-	}
-    }
-		
-    // Clear resource tide up by image
-    function Destroy() {
-	imagedestroy($this->img);
-    }
-	
-    // Specify image format. Note depending on your installation
-    // of PHP not all formats may be supported.
-    function SetImgFormat($aFormat,$aQuality=75) {		
-	$this->quality = $aQuality;
-	$aFormat = strtolower($aFormat);
-	$tst = true;
-	$supported = imagetypes();
-	if( $aFormat=="auto" ) {
-	    if( $supported & IMG_PNG )
-		$this->img_format="png";
-	    elseif( $supported & IMG_JPG )
-		$this->img_format="jpeg";
-	    elseif( $supported & IMG_GIF )
-		$this->img_format="gif";
-	    else
-		JpGraphError::RaiseL(25109);//("Your PHP (and GD-lib) installation does not appear to support any known graphic formats. You need to first make sure GD is compiled as a module to PHP. If you also want to use JPEG images you must get the JPEG library. Please see the PHP docs for details.");
-				
-	    return true;
-	}
-	else {
-	    if( $aFormat=="jpeg" || $aFormat=="png" || $aFormat=="gif" ) {
-		if( $aFormat=="jpeg" && !($supported & IMG_JPG) )
-		    $tst=false;
-		elseif( $aFormat=="png" && !($supported & IMG_PNG) ) 
-		    $tst=false;
-		elseif( $aFormat=="gif" && !($supported & IMG_GIF) ) 	
-		    $tst=false;
-		else {
-		    $this->img_format=$aFormat;
-		    return true;
-		}
-	    }
-	    else 
-		$tst=false;
-	    if( !$tst )
-		JpGraphError::RaiseL(25110,$aFormat);//(" Your PHP installation does not support the chosen graphic format: $aFormat");
-	}
-    }	
-} // CLASS
-
-//===================================================
-// CLASS RotImage
-// Description: Exactly as Image but draws the image at
-// a specified angle around a specified rotation point.
-//===================================================
-class RotImage extends Image {
-    var $m=array();
-    var $a=0;
-    var $dx=0,$dy=0,$transx=0,$transy=0; 
-	
-    function RotImage($aWidth,$aHeight,$a=0,$aFormat=DEFAULT_GFORMAT) {
-	$this->Image($aWidth,$aHeight,$aFormat);
-	$this->dx=$this->left_margin+$this->plotwidth/2;
-	$this->dy=$this->top_margin+$this->plotheight/2;
-	$this->SetAngle($a);	
-    }
-	
-    function SetCenter($dx,$dy) {
-	$old_dx = $this->dx;
-	$old_dy = $this->dy;
-	$this->dx=$dx;
-	$this->dy=$dy;
-	$this->SetAngle($this->a);
-	return array($old_dx,$old_dy);
-    }
-	
-    function SetTranslation($dx,$dy) {
-	$old = array($this->transx,$this->transy);
-	$this->transx = $dx;
-	$this->transy = $dy;
-	return $old;
-    }
-
-    function UpdateRotMatrice()  {
-	$a = $this->a;
-	$a *= M_PI/180;
-	$sa=sin($a); $ca=cos($a);		
-	// Create the rotation matrix
-	$this->m[0][0] = $ca;
-	$this->m[0][1] = -$sa;
-	$this->m[0][2] = $this->dx*(1-$ca) + $sa*$this->dy ;
-	$this->m[1][0] = $sa;
-	$this->m[1][1] = $ca;
-	$this->m[1][2] = $this->dy*(1-$ca) - $sa*$this->dx ;
-    }
-
-    function SetAngle($a) {
-	$tmp = $this->a;
-	$this->a = $a;
-	$this->UpdateRotMatrice();
-	return $tmp;
-    }
-
-    function Circle($xc,$yc,$r) {
-	// Circle get's rotated through the Arc() call
-	// made in the parent class
-	parent::Circle($xc,$yc,$r);
-    }
-
-    function FilledCircle($xc,$yc,$r) {
-	// If we use GD1 then Image::FilledCircle will use a 
-	// call to Arc so it will get rotated through the Arc
-	// call.
-	if( $GLOBALS['gd2'] ) {
-	    list($xc,$yc) = $this->Rotate($xc,$yc);
-	}
-	parent::FilledCircle($xc,$yc,$r);
-    }
-	
-    function Arc($xc,$yc,$w,$h,$s,$e) {
-	list($xc,$yc) = $this->Rotate($xc,$yc);
-	$s += $this->a;
-	$e += $this->a;
-	parent::Arc($xc,$yc,$w,$h,$s,$e);
-    }
-
-    function FilledArc($xc,$yc,$w,$h,$s,$e) {
-	list($xc,$yc) = $this->Rotate($xc,$yc);
-	$s += $this->a;
-	$e += $this->a;
-	parent::FilledArc($xc,$yc,$w,$h,$s,$e);
-    }
-
-    function SetMargin($lm,$rm,$tm,$bm) {
-	parent::SetMargin($lm,$rm,$tm,$bm);
-	$this->dx=$this->left_margin+$this->plotwidth/2;
-	$this->dy=$this->top_margin+$this->plotheight/2;
-	$this->UpdateRotMatrice();
-    }
-	
-    function Rotate($x,$y) {
-	// Optimization. Ignore rotation if Angle==0 || ANgle==360
-	if( $this->a == 0 || $this->a == 360 ) {
-	    return array($x + $this->transx, $y + $this->transy );
-	}
-	else {
-	    $x1=round($this->m[0][0]*$x + $this->m[0][1]*$y,1) + $this->m[0][2] + $this->transx;
-	    $y1=round($this->m[1][0]*$x + $this->m[1][1]*$y,1) + $this->m[1][2] + $this->transy;
-	    return array($x1,$y1);
-	}
-    }
-
-    function CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth=-1,$fromHeight=-1,$aMix=100) {
-	list($toX,$toY) = $this->Rotate($toX,$toY);
-	parent::CopyMerge($fromImg,$toX,$toY,$fromX,$fromY,$toWidth,$toHeight,$fromWidth,$fromHeight,$aMix);
-
-    }
-	
-    function ArrRotate($pnts) {
-	$n = count($pnts)-1;
-	for($i=0; $i < $n; $i+=2) {
-	    list ($x,$y) = $this->Rotate($pnts[$i],$pnts[$i+1]);
-	    $pnts[$i] = $x; $pnts[$i+1] = $y;
-	}
-	return $pnts;
-    }
-	
-    function Line($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->Rotate($x1,$y1);
-	list($x2,$y2) = $this->Rotate($x2,$y2);
-	parent::Line($x1,$y1,$x2,$y2);
-    }
-
-    function Rectangle($x1,$y1,$x2,$y2) {
-	// Rectangle uses Line() so it will be rotated through that call
-	parent::Rectangle($x1,$y1,$x2,$y2);
-    }
-	
-    function FilledRectangle($x1,$y1,$x2,$y2) {
-	if( $y1==$y2 || $x1==$x2 )
-	    $this->Line($x1,$y1,$x2,$y2);
-	else 
-	    $this->FilledPolygon(array($x1,$y1,$x2,$y1,$x2,$y2,$x1,$y2));
-    }
-	
-    function Polygon($pnts,$closed=FALSE,$fast=false) {
-	//Polygon uses Line() so it will be rotated through that call
-	parent::Polygon($pnts,$closed,$fast);
-    }
-	
-    function FilledPolygon($pnts) {
-	parent::FilledPolygon($this->ArrRotate($pnts));
-    }
-	
-    function Point($x,$y) {
-	list($xp,$yp) = $this->Rotate($x,$y);
-	parent::Point($xp,$yp);
-    }
-	
-    function StrokeText($x,$y,$txt,$dir=0,$paragraph_align="left",$debug=false) {
-	list($xp,$yp) = $this->Rotate($x,$y);
-	return parent::StrokeText($xp,$yp,$txt,$dir,$paragraph_align,$debug);
-    }
-}
-
-
-?>
diff --git a/nightly-test-server/jpgraph/imgdata_balls.inc b/nightly-test-server/jpgraph/imgdata_balls.inc
deleted file mode 100644
index 7f02c70..0000000
--- a/nightly-test-server/jpgraph/imgdata_balls.inc
+++ /dev/null
@@ -1,1064 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_ROUNDBALLS.INC
-// Description:	Base64 encoded images for small round markers
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Balls extends ImgData {
-    var $name = 'Round Balls';
-    var $an = array(MARK_IMG_LBALL => 'imgdata_large',
-		    MARK_IMG_MBALL => 'imgdata_small',
-		    MARK_IMG_SBALL => 'imgdata_xsmall',
-		    MARK_IMG_BALL => 'imgdata_xsmall');
-    var $colors_1 = array('blue','lightblue','brown','darkgreen',
-			      'green','purple','red','gray','yellow','silver','gray');
-    var $index_1  = array('blue'=>9,'lightblue'=>1,'brown'=>6,'darkgreen'=>7,
-			      'green'=>8,'purple'=>4,'red'=>0,'gray'=>5,'silver'=>3,'yellow'=>2);
-    var $maxidx_1 = 9 ;
-
-    var $colors_2 = array('blue','bluegreen','brown','cyan',
-			  'darkgray','greengray','gray','green',
-			  'greenblue','lightblue','lightred',
-			  'purple','red','white','yellow');
-			  
-	
-    var $index_2 =  array('blue'=>9,'bluegreen'=>13,'brown'=>8,'cyan'=>12,
-			  'darkgray'=>5,'greengray'=>6,'gray'=>2,'green'=>10,
-			  'greenblue'=>3,'lightblue'=>1,'lightred'=>14,
-			  'purple'=>7,'red'=>0,'white'=>11,'yellow'=>4);
-			
-    var $maxidx_2 = 14 ;
-
-
-    var $colors_3 = array('bluegreen','cyan','darkgray','greengray',
-			  'gray','graypurple','green','greenblue','lightblue',
-			  'lightred','navy','orange','purple','red','yellow');
-	
-    var $index_3 = array('bluegreen'=>1,'cyan'=>11,'darkgray'=>14,'greengray'=>10,
-			 'gray'=>3,'graypurple'=>4,'green'=>9,'greenblue'=>7,
-			 'lightblue'=>13,'lightred'=>0,'navy'=>2,'orange'=>12,
-			 'purple'=>8,'red'=>5,'yellow'=>6);
-    var $maxidx_3 = 14 ;
-
-    var $colors,$index,$maxidx;
-    var $imgdata_large ;
-    var $imgdata_small ;
-    var $imgdata_xsmall ;
-
-
-    function GetImg($aMark,$aIdx) {
-	switch( $aMark ) {
-	    case MARK_IMG_SBALL:
-	    case MARK_IMG_BALL:
-		$this->colors = $this->colors_3;
-		$this->index = $this->index_3 ;
-		$this->maxidx = $this->maxidx_3 ;
-		break;
-	    case MARK_IMG_MBALL:
-		$this->colors = $this->colors_2;
-		$this->index = $this->index_2 ;
-		$this->maxidx = $this->maxidx_2 ;
-		break;
-	    default:
-		$this->colors = $this->colors_1;
-		$this->index = $this->index_1 ;
-		$this->maxidx = $this->maxidx_1 ;
-		break;
-	}
-	return parent::GetImg($aMark,$aIdx);
-    }
-
-    function ImgData_Balls() {
-
-//==========================================================
-// File: bl_red.png
-//==========================================================
-	$this->imgdata_large[0][0]= 1072 ;
-	$this->imgdata_large[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAByF'.
-	    'BMVEX/////////xsb/vb3/lIz/hIT/e3v/c3P/c2v/a2v/Y2P/'.
-	    'UlL/Skr/SkL/Qjn/MTH/MSn/KSn/ISH/IRj/GBj/GBD/EBD/EA'.
-	    'j/CAj/CAD/AAD3QkL3MTH3KSn3KSH3GBj3EBD3CAj3AAD1zMzv'.
-	    'QkLvISHvIRjvGBjvEBDvEAjvAADnUlLnSkrnMTnnKSnnIRjnGB'.
-	    'DnEBDnCAjnAADec3PeSkreISHeGBjeGBDeEAjWhITWa2vWUlLW'.
-	    'SkrWISnWGBjWEBDWEAjWCAjWAADOnp7Oa2vOGCHOGBjOGBDOEB'.
-	    'DOCAjOAADJrq7Gt7fGGBjGEBDGCAjGAADEpKS/v7+9QkK9GBC9'.
-	    'EBC9CAi9AAC1e3u1a2u1Skq1KSm1EBC1CAi1AACtEBCtCBCtCA'.
-	    'itAACngYGlCAilAACghIScOTmcCAicAACYgYGUGAiUCAiUAAiU'.
-	    'AACMKSmMEACMAACEa2uEGAiEAAB7GBh7CAB7AABzOTlzGBBzCA'.
-	    'BzAABrSkprOTlrGBhrAABjOTljAABaQkJaOTlaCABaAABSKSlS'.
-	    'GBhSAABKKSlKGBhKAABCGBhCCABCAAA5CAA5AAAxCAAxAAApCA'.
-	    'ApAAAhAAAYAACc9eRyAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkRFD'.
-	    'UHLytKAAAB4UlEQVR4nGNgIAK4mGjrmNq6BmFIWMmISUpKSmk5'.
-	    'B8ZEokj4qoiLiQCBgqald3xaBpKMj6y4sLCQkJCIvIaFV0RaUR'.
-	    'lCSk5cWEiAn19ASN7QwisuraihHiajKyEixM/NwckjoKrvEACU'.
-	    'qumpg7pAUlREiJdNmZmLT9/cMzwps7Smc3I2WEpGUkxYkJuFiY'.
-	    'lTxszePzY1v7Shc2oX2D+K4iLCgjzsrOw8embuYUmZeTVtPVOn'.
-	    'gqSslYAOF+Ln4ZHWtXMPTcjMrWno7J82rRgoZWOsqaCgrqaqqm'.
-	    'fn5peQmlsK1DR52vRaoFSIs5GRoYG5ub27n19CYm5pdVPnxKnT'.
-	    'pjWDpLydnZwcHTz8QxMSEnJLgDL9U6dNnQ6Sio4PDAgICA+PTU'.
-	    'zNzSkph8hADIxKS46Pj0tKTc3MLSksqWrtmQySAjuDIT8rKy0r'.
-	    'Kz+vtLSmur6jb9JUIJgGdjxDQUVRUVFpaUVNQ1NrZ9+kKVOmTZ'.
-	    'k6vR0sldJUAwQNTU2dnX0TgOJTQLrSIYFY2dPW1NbW2TNxwtQp'.
-	    'U6ZMmjJt2rRGWNB3TO7vnzh5MsgSoB6gy7sREdY7bRrQEDAGOb'.
-	    'wXOQW0TJsOEpwClmxBTTbZ7UDVIPkp7dkYaYqhuLa5trYYUxwL'.
-	    'AADzm6uekAAcXAAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bl_bluegreen.png
-//==========================================================
-	$this->imgdata_large[1][0]= 1368 ;
-	$this->imgdata_large[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMMFi8hE9b2uAAABOVJREFUeNq9lk2sJFUVx3+3qv'.
-	    'tW95t57zFvhiFxmCFRUJRoNCQiJARMhiFx/Igxii5goTG6ZDAu'.
-	    '/EhcSCIrTAgLEiKsJ8ywABNZEMJXEDYCukAmjgjzBkK/j35V1d'.
-	    '333FtV97io97pfzwxfG86qcu/N+Z3zP+fcW/Apmfk4hx57+R/6'.
-	    'Rqmc9ykhsWjlsUngAA1fXIQ7b73pI/186IGHnn9dH/8frC8v4I'.
-	    'PiG53uaerR4GmKkv31mB8cyfjd946ZTwR66qVX9OTWIi8UKUv9'.
-	    'BOrZXpYZvFeiBvzI0fgSUSFKwbVG+Pl1V3HH0VvNR4KeeukV/f'.
-	    'PmMmdHhst76aXD64AbeVQ9bjNHaiGOC2o3wLrAb2/4LL/84ffn'.
-	    'fCdzkOdayKpLppBemrBsU5Y1Zdmm9LJdGU6E/t4M24Q26jRDRL'.
-	    'j3mdc49cSTekFsMzs5XuTsyLDUNSDQ25NwKOly9YIl22MYhJr/'.
-	    'uoDtBBoT0CxBRGYOAhibIaOCe//2MpfM6KHnX9cXipSlbkKWmS'.
-	    'nk9iv38J0jixw7vJfrTMYBOvhSoQHJBS09ANELloAGDxW8tfoW'.
-	    'J+5/UC8CPS0LU7r3SpYarr7M8rmFjMPLXT6/33L4si7Z2GCrQC'.
-	    '+0ctlOaNs9DReV8vSLr85ndPLpZ/WNvHW+01kAVFBOGvJx0wYg'.
-	    'Sp47RIQ4Emwa8FGJXlDxSCFo5YlVgAo2hwPue/hRndboTV3EW2'.
-	    'Wp3k6wBp8q56QiWzecW6vwQfnPRkAWhFgILnq08jQ+R2nlUzzN'.
-	    'uES9Q7Vd+9fba7NmWJW61db2247qACmcjxXr45psYphsFGSLBu'.
-	    'kIajxqtjNwHkvAjQt0sg3crhPA2+fPz0CuyNFOghsGsr19mnFg'.
-	    'DGwrRm8UoAtNmQPQtRXDgdC4HImCFEKcCE0oieUWUYq2LtbiGp'.
-	    'mBQmppfIkjw45DK0QNNkvQ0jMBtPL0UnDRM1rN+cxKwzvOo2NP'.
-	    'tykR9a1kfpZNDLMG6QDYJqCTBvUe1+uxs+YKyPoGrTwY2HhvC4'.
-	    'CDWQd5d4xNApNQEEMgjgLdUCLBQ5cprL/trwNwKG2IUmDqDFd5'.
-	    'sr5BWrlxuSdLDFEFlqAzXGc4zFjupqh6uqYihpxJcEgp026l2w'.
-	    '7wFUv7Z6AvrfRo/n0OYzPwIKE3HUKAJg2otMBiElnsF7wngis9'.
-	    '3ZDjNnLi7huCWUZfueZKTu/M0V3HvmkOFDVxVKDG04ScejSgW5'.
-	    'V0q5JYFEghuDLHlTmToqDeGOCKIVtrW9hsdmXufEcNLPSXuPHa'.
-	    'a+bvuh9df5AH/v5PDFmbWQC3Mx+TVvfGVTRB2CodNgT2JBX003'.
-	    'aANZAYS/BxCv32TV/l2C03G7jgmfjGiT/qmeEmibEYm7XzAO2k'.
-	    'A+pbgHhBgydqu54YO5eRiLCy7yDvPP6Xqf+5Z+Lu277OYuOpiw'.
-	    'H15oBmlNOMcmK5RbP+PrEscGU+DSAxdg4CICIkxnLP8aNz63Og'.
-	    'H3/rdvOb795GVhuaYo0oBc3GGrEsUPVTwO6a7LYd+X51x3Hu/t'.
-	    'lP5tS65FN+6okn9U+n/sqb596dTvhOF+02myXTmkQNrOw7yD3H'.
-	    'j14E+UDQjp24/0E9/eKrbA4HH3aMK1b2ccvXvswjv//1J/s5ud'.
-	    'Due/hRPfP+OmfOrk7vrn7a48ihA3zh8CH+8Iuffiw/n4r9H1ZZ'.
-	    '0zz7G56hAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_yellow.png
-//==========================================================
-	$this->imgdata_large[2][0]= 1101 ;
-	$this->imgdata_large[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAB2l'.
-	    'BMVEX//////////+///+f//9b//8b//73//7X//63//6X//5T/'.
-	    '/4z//4T//3P//2v//1r//0r//0L//zH//yn//yH//xj//xD//w'.
-	    'j//wD/90L/9zn/9zH/9xj/9xD/9wj/9wD39yn37zn37zH37yH3'.
-	    '7xD37wj37wDv70Lv50rv50Lv5znv5yHv5xjv5wjv5wDn51Ln5x'.
-	    'Dn3jHn3iHn3hjn3hDn3gje3oze3nPe3lLe1oze1nPe1lLe1ine'.
-	    '1iHe1hje1hDe1gje1gDW1qXW1mvWzqXWzkLWzhjWzhDWzgjWzg'.
-	    'DOzrXOzq3OzpzOzgDOxkrOxinOxhjOxhDOxgjOxgDGxqXGxnvG'.
-	    'xmvGvRjGvRDGvQjGvQDFxbnAvr6/v7+9vaW9vZS9vQi9vQC9tR'.
-	    'C9tQi9tQC7u7W1tZS1tXu1tTG1tQi1rRC1rQi1rQCtrYytrSGt'.
-	    'rQitrQCtpYStpSGtpQitpQClpYSlpXulpQClnBClnAilnACcnG'.
-	    'ucnAicnACclAiclACUlFqUlCmUlAiUlACUjFKUjAiUjACMjFKM'.
-	    'jEqMjACMhACEhACEewB7ezF7exB7ewB7cwBzcylzcwBzaxBzaw'.
-	    'BraxhrawhrawBrYxBrYwBjYwBjWgBaWgBaUgCXBwRMAAAAAXRS'.
-	    'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'.
-	    'LdfvwAAAAHdElNRQfTAwkRFBKiJZ4hAAAB7ElEQVR4nI3S+1vS'.
-	    'UBgHcB67WJmIMWAVdDHEDLBC6Go0slj3Ft0m9RRBWQEmFZFDEM'.
-	    'Qgt0EMFBY7p/+198hj1kM/9N1+++x73rOd6XT/kStnTx4fPzd9'.
-	    'uwfOjFhomj7smAhwj/6Cm2O0xUwy6g7cCL99uCW3jtBmE7lsdr'.
-	    'fvejgpzP7uEDFRRoqy2k8xQPnypo2BUMP6waF9Vpf3ciiSzErL'.
-	    'XTkPc0zDe3bsHDAcc00yoVgqL3UWN2iENpspff+2vn6D0+NnZ9'.
-	    '6lC5K6RuSqBTZn1O/a3rd7v/MSez+WyIpVFX8GuuCA9SjD4N6B'.
-	    'oRNTfo5PCAVR0fBXoIuOQzab1XjwwNHx00GOj8/nKtV1DdeArk'.
-	    '24R+0ul9PjmbrHPYl+EipyU0OoQSjg8/m83kl/MMhx0fjCkqio'.
-	    'SMOE7t4JMAzDsizH81AqSdW2hroLPg4/CEF4PhKNx98vlevrbY'.
-	    'QQXgV6kXwVfjkTiSXmhYVcSa7DIE1DOENe7GM6lUym0l+EXKks'.
-	    'K20VAeH2M0JvVgrZfL5Qqkiy0lRVaMBd7H7EZUmsiJJcrTdVja'.
-	    'wGpdbTLj3/3qwrUOjAfGgg4LnNA5tdQx14Hm00QFBm65hfNzAm'.
-	    '+yIFhFtzuj+z2MI/MQn6Uez5pz4Ua41G7VumB/6RX4zMr1TKBr'.
-	    'SXAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_silver.png
-//==========================================================
-	$this->imgdata_large[3][0]= 1481 ;
-	$this->imgdata_large[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAADAF'.
-	    'BMVEUAAADOzs7Gxsa9vb21tbXOxsbOzsbGzsb3///O1ta1vb2c'.
-	    'paVSWlpKWlpSY2ve5+97hIze7/9aY2vO5/9zhJRaa3tSY3PGzt'.
-	    'aMlJxrc3tja3NKUlpCSlK1vcZze4RSWmPW5/+Upb3G3v9zhJxS'.
-	    'Y3t7jKVaa4TO3veltc6ElK1re5Rjc4ycpbV7hJRaY3M5QlLn7/'.
-	    '/Gzt6lrb2EjJzO3v9ja3vG1ve9zu+1xueltdacrc6UpcaMnL1C'.
-	    'SlqElLV7jK1zhKVre5zW3u/O1ue1vc6ttcaMlKVze4xrc4RSWm'.
-	    'tKUmPG1v+9zve1xu+tveeltd6crdbe5/+9xt6cpb17hJxaY3s5'.
-	    'QlrW3vfO1u/Gzue1vdattc6lrcaUnLWMlK2EjKVze5Rrc4xja4'.
-	    'RSWnNKUmtCSmO9xuecpcZ7hKVaY4TW3v/O1vfGzu+1vd6ttdal'.
-	    'rc69xu+UnL2MlLWEjK1ze5xrc5R7hK1ja4zO1v+1veettd6lrd'.
-	    'aMlL3Gzv/39//W1t7Gxs61tb29vcatrbWlpa2cnKWUlJyEhIx7'.
-	    'e4TW1ufGxta1tcZSUlqcnK3W1u+UlKW9vda1tc57e4ytrcalpb'.
-	    '1ra3vOzu9jY3OUlK29vd6MjKWEhJxaWmtSUmNzc4xKSlpjY3tK'.
-	    'SmNCQlqUjJzOxs7///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'.
-	    'AAAAAAAAAAAAAAAAAAAAAAAAD///9fnkWVAAAAAnRSTlP/AOW3'.
-	    'MEoAAAABYktHRP+lB/LFAAAACXBIWXMAAABFAAAARQBP+QatAA'.
-	    'AB/klEQVR42mNgxAsYqCdd3+lcb4hLmj8wMMvEu8DCMqYbU9op'.
-	    'UEFB2MTb26eyysomFl06XEEhUCHLpAKo2z/fujikEUVaXUFBMB'.
-	    'BouLePuV+VVWGRciIXknSEsImCQd3//xwmPr65llaFcSFJHkjS'.
-	    '3iYmWUDZ//8NfCr989NjNUMSUyTg0jneSiaCINn/gmlVQM12qg'.
-	    'lJnp5waTMTE5NAkCyHWZW/lXWNfUlikmdYK0zax7siS4EDKJtd'.
-	    'mQeU1XRwLBdLkRGASucWmGVnZ4dnhZvn5lmm29iVOWpnJqcuko'.
-	    'JKR1Wm5eTkRKYF5eblp9sU2ZeUJiV7zbfVg0pH56UFBQXNjIqK'.
-	    'jgkujItX1koKTVmYajsdKu2qETVhwgSXiUDZ2Bn9xqUeoZ5e0t'.
-	    'LzYYZ3B092ndjtOnmKTmycW1s7SHa+l5dtB8zlccE6RlN0dGbM'.
-	    'mDVbd5KupNBcL6+F82XgHouLj5vRP2PWLGNdd4+ppnxe8tJec6'.
-	    'XnNsKkm0uVQ5RDRHQTPTym68nPlZbvkfYCexsa5rpJ2qXa5Umm'.
-	    'ocmec3m8vHjmSs+fgxyhC5JDQ8WSPT2lvbzm8vDIe0nbtiBLN8'.
-	    '8BigNdu1B6Lsje+fPbUFMLi5TMfGmvHi/puUAv23q2YCTFNqH5'.
-	    'MvPnSwPh3HasCbm3XUpv+nS5VtrkEkwAANSTpGHdye9PAAAASn'.
-	    'RFWHRzaWduYXR1cmUANGJkODkyYmE4MWZhNTk4MTIyNDJjNjUx'.
-	    'NzZhY2UxMDAzOGFhZjdhZWIyNzliNTM2ZGFmZDlkM2RiNDU3Zm'.
-	    'NlNT9CliMAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bl_purple.png
-//==========================================================
-	$this->imgdata_large[4][0]= 1149 ;
-	$this->imgdata_large[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAACAV'.
-	    'BMVEX/////////7///5///1v//xv//rf//pf//lP//jP//hP//'.
-	    'c///a///Wv//Wvf/Uv//Sv//Qv//Qvf/Off/Mf//Kf//If//If'.
-	    'f/GP//GPf/EP//EPf/CP//CPf/CO//AP//APf3Oe/3Kff3Ke/3'.
-	    'Ie/3GO/3EO/3AO/vSu/vSufvOefvMefvIefvGOfvEOfvCOfvAO'.
-	    'fnUufnSufnMd7nId7nGN7nGNbnEN7nCN7nAN7ejN7ejNbec97e'.
-	    'c9beUtbeQtbeIdbeGNbeENbeCNbeANbWpdbWa9bWQs7WGM7WEM'.
-	    '7WCM7WAM7Otc7Orc7OnM7OSsbOIb3OGMbOEMbOCMbOAM7OAMbG'.
-	    'pcbGnMbGe8bGa8bGKbXGEL3GCL3GAL3FucXBu73AvsC/v7+9pb'.
-	    '29Ka29GLW9ELW9CLW9AL29ALW5rrm1lLW1e7W1MbW1GKW1EK21'.
-	    'CLW1CK21AK2tjK2thKWtMaWtIaWtGJytCK2tCKWtAK2tAKWlhK'.
-	    'Wle6WlEJylCJylAKWlAJyca5ycGJScEJScCJScAJycAJSUWpSU'.
-	    'UoyUKZSUEIyUCIyUAJSUAIyMUoyMSoyMIYSMEISMCISMAIyMAI'.
-	    'SECHuEAISEAHt7MXt7EHt7CHt7AHt7AHNzKXNzEGtzAHNzAGtr'.
-	    'GGtrEGNrCGtrAGtrAGNjCFpjAGNjAFpaAFpaAFIpZn4bAAAAAX'.
-	    'RSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsS'.
-	    'AdLdfvwAAAAHdElNRQfTAwkRFB0ymoOwAAAB9UlEQVR4nGNgIA'.
-	    'K42hhqGtm5+WFIWClKycvLK6gbuARGoEj4aMjLSElISUir6Tt7'.
-	    'x+aEIWR8leQlwEBSTc/CK7awLguuR0lGQkJMVFRUTFJVzwko1d'.
-	    'oFk9OQl5IQE+Dh5hVR0TV3CkkvbJgyASJjDZIR5GBl5eRX0TH1'.
-	    'DEqrbJ2ypBEspSgvJSXKw8bMxMavbOLoGZNf1TZlybw4oIyfLN'.
-	    'BxotxsLEzsQiaOHkFpBQ2905esrAZK2SpIAaUEuDm5+LTNPAKj'.
-	    'C+pbps1evrIDKGWnLictKSkuLKyoZQyUya9o7Z2+YMXKGUApew'.
-	    'M9PTVdXR0TEwf3wOjUirruafOXL18xFyjl72Kpb25qaurg4REU'.
-	    'EFVe2zJ5zpLlK1aCpbydnZ2dnDwDA6NTopLLeiZNXbB8BcTAyP'.
-	    'TQ0JDg4KCY1NS83JKmiVOBepYvX9UPlAovzEiPSU/LLyior2vq'.
-	    'mjZr3vLlIF01IC+XVhUWFlZW1Lc290ycOGfxohVATSsXx4Oksn'.
-	    'vaWlsb2tq6J0+bM2/RohVA81asbIcEYueU3t7JU6ZNnwNyGkhm'.
-	    '+cp5CRCppJnzZ8+ZM3/JUogECBbBIixr8Yqly8FCy8F6ltUgoj'.
-	    'lz7sqVK2ByK+cVMSCDxoUrwWDVysXt8WhJKqG4Y8bcuTP6qrGk'.
-	    'QwwAABiMu7T4HMi4AAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_gray.png
-//==========================================================
-	$this->imgdata_large[5][0]= 905 ;
-	$this->imgdata_large[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAABO1'.
-	    'BMVEX////////3///39/fv7+/e5+fW3t7Wzs7WxsbG1tbGzsbG'.
-	    'xsbDxMS/v7++wMC+v7+9zsa9xsa9vb29tbW9ra29pa24uLi1xs'.
-	    'a1vb21tbWxtrattbWmpqalra2cra2cpaWcnJycjIyUpaWUnJyU'.
-	    'lJSUjIyMnJyMnJSMlJSMlIyMjJSMjIyElJSElIyEjIyEhIR7jI'.
-	    'x7hIR7hHt7e3t7e3N7e2tzhIRze3tze3Nzc3Nre3trc3Nrc2tr'.
-	    'a2tjc3Njc2tja3Nja2tjY2NjWlpaa2taY2taY2NaY1paWlpaUl'.
-	    'JSY2NSY1pSWlpSWlJSUlJSUkpKWlpKWlJKUlpKUlJKUkpKSkpK'.
-	    'SkJCUlJCUkJCSkpCSkJCQkI5Sko5QkI5Qjk5OUI5OTkxQkIxOT'.
-	    'kxMTkxMTEpMTEhMTEhKSkYISEpy7AFAAAAAXRSTlMAQObYZgAA'.
-	    'AAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdE'.
-	    'lNRQfTAwkRFQfW40uLAAABx0lEQVR4nI3SbXfSMBQA4NV3nce5'.
-	    'TecAHUywRMHSgFuBCFsQUqwBS1OsWQh0GTj//y8wZUzdwQ/efM'.
-	    'tzcm/uuXdj4z9ic/PR9k4qk1qDnf0X2/uZzKt8GaRvSubg4LVp'.
-	    'mkWzCGAT/i3Zsm2XNQHLsm2n2937LaaNnGoJFAEo27B50qN0ay'.
-	    'Wg26lXsw8fP8nmzcJb2CbsnF5JmmCE8ncN404KvLfsYwd7/MdV'.
-	    'Pdgl/VbKMIzbuwVgVZw2JlSKJTVJ3609vWUY957lgAUd1KNcqr'.
-	    'yWnOcOPn8q7d5/8PywAqsOOiVDrn42NFk+HQ7dVuXNYeFdBTpN'.
-	    'nY5JdZl8xI5Y+HXYaTVqEDp1hAnRohZM03EUjMdhn5wghOoNnD'.
-	    'wSK7KiiDPqEtz+iD4ctdyAifNYzUnScBSxwPd6GLfRURW7Ay5i'.
-	    'pS5bmrY8348C5vvUI+TLiIVSJrVA0heK/GDkJxYMRoyfCSmk4s'.
-	    'uWc3yic/oBo4yF374LGQs5Xw0GyQljI8bYmEsxVUoKxa6HMpAT'.
-	    'vgyhU2mR8uU1pXmsa8ezqb6U4mwWF/5MeY8uLtQ0nmmQ8UWYvb'.
-	    'EcJaYWar7QhztrO5Wr4Q4hDbAG/4hfTAF2iCiWrCEAAAAASUVO'.
-	    'RK5CYII=' ; 
-
-//==========================================================
-// File: bl_brown.png
-//==========================================================
-	$this->imgdata_large[6][0]= 1053 ;
-	$this->imgdata_large[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABkAAAAZCAMAAADzN3VRAAABoV'.
-	    'BMVEX////Gzs7GvbXGrZTGpXu9nHO1nHO1nIy9taXGxs7GtaXO'.
-	    'nHPGlFrGjEq9hEq1hEqte0Klczmcazmce1KtnIzGxsbGvb3OlF'.
-	    'LOlFq9hFKte0qcc0KUYzGEWimMc1K9ta3OnGvOnGPWnGO9jFq9'.
-	    'jFKlc0KUazmMYzl7UilzUjGtpZzGxr3GnGPWpWvepXO1hFJ7Wj'.
-	    'FrSiFjUjG1ra3GnHPvxpT/5733zpythFKUa0KEYzlzUilaOSF7'.
-	    'Wjm9jErvvYz/99b///f/78bnrYS1hFqle0p7UjFrSiljQiFCMR'.
-	    'iMhHO9lGvGjFLWnGv/3q3////erXuthEqlc0paQiFKMRhSQin/'.
-	    '1qX/997//++cc0pjSilaQilKORhCKRiclIy9pYzGlGPntYT33q'.
-	    '3vvZSEWjlSOSE5KRB7c2O1lHutczmthFqte1JrWkqtjGtCKRBa'.
-	    'SjmljGuca0KMYzGMaznOztaclISUYzmEWjFKOSF7a1qEYzFaSi'.
-	    'GUjISEa0pKOSm9vb2llIxaQhg5IQiEc2tzY0paORilnJy1raVS'.
-	    'OSljUkJjWkKTpvQWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'.
-	    'gAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkREiei'.
-	    'zP2EAAAB9UlEQVR4nGWS/VfSUBjHL5QluhhBxtwyWcCus5Blpm'.
-	    'wDC4ONaWXCyBi7RMZmpQ2Bypm9W/byV3cHHo/W88s95/s5z/d5'.
-	    'uwCcCh/4L3zAf+bs0NC588On9QAYGSUuBINk6GI4cmnsBLk8Go'.
-	    '1SFEGMkzRzZeLq5JE8FvDHouw1lqXiCZJOcnCKnx4AcP0GBqmZ'.
-	    'mRgRT9MMB4Wbs7cGSXNRik3dnp9fiMUzNCNKgpzN9bsaWaQo9s'.
-	    '7dfH7pXiFTZCBU1JK27LmtBO8TDx7mV1eXHqXXyiIUFLWiVzHx'.
-	    'BxcJIvV4/cn6wkqmWOOwmVE3UQOAp6HxRKL5bGPj+VwhUhalFq'.
-	    '8alm5vAt+LlySZTsebzcKrraIIW4JqZC3N3ga+1+EQTZKZta1M'.
-	    'pCZCSeDViqVrThsEdsLJZLJYLpZrHVGScrKBvTQNtQHY6XIM02'.
-	    'E6Ik7odRW1Dzy3N28n3kGuB3tQagm7UMBFXI/sATAs7L5vdbEs'.
-	    '8Lycm923NB0j5wMe6KOsKIIyxcuqauxbrmlqyEWfPmPy5assY1'.
-	    'U1SvWKZWom9nK/HfQ3+v2HYZSMStayTNN0PYKqg11P1nWsWq7u'.
-	    '4gJeY8g9PLrddNXRdW8Iryv86I3ja/9s26gvukhDdvUQnIjlKr'.
-	    'IdZCNH+3Xw779qbG63f//ZOzb6C4+ofdbzERrSAAAAAElFTkSu'.
-	    'QmCC' ; 
-
-//==========================================================
-// File: bl_darkgreen.png
-//==========================================================
-	$this->imgdata_large[7][0]= 1113 ;
-	$this->imgdata_large[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAB2l'.
-	    'BMVEX////////3///v///n/+/e99bW/+/W99bO786/v7++vr69'.
-	    '/96999a7wb24vbu1/9a1zqW1u7itxrWosq6l772l1qWlxrWlxq'.
-	    '2lva2cxpSU562U3q2UxqWUvaWUpZyM77WM57WMvYyMtZyMrZyM'.
-	    'pZSMnJSEvZyEtYyErZSElIx7zpR7xpx7xpR7vZR7jIRz1pRzxp'.
-	    'RzjIRrzpRrzoxrxoxrtYRrrYxrrXtrpYRrhHNjzoxjxoxjxoRj'.
-	    'vYRjtYRjrXtjpXtjlGNje2tazoxazoRaxoxaxoRavYRatYRatX'.
-	    'tarXtapXNanHNajFpae2tSzoRSxoRSvXtStXtSrXtSrXNSpXNS'.
-	    'nHNSnGtSlGtSlGNSjGtSjGNKvXtKtXNKrXNKpWtKnGtKlGNKjG'.
-	    'NKhGNKhFJKc1pKa1JCrWtCpWtCnGtClGNCjGNCjFpChFpCe1JC'.
-	    'a1JCY1I5pWs5nGM5lGM5jFo5hFo5e1o5c0o5WkoxjFoxhFoxhF'.
-	    'Ixe1Ixc1Ixc0oxa0ophFIpe0opc0opa0opa0IpY0IpWkIpWjkp'.
-	    'UkIpUjkhc0oha0IhY0IhWjkhWjEhUjkhUjEhSjEhSikhQjEhQi'.
-	    'kYWjkYSjEYSikYQjEYQikQSikQQikQQiEQOSExf8saAAAAAXRS'.
-	    'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'.
-	    'LdfvwAAAAHdElNRQfTAwkRFCaDkWqUAAAB+ElEQVR4nI3S+1vS'.
-	    'UBgHcGZlPV0ks/vFrmQWFimJjiwiYUJWjFBWFhClyZCy5hLrwA'.
-	    'x2EIwJC1w7zf2vnU0re+iHvs9++7x7zznvORbLf+TA6ct9fYMX'.
-	    'jrfAUYefpp+/iM1ykxf/lmuhUZ/PTwXC8dml5Wcd23o5H5Mk6b'.
-	    '5NUU8icXbhS67rNzn9JDnguOEYGQtEEtwC+Crs3RJ76P5A/znr'.
-	    'vsNX7wQnEiwHCtK7TTkW8rvdZ9uJtvZTLkxpHhSrP66bNEj7/P'.
-	    '3WNoLYeeSWQQCIpe9lQw7RNEU5rDsIYtcJ14Nocg7kRUlBNkxn'.
-	    'YmGKcp7cv3vPwR7XOJPmc0VYU3Sv0e9NOBAYG7Hbz/cMjTMveZ'.
-	    'CHkqxuTBv0PhYJB4N3XR6PJ5rMAPMnpGUxDX1IxSeMTEaZp1OZ'.
-	    'nGAIQiYtsalUIhFlmGTy3sO3AizJCKn6DKYryxzHsWyaneMzr6'.
-	    'cWxRVZVlFTe4SpE3zm+U/4+whyiwJcWVMQNr3XONirVWAklxcE'.
-	    'EdbqchPhjhVzGpeqhUKhWBQhLElr9fo3pDaQPrw5xOl1CGG1JE'.
-	    'k1uYEBIVkrb02+o6RItfq6rBhbw/tuINT96766KhuqYpY3UFPF'.
-	    'BbY/19yZ1XF1U0UNBa9T7rZsz80K0jWk6bpWGW55UzbvTHZ+3t'.
-	    'vbAv/IT+K1uCmhIrKJAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bl_green.png
-//==========================================================
-	$this->imgdata_large[8][0]= 1484 ;
-	$this->imgdata_large[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAYAAACpSkzOAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMMFjM4kcoDJQAABVlJREFUeNq9ll2MJFUVx3/11V'.
-	    'Vd/TE9vU0v4zLDwJIF16jBqLAPhsRXEiDqg0QTJiQSjcSNvCzw'.
-	    'sBEDDxizhvAAxBgf1oR9QF9NiE9ESFZkQyZB5WtddmdnZ3qqqr'.
-	    'uqbt367Cofqu3ZZpWVaDzJfbkf53//55z/PVdZXV3l/2H6f7Lp'.
-	    '5VdOV/4Nb+GmHpUeA7AdBNxc3kafNb73jRPK9Xwon8ToxVefqU'.
-	    'b91wibH5EkCQBCizFihTSviHUHR0hWws9xe3wvJ7/7nPKpgX5y'.
-	    '9oFqt3eOgWniRBoAbUBGGqZUibSYaeoT2B5bnkdaSA6793Cv/S'.
-	    'QPPbihXBfo5VdOV+8dfgnvwAU62YH5fCZ12sDujFkwyegCqTrB'.
-	    'iUOKTOJKj8jr88jS8zy6cXwBTP048nuHX0I0nDlIp7RpTG7kM0'.
-	    'sdyAYsTVukUuWGhlWHMq0ITL92lnUp9R1Obz/GmTNnqn9bDD8/'.
-	    '+0D1oX0O0zQZZDYCsK2j3Gl9jQqDfHiei8GfiKVLlsZkJaBAN1'.
-	    '0i6PgwUbB0GxG5/PrtE/xLRr959Znqw9452oVNI+jiJhnr1pe4'.
-	    'k29zB1/nFr5Kj7tpt1YYhJ0FJ7nUYbcJQBgahN2MzeCP/OipR6'.
-	    'prgN6Qr6ELFQFUWoRpNVjlKwxZB8DCpE+PtfEKqV1cUzxpVudu'.
-	    'GTBHA5Y1g99e+dUio9O/P1Vpq+/WE5GGjDSMoAtAQjrf3C52IP'.
-	    'QxpY4WK2hpReka9Gfrhqgz0bACRoCWjDh56kQ1z9FeuUUQxVhK'.
-	    'B92sD1VahM+bAJgcoJhGjP/6Ln8rAgDiRCVRKiIzxMkkodBJ85'.
-	    'im1IlEHbE4k1xyNveL4YP8HarmGJIOpqyjeQmfNHmTvnqZTWBt'.
-	    'vIJXpPwlukJSuSTKGK3pEwtJmiX00ZlInTyNscImO6XBITvH1c'.
-	    '8vVt2OucdKvIyeKRTNCivsEMgcpg6taYs30nfq0Gqg6hOSSFJ4'.
-	    'BSnJPht0IqEjWmOGocEI6F0J94F0qaL6BntTF0MtUfweKQKAPU'.
-	    'Wwp4OcVnQAmVb0p9DLOzjEhEKnGRmoRc7EzRGlwA6NujAKG4yP'.
-	    '6Sjwc4aVznZ7DK0xXdkDoJf0kGmFBniFBOBGcZSCCSKd0IwN0k'.
-	    'IS+QZWCGVZex4BnUxya3+Zt9iugQbcRFpIAtuHvAZulPUdLhUJ'.
-	    'RqegI3WcqaSXddlT3idsWMSRRGkEtNwmyTifAwyBo7LP+11J0e'.
-	    '7tM7pZOYblHkBLcqZ5LcYtw6Wbd4CM3SpE9foYZsIHoqDKCrbz'.
-	    'mLSQtPwmuhXgtBLs0GBdbXOhFGB7WBKO2F8GXt9/VO97Ya3atF'.
-	    '7nUHnwGjGGQqcPxFEdFqURkEidiZszAERoYIsGju1hq21kWee3'.
-	    'bw15+8WpsvAy3K1+i3JkkhZyPpxxjjPOsfOYiZ+TFhLPzQnHOU'.
-	    'tpzGB2dgA4tscIkKIx19Cxg/fPL7vQJu47eXt1VvsDK8pwPueZ'.
-	    'PuZoQMOqhRoJHSs0kKLBWjvjYinmeQGw1TaX1RFdfZ3LMzYLjA'.
-	    'C++dkn6AaH2Nobk6cxEzdnuG0TdC8zvdJkN0hqkFkO/jwL0fxa'.
-	    'so8sBcuFzQ+/+MRC+BeAHnpwQzn++ee5KT9Eshuy46dcKAXm32'.
-	    '0uzPQhS4GttkH2GQID2Wc0Y4LtAbDxhZ/x5A+e/uTG9+jGceXH'.
-	    '9/ySnnIXnUzOxXe1038mW3ZynNmam4yYWkO+f9cv+Oljz16/lV'.
-	    '9tDz/9nerc1hm8ZEScSRK7VvtYl1i1dklsOKyvc+zg/bzw1O8+'.
-	    '/efkajt56kR1ydlEJBc5H46xzbrJ3dY9wrB7hGcff+6/+279L+'.
-	    '0fHxyiE8XMLl4AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bl_blue.png
-//==========================================================
-	$this->imgdata_large[9][0]= 1169 ;
-	$this->imgdata_large[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAACEF'.
-	    'BMVEX/////////7//35//v1v/exv/Wvf/Wrf/Wpf/Orf+/v7+9'.
-	    'tc69jP+9hP+5ucW1tc6tlP+rq7Wlpdalpcalpb2cnM6cnMacc/'.
-	    '+cWv+UlLWUjN6UjK2Uc/+Ma/+MUv+EhKWEa/+EQvd7e8Z7e7V7'.
-	    'e6V7c957Wv9za9Zza8ZzSv9ra5xrSv9rOf9rMe9jUudjQv9jOe'.
-	    '9aWpRaUt5aUpRaSu9aSudSUoxSSs5SSoxSMf9KQtZKOfdKMedK'.
-	    'Kf9KKe9CKf9CKb1CKa1CIfdCIedCId45MXs5Kfc5If85Iec5Id'.
-	    'Y5GP8xMbUxMXsxKc4xKZQxIf8xGP8xGO8xGN4xGNYxGL0xGK0p'.
-	    'KXMpIYwpGP8pGO8pGOcpGNYpGM4pEP8pEPcpEOcpEN4pENYpEM'.
-	    'YpEL0hGKUhEP8hEPchEO8hEOchEN4hENYhEM4hEMYhELUhCP8h'.
-	    'CO8hCN4YGJwYGGsYEL0YEK0YEHMYCN4YCM4YCMYYCL0YCKUYAP'.
-	    '8QEJQQEIwQEHsQEGsQCM4QCLUQCK0QCKUQCJwQCJQQCIwQCHMQ'.
-	    'CGsQAP8QAPcQAO8QAOcQAN4QANYQAM4QAMYQAL0QALUQAKUQAJ'.
-	    'QQAIQICGsICGMIAO8IANYIAL0IALUIAK0IAKUIAJwIAJQIAIwI'.
-	    'AIQIAHsIAHMIAGsIAGMAAN4AAMYAAK0AAJQAAIwAAIQAAHMAAG'.
-	    'sAAGMAAFrR1dDlAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkRFRPMOZ'.
-	    '/2AAAB+klEQVR4nGNgIAIIqeqZmBqpi2JISNml5lVXV3d198Yo'.
-	    'oUjwm1SnxsbGRsSm5ZfNXO4tjCTjVh0ABhFx6QV9E1Y0S8JkuN'.
-	    '3yAgLc7W3t/QPi4jPKJ8ye1yoIlTKpjvVy15eVUbN0i4zKLJ8w'.
-	    'ae6qcKgLqmMj3PUFWFl5NJ0CExLLJzbNW7BWCyxlXR0ba6/Axs'.
-	    'zELmfnkRBT0QiSKgXJCOflxUbYy3KyMHEoOrtEZ1c2TZ6/cMl6'.
-	    'eaCUamdsbIC7tjgPr4SBS3BMMVDTwkXr1hsDpYy6UmMj/O0tdX'.
-	    'QNbDxjknJLWqYsXLx0vStQynxGflpkZGCgs7Onp29SbtNkoMy6'.
-	    'pevCgFJWy3oyMuKjgoKCPWNCvEuqWhcsWrJ06XqQlPnMvrKyrM'.
-	    'TomJjkZAfHlNa2qdOWrlu63gcopbG8v7+hvLwip7g4JdSxsLZu'.
-	    '8dKlS9ettwBKic2eNXHChIkTG5tKqgpr2uo6loLAehWQx0LnzJ'.
-	    '49p6mpeXLLlNq6RUvqly6dvnR9Bx9ISnnlvLmT582bMr9t4aL2'.
-	    '+vrp60GaDCGB6Ld6wfwFCxYCJZYsXQ+SmL6+FBryInVrFi1atH'.
-	    'jJkqVQsH6pNCzCJNvXrQW6CmQJREYFEc2CYevXrwMLAyXXl0oz'.
-	    'IAOt0vVQUGSIkabkDV3DwlzNVDAksAAAfUbNQRCwr88AAAAASU'.
-	    'VORK5CYII=' ; 
-
-//==========================================================
-// File: bs_red.png
-//==========================================================
-	$this->imgdata_small[0][0]= 437 ;
-	$this->imgdata_small[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAk1'.
-	    'BMVEX////////GxsbGra3/xsbOhITWhIT/hIT/e3v/c3P/a2vG'.
-	    'UlK1SkrOUlL/Y2PWUlLGSkrnUlLeSkrnSkr/SkqEGBj/KSmlGB'.
-	    'jeGBjvGBj3GBj/EBD/CAj/AAD3AADvAADnAADeAADWAADOAADG'.
-	    'AAC9AAC1AACtAAClAACcAACUAACMAACEAAB7AABzAABrAABjAA'.
-	    'BuukXBAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGDNEMgOYAAAAm0'.
-	    'lEQVR4nI3Q3RKCIBAFYGZMy9RKzX7MVUAUlQTe/+kS0K49d3wD'.
-	    '7JlFaG+CvIR3FvzPXgpLatxevVVS+Jzv0BDGk/UJwOkQ1ph2g/'.
-	    'Ct5ACX4wNT1o/zzUoJUFUGBiGfVnDTYGJgmrWy8iKEtp0Bpd2d'.
-	    'jLGu56MB7f4JOOfDJAwoNwslk/jOUi+Jts6RVNrC1hkhPy50Ef'.
-	    'u79/ADQMQSGQ8bBywAAAAASUVORK5CYII=' ; 
-
-
-//==========================================================
-// File: bs_lightblue.png
-//==========================================================
-	$this->imgdata_small[1][0]= 657 ;
-	$this->imgdata_small[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABVl'.
-	    'BMVEX////////d///AwMC7wcS08P+y+P+xxdCwxM+uws2twMur'.
-	    'vsinzNynytylzuKhyN6e5v6d5P+d1fOcwNWcu8ub4f+at8iZ3v'.
-	    '+ZvdGY2/yW2f+VscGU1vuT1fqTr72Sx+SSxeKR0fWRz/GPz/OP'.
-	    'rr+OyeqMy+6Myu2LyeyKxueJudSGw+SGorGDvt+Cvd6CvN2Aud'.
-	    'p+uNd+t9Z9tdV8tdR8tNN6sc94r813rct2q8h0qcZ0qMVzp8Rx'.
-	    'o8Bwor5tn7ptnrptnrlsnbhqmbRpmbNpi51ol7Flkqtkkqtkka'.
-	    'pjj6hijaRhjaZgi6NfiqJfiaFdh55bhJtag5pZgphYgJZYf5VX'.
-	    'cn9Ve5FSeI1RdopRdYlQdYlPc4dPcoZPcoVNcINLboBLbH9GZn'.
-	    'hGZXdFZHZEY3RDYnJCXW4/W2s/WWg+Wmo7VmU7VGM7U2E6VGM6'.
-	    'VGI5UV82T1wGxheQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'.
-	    'gAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGTok'.
-	    '9Yp9AAAAtElEQVR4nGNgIBaw8wkpKghzwvksPAKiUsraprYiLF'.
-	    'ARXkE2JiZ1PXMHXzGIAIekOFBE08TGLTCOCyzCLyvDxsZqZOnk'.
-	    'E56kAhaRV9NQUjW2tPcMjs9wBYsY6Oobmlk7egRGpxZmgkW0zC'.
-	    '2s7Jy9giKT8gohaiQcnVzc/UNjkrMLCyHmcHr7BYREJKTlFxbm'.
-	    'QOxiEIuKTUzJKgQCaZibpdOzQfwCOZibGRi4dcJyw3S4iQ4HAL'.
-	    'qvIlIAMH7YAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_gray.png
-//==========================================================
-	$this->imgdata_small[2][0]= 550 ;
-	$this->imgdata_small[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAMAAADH72RtAAABI1'.
-	    'BMVEX///8AAAD8EAD8IAD8NAD8RAD8VAAYGBi/v7+goKCCgoJk'.
-	    'ZGRGRkb8yAD83AD87AD8/AD4+ADo+ADY+ADI+AC0+ACk+ACU+A'.
-	    'CE+AB0/ABk/ABU/ABE/AAw/AAg/AAQ/AAA/AAA+AAA6BAA2CAA'.
-	    'yDQAtEQApFQAlGQAhHQAdIgAZJgAVKgARLgAMMgAINwAEOwAAP'.
-	    'wAAPgIAPAQAOgYAOAkANgsANA0AMg8AMBEALhMALBUAKhcAKBo'.
-	    'AJhwAJB4AIiAAID////4+Pjy8vLs7Ozm5ubg4ODa2trT09PNzc'.
-	    '3Hx8fBwcG7u7u1tbWurq6oqKiioqKcnJyWlpaQkJCJiYmDg4N9'.
-	    'fX13d3dxcXFra2tkZGReXl5YWFhSUlJMTExGRkZAQEA1BLn4AA'.
-	    'AAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIA'.
-	    'AAsSAdLdfvwAAAAHdElNRQfTAwkUGiIctEHoAAAAfElEQVR4nI'.
-	    '2N2xKDIAwF+bZ2kAa8cNFosBD//yvKWGh9dN+yk9kjxH28R7ze'.
-	    'wzBOYSX6CaNB927Z9qZ66KTSNmBM7UU9Hx2c5qjmJaWCaV5j4t'.
-	    'o1ANr40sn5a+x4biElrqHgrXMeac/c1nEpFHG0LSFoo/jO/BeF'.
-	    'lJnFbT58ayUf0BpA8wAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bs_greenblue.png
-//==========================================================
-	$this->imgdata_small[3][0]= 503 ;
-	$this->imgdata_small[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAxl'.
-	    'BMVEX///////+/v79znJQhSkJ7raU5hHtjraVKnJRCjIRClIyU'.
-	    '9++E595avbVaxr2/v7+ctbWcvb17nJxrjIx7paUxQkK9//+Mvb'.
-	    '17ra2Evb17tbVCY2MQGBiU5+ec9/eM5+d71tZanJxjra1rvb1j'.
-	    'tbVSnJxara1rzs5jxsZKlJRChIQpUlIhQkJatbVSpaU5c3MxY2'.
-	    'MYMTEQISFavb1Sra1KnJxCjIw5e3sxa2spWlpClJQhSkoYOTkp'.
-	    'Y2MhUlIQKSkIGBgQMTH+e30mAAAAAXRSTlMAQObYZgAAAAFiS0'.
-	    'dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfT'.
-	    'AwkUGTIqLgJPAAAAqklEQVR4nI2QVxOCMBCEM6Mi2OiCvSslJB'.
-	    'CUoqjn//9TYgCfubf9Zu9uZxFqO+rscO7b6l/LljMZX29J2pNr'.
-	    'YjmX4ZaIEs2NeiWO19NNacl8rHAyD4LR6jjw6PMRdTjZE0JOiU'.
-	    'dDv2ALTlzRvSdCCfAHGCc7yRPSrAQRQOWxKc3C/IUjBlDdUcM8'.
-	    '97vFGwBY9QsZGBc/A4DWZNbeXIPWZEZI0c2lqSute/gCO9MXGY'.
-	    '4/IOkAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bs_yellow.png
-//==========================================================
-	$this->imgdata_small[4][0]= 507 ;
-	$this->imgdata_small[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAzF'.
-	    'BMVEX///////+/v79zYwCMewDOxoTWzoTezkr/5wj/5wDnzgDe'.
-	    'xgC1pQCtnACllACcjACUhABjWgDGvVK1rUrOxlLGvUqEexilnB'.
-	    'jv3hj35xj/7wj/7wD35wDv3gDn1gDezgDWxgDOvQDGtQC9rQCE'.
-	    'ewB7cwBzawBrYwDWzlLn3lLe1krn3kre1hi9tQC1rQCtpQClnA'.
-	    'CclACUjACMhAD/9wC/v7///8bOzoT//4T//3v//3P//2v//2Pn'.
-	    '50r//0r//yn39xj//xD//wBjYwDO8noaAAAAAXRSTlMAQObYZg'.
-	    'AAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAH'.
-	    'dElNRQfTAwkUGSDZl3MHAAAAqElEQVR4nI3QWRNDMBAA4My09E'.
-	    'IF1SME0VT1okXvM/3//6kEfbZv+81eswA0DfHxRpOV+M+zkDGG'.
-	    'rL63zCoJ2ef2RLZDIqNqYexyvFrY9ePkxGWdpvfzC7tEGtIRly'.
-	    'nqzboFKMlizAXbNnZyiFUKAy4bZ+B6W0lRaQDLmg4h/k7eFwDL'.
-	    'OWIky8qhXUBQ7gKGmsxpC+ah1TdriwByqG8GQNDNr6kLjf/wAx'.
-	    'KgEq+FpPbfAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_darkgray.png
-//==========================================================
-	$this->imgdata_small[5][0]= 611 ;
-	$this->imgdata_small[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAABJl'.
-	    'BMVEX////////o8v/f6O7W4OnR3PXL1OTL0evEyLvCzePAwMC/'.
-	    'v7a8wsq7t7C1xum1vtS1q6GzopmyxeKsrsOqvNWoq7anvN+nsb'.
-	    'qhrcGgqbGfpq6cp7+bqMuVmJKRm7yPlKKMnL6FkKWFipOEkLSE'.
-	    'j6qEhoqAiaB+jqd8haF7hZR4iJt4g5l3hZl2gIt2cod1hJVzeY'.
-	    'VzboJvhp9sfJJsb41peY1pd5xpdoVod4xndI5lcHxka4BjcYVg'.
-	    'Z3BfboFbb4lbZnZbYntaZ4laZYVZV3JYYWpXX3JWWm5VX4RVW2'.
-	    'NUYX9SXHxPWn5OVFxNWWtNVXVMVWFKV3xHUGZGU3dGTldFSlxE'.
-	    'Sk9ESXBCRlNBS3k/SGs/RU4+R1k9R2U6RFU2PUg0PEQxNU0ECL'.
-	    'QWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAA'.
-	    'CxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGQmbJetrAAAAtklEQV'.
-	    'R4nGNgwAK4JZTNNOWlYDxhMT4ZDTOzQE1uMF9CiJWVU0LbxDlS'.
-	    'G8QVF+FnZ2KRNHAIiPUHaZGSlmZj5lH19A1KjLUA8lXU5MWllF'.
-	    'yjo30TYr2BfG19G11b37CEeN84H38gX1HbwTUkOjo+zjfG3hLI'.
-	    'l1exCvCNCwnxjfMz0gTyRdXNHXx9fUNCQu2MwU6SN3ZwD42LCH'.
-	    'W30IK4T8vUJSAkNMhDiwPqYiktXWN9JZj7UQAAjWEfhlG+kScA'.
-	    'AAAASUVORK5CYII=' ; 
-
-
-//==========================================================
-// File: bs_darkgreen.png
-//==========================================================
-	$this->imgdata_small[6][0]= 666 ;
-	$this->imgdata_small[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABX1'.
-	    'BMVEX////////l/+nAwMC86r+8wb28wby8wLy78sCzw7SywrSx'.
-	    'wLKwvrGuvK+syK+ryq2rx62n36ym3aumxKmk2qij0Keh16ahva'.
-	    'Og1aSguKKe06KeuaCetZ+d0KGdtZ+bz6Cay56ZyZ2Zwp2Zr5qZ'.
-	    'rpqYwJuXyZuXrJmVw5mUxZiTxJeTw5eTq5WRwJWPtJKOvZKKuI'.
-	    '6Kt42Kn4yJt42ItIuGsomFsYmEsIiEr4eDr4eBrIR/qoN+qIJ8'.
-	    'poB7pH56o356on14nnt2nXl0mndzmnZzmXZymHVwlXNvlHJukn'.
-	    'FtiHBqjm1qjW1oi2toiWpniWplh2hlhmdkhWdig2VggGNgf2Je'.
-	    'fmFdfGBde19bbl1aeFxXdFpWclhVclhVcVdUcFZTb1VSbVRQal'.
-	    'JPaVFKY0xKYkxJYUtIYEpHX0lEWkZCWERCV0NCVkM/U0A+U0A+'.
-	    'UUA+UEA9Uj89UT48Tj45TDvewfrHAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAwkUGRjxlcuZAAAAtElEQVR4nGNgIBZw8osqqIpzw/msfI'.
-	    'IiUmr6lo6SbFARASEOJiYtQ2uXADmIAJeEGFBE18LBMySBBywi'.
-	    'LC/LwcFiZuvmH5WiAxZR0tRW1DC3dfYJS8zyAouYGBibWtm7+o'.
-	    'TEpZfkgEX0rG3snNx9Q2NSCksgaqRd3Ty8gyLiU/NKSiDmcPsF'.
-	    'BodHJ2UUlZTkQ+xikIlNSE7LLgECZagL2VQyc0H8YnV2uD94jS'.
-	    'ILIo14iQ4HALarJBNwbJVNAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_purple.png
-//==========================================================
-	$this->imgdata_small[7][0]= 447 ;
-	$this->imgdata_small[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAnF'.
-	    'BMVEX///////+/v7/Gvca9rb3Grcb/xv+1hLWte629hL21e7XG'.
-	    'hMbWhNbOe87We9b/hP//e/97OXv/c///a///Y/+cOZz/Sv/WOd'.
-	    'bnOefvOe//Kf9jCGNrCGv/EP//CP/nCOf/AP/3APfvAO/nAOfe'.
-	    'AN7WANbOAM7GAMa9AL21ALWtAK2lAKWcAJyUAJSMAIyEAIR7AH'.
-	    'tzAHNrAGtjAGPP1sZnAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGS'.
-	    'o5QpoZAAAAnElEQVR4nI3Q2xJDMBAG4MyQokWrZz3oSkJISJH3'.
-	    'f7dK0Gv/Xb7J7vyzCK0NjtPsHuH/2wlhTE7LnTNLCO/TFQjjIp'.
-	    'hHAA6bY06LSqppMAY47x+04HXTba2kAFlmQKr+YuVDCGUG2k6/'.
-	    'rNwYK8rKwKCnPxHnVS0aA3rag4UQslUGhrlk0Kpv1+sx3tLZ6w'.
-	    'dtYemMkOsnz8R3V9/hB87DEu2Wos5+AAAAAElFTkSuQmCC' ; 
-
-
-//==========================================================
-// File: bs_brown.png
-//==========================================================
-	$this->imgdata_small[8][0]= 677 ;
-	$this->imgdata_small[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABaF'.
-	    'BMVEX//////////8X/3oD/3nj/1HX/0Gr/xGP/rkv/gBf+iS/2'.
-	    'bAL1agDxaQDuZwDrZwLpZQDmZQLlZADjcx7gZATeYQDdZgraXw'.
-	    'DZXwHYXgDXiEvXZAvUjlfUXwXTjVfTbR7ShUvRbR7RWwDMWQDL'.
-	    'WADKooLKWADJoYLJgkvHWATGoILFn4LFgEvFVgDEZx7EVQDDt6'.
-	    '/DVQDCt6/CnoLChlfCVADAwMC+hFe+UgC8UgC6UQC4gVe4UAC3'.
-	    'gVe3UAC1gFe1eUu1TwC1TgCzTgCwTQKuTACrSgCqSgCpSgCpSQ'.
-	    'CodEulSACkRwCiRgCdRACcRACaQwCYQgCWQgKVQQCVQACUQACS'.
-	    'UR6RPwCOPgCNPQCLPACKPACJOwCEOQCBOAB+NwB9NgB8NgB7NQ'.
-	    'B6NwJ4NAB3RR52MwB0MgBuLwBtLwBsLwBqLgBpLQBkLQJiKgBh'.
-	    'KgBgKwRcKABbKQJbJwBaKQRaJwBYKAJVJQDZvdIYAAAAAXRSTl'.
-	    'MAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLd'.
-	    'fvwAAAAHdElNRQfTAwkUGho0tvl2AAAAtklEQVR4nGNgIBaoSg'.
-	    'mLKGpowfkGMty8AqJKpi4mRlAROR5ONg4JFUv3YHOIgDo/HwsT'.
-	    'q6yps29EsjZYREFIkJ2ZS9/OMzA20wEsIi8uKSZtaOPmH5WSFw'.
-	    'YW0VRW07Vw8vCLSMguLwCL6FlaObp6B0TGZxSXQ9TouHv6+IXG'.
-	    'JGYWlpdDzNEKCgmPjkvLKS0vL4LYxWAen5SelV8OBNZQFxrZ5h'.
-	    'aC+GX2MDczMBh7pZakehkTHQ4AA0Am/jsB5gkAAAAASUVORK5C'.
-	    'YII=' ; 
-
-//==========================================================
-// File: bs_blue.png
-//==========================================================
-	$this->imgdata_small[9][0]= 436 ;
-	$this->imgdata_small[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAk1'.
-	    'BMVEX///////+/v7+trcbGxv+EhM6EhNaEhP97e/9zc/9ra/9S'.
-	    'UsZKSrVSUs5jY/9SUtZKSsZSUudKSt5KSudKSv8YGIQpKf8YGK'.
-	    'UYGN4YGO8YGPcQEP8ICP8AAP8AAPcAAO8AAOcAAN4AANYAAM4A'.
-	    'AMYAAL0AALUAAK0AAKUAAJwAAJQAAIwAAIQAAHsAAHMAAGsAAG'.
-	    'ONFkFbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGhNNakHSAAAAmk'.
-	    'lEQVR4nI3P2xKCIBAGYGfM6SBWo1nauIqogaDA+z9dK9Lhrv47'.
-	    'vtl/2A2CfxNlJRRp9IETYGraJeEb7ocLNKznia8A7Db7umWDUG'.
-	    'sxAzhurxRHxok4KQGqCuEhlL45oU1D2w5BztY4KRhj/bCAsetM'.
-	    '2uObjwvY8/oX50JItYDxSyZSTrO2mNhvGMbaWAevnbFIcpuTr7'.
-	    't+5AkyfBIKSJHdSQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bs_green.png
-//==========================================================
-	$this->imgdata_small[10][0]= 452 ;
-	$this->imgdata_small[10][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAn1'.
-	    'BMVEX///////+/v7+/v7/G/8aUxpSMvYyUzpSMzoyM1oxarVqE'.
-	    '/4R7/3tavVpKnEpaxlpz/3Nr/2tKtUpj/2Na51pKzkpK1kpK50'.
-	    'pK/0oYcxgp/ykYlBgY3hgY7xgY9xgQ/xAI/wgA/wAA9wAA7wAA'.
-	    '5wAA3gAA1gAAzgAAxgAAvQAAtQAArQAApQAAnAAAlAAAjAAAhA'.
-	    'AAewAAcwAAawAAYwA0tyxUAAAAAXRSTlMAQObYZgAAAAFiS0dE'.
-	    'AIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAw'.
-	    'kUGgW5vvSDAAAAnklEQVR4nI3QSxKCMAwA0M4gqCgoiiJ+kEAL'.
-	    'LQUq0PufzX7ENdnlJZNkgtDS2CYZvK6bf+7EoKLA9cH5SQzv6A'.
-	    'YloTywsAbYr44FrlgrXCMJwHl3xxVtuuFkJAPIcw2tGB9GcFli'.
-	    'oqEf5GTkSUhVMw2TtD0XSlnDOw3SznE5520vNEi7CwW9+Ayjyq'.
-	    'U/3+yPuq5gvhkhL0xlGnqL//AFf14UIh4mkEkAAAAASUVORK5C'.
-	    'YII=' ; 
-
-
-//==========================================================
-// File: bs_white.png
-//==========================================================
-	$this->imgdata_small[11][0]= 480 ;
-	$this->imgdata_small[11][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAYAAADwMZRfAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFTsY/ewvBQAAAW1JREFUeJytkz2u4jAUhT/jic'.
-	    'gfBUKiZhE0bIKeVbCWrIKenp6eDiGlCEEEBArIxvzGU4xeZjLk'.
-	    'jWb05lRXuvbx+exr4bouX1Xjyw7Atz81F4uFBYjjGIDhcCjq1o'.
-	    'k6nN1uZwFerxfP55Msy1itVmRZBsB4PK6YveHkeW5d18XzPIIg'.
-	    'wPd9Wq0WnU6HMAxJkoQoiuynOIfDwUopkVIihKAoCgAcx6Hdbm'.
-	    'OMIU1T5vN55eBKEikljUYDIX6kFUKU9e8aDAZlmjcca+1b7TgO'.
-	    '1+uVy+VS9nzfr8e53++VzdZaiqIgz3OMMWitOZ/PaK0JgqDeRC'.
-	    'mF53lIKYGfr3O73TDGoJQiTVO01nS73XqT4/FIs9kkCAIej0eZ'.
-	    'brPZEMcxSZKgtQZgMpmIWpN+vy+m06n1PK9yTx8Gy+WS/X5Pr9'.
-	    'er9GuHLYoiG4YhSilOpxPr9Zrtdlti/JriU5MPjUYjq7UuEWaz'.
-	    '2d+P/b/qv/zi75oetJcv7QQXAAAAAElFTkSuQmCC' ; 
-
-
-//==========================================================
-// File: bs_cyan.png
-//==========================================================
-	$this->imgdata_small[12][0]= 633 ;
-	$this->imgdata_small[12][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAABPl'.
-	    'BMVEX////////F///AwMCvxsaC1NSC0dGCz8+CzMyA//94//91'.
-	    '//9q//9j//9X4uJX09NXz89Xx8dXxMRL//9L5uZL3d1L2NhLxs'.
-	    'ZLt7cv//8e9fUe8fEe7u4e398epqYehoYX//8L+PgK//8F9fUE'.
-	    '/v4E5+cEb28EZ2cC//8C/v4C/f0CzMwCrq4Cjo4CdXUCaWkCZW'.
-	    'UB/PwA//8A/f0A+/sA8/MA7e0A7OwA6+sA5eUA5OQA4uIA4eEA'.
-	    '3NwA2toA2NgA1dUA09MA0tIA0NAAysoAxsYAxcUAxMQAv78Avr'.
-	    '4AvLwAtrYAtbUAs7MAsLAAra0Aq6sAqKgApaUApKQAoqIAoKAA'.
-	    'n58AmpoAlZUAk5MAkpIAkJAAj48AjIwAiYkAh4cAf38AfX0Ae3'.
-	    'sAenoAcnIAcHAAa2sAaWkAaGgAYmIUPEuTAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwkUGQDi+VPPAAAAtElEQVR4nGNgIBawikipyIiy'.
-	    'wfksfJpGRkamNtr8LFARPiMFHmFDcztXfwGoFi0jLiZuZRtnry'.
-	    'BddrCIiJEGL6eklYO7X3iCOFhE2thESdHawdUnJDZFDiyiamZh'.
-	    'aevk5h0UlZSpBhaRtbN3dPHwDY5MSM+EqBFzc/f0DgiLTkjLzI'.
-	    'SYw6bjHxgaEZeckZmpD7GLQSAqJj4xNRMIBGFuFtRLA/ENhGBu'.
-	    'ZmDgkJBXl5fgIDocAAKcINaFePT4AAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bs_bluegreen.png
-//==========================================================
-	$this->imgdata_small[13][0]= 493 ;
-	$this->imgdata_small[13][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAvV'.
-	    'BMVEX///////+/v79j//855/8x3v851v9Spb1C1v8AOUqEtcZK'.
-	    'lK1StdYxzv8hxv8AY4QASmNSlK1KpcZKtd4YQlIYnM4YrecIvf'.
-	    '8AtfcAre8AjL0AhLUAc5wAa5QAWnsAQloAKTkAGCFKhJxKrdYY'.
-	    'jL0Ypd4Atf8ArfcApecAnN4AlM4AjMYAe60Ac6UAY4wAUnNSnL'.
-	    '0AlNYAWoQASmsAOVIAITGEtc4YWnsAUnsAMUqtvcaErcYAKUIA'.
-	    'GCkAECHUyVh/AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAA'.
-	    'AJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGxNUcXCT'.
-	    'AAAAqUlEQVR4nI2Q1xKCMBREM2NHLCCogAGCjd6SqLT8/2cZKT'.
-	    '6zb3tm987OBWCsXoejp8rC35fi4+l6gXFZlD0Rz6fZ1tdDmKR9'.
-	    'RdOmkzmP7DDpilfX3SzvRgQ/Vr1uiZplfsCBiVf03RJd140wgj'.
-	    'kmNqMtuYXcxyYmNWJdRoYwzpM9qRvGujuCmSR7q7ARY00/MiWk'.
-	    'sCnjkobNEm1+HknDZgAqR0GKU43+wxdu2hYzbsHU6AAAAABJRU'.
-	    '5ErkJggg==' ; 
-
-//==========================================================
-// File: bs_lightred.png
-//==========================================================
-	$this->imgdata_small[14][0]= 532 ;
-	$this->imgdata_small[14][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAA3l'.
-	    'BMVEX///////+/v7/Gvb0hGBj/5///3v//zu//1u//xucpGCG9'.
-	    'nK21lKVSQkp7Wms5KTExISlaOUpjQlIhEBj/tdbOhKXnrcbGjK'.
-	    'Wla4TetcbGnK2EWmv/rc73pcZ7UmOcY3vOpbW1jJzenLW9e5Rz'.
-	    'Slq1c4xrQlJSOULGhJz/pcb3nL2chIzOnK33rcbelK3WjKWMWm'.
-	    'vGe5SEUmM5ISnOtb3GrbXerb3vpb2ca3v/rcaUY3POhJxCKTF7'.
-	    'SlrWnK21e4ytc4TvnLXnlK2la3taOUK1lJxrSlLGhJRjQkpSMT'.
-	    'lw+q2nAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAwkUGjoP2Nm+AAAAr0'.
-	    'lEQVR4nGNgIBaYiOk62imYwPnMkiIyso76yhJSzFARMxkRNk49'.
-	    'a3t5OW6oFk1LVkYOfWUHKxUXiEYzLS12DnN3VXkjIRtFsIiSk5'.
-	    '6evqGqhYGKugAfWMRa1FpD2UHeQEXQRlgALCJur+rgbCUNFOAS'.
-	    'hqjRkZe3MpBTcwEKCEPMMTGSs3Xz8OQHCnBBHckt6OJpIyAMBD'.
-	    'wwN/MYc4H4LK4wNzMwmGrzcvFqmxIdDgDiHRT6VVQkrAAAAABJ'.
-	    'RU5ErkJggg==' ;
-
-//==========================================================
-// File: bxs_lightred.png
-//==========================================================
-	$this->imgdata_xsmall[0][0]= 432 ;
-	$this->imgdata_xsmall[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAA3l'.
-	    'BMVEX///////+/v7/Gvb0hGBj/5///3v//zu//1u//xucpGCG9'.
-	    'nK21lKVSQkp7Wms5KTExISlaOUpjQlIhEBj/tdbOhKXnrcbGjK'.
-	    'Wla4TetcbGnK2EWmv/rc73pcZ7UmOcY3vOpbW1jJzenLW9e5Rz'.
-	    'Slq1c4xrQlJSOULGhJz/pcb3nL2chIzOnK33rcbelK3WjKWMWm'.
-	    'vGe5SEUmM5ISnOtb3GrbXerb3vpb2ca3v/rcaUY3POhJxCKTF7'.
-	    'SlrWnK21e4ytc4TvnLXnlK2la3taOUK1lJxrSlLGhJRjQkpSMT'.
-	    'lw+q2nAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUKBOgGhWjAAAAS0'.
-	    'lEQVR4nGNgQAEmunYmEJaMCKe1vBxYzJKVQ9lKBSSupKdnaKGi'.
-	    'zgdkiqs6WKnYcIGYJnK2HvzCwmCNgi42wsLCECNMeXlNUY0HAL'.
-	    'DaB7Du8MiEAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bxs_bluegreen.png
-//==========================================================
-	$this->imgdata_xsmall[1][0]= 397 ;
-	$this->imgdata_xsmall[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAvV'.
-	    'BMVEX///////+/v79j//855/8x3v851v9Spb1C1v8AOUqEtcZK'.
-	    'lK1StdYxzv8hxv8AY4QASmNSlK1KpcZKtd4YQlIYnM4YrecIvf'.
-	    '8AtfcAre8AjL0AhLUAc5wAa5QAWnsAQloAKTkAGCFKhJxKrdYY'.
-	    'jL0Ypd4Atf8ArfcApecAnN4AlM4AjMYAe60Ac6UAY4wAUnNSnL'.
-	    '0AlNYAWoQASmsAOVIAITGEtc4YWnsAUnsAMUqtvcaErcYAKUIA'.
-	    'GCkAECHUyVh/AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAA'.
-	    'AJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUKDVyF5Be'.
-	    'AAAASUlEQVR4nGNgQAFmYqJcEJaEOJ+UrD5YTJKFTZrfGCQuaq'.
-	    'glLWvMaQ5kqujo6hnbKIKYXPr68gp2dmCNJiZAlh3ECGsREWtU'.
-	    '4wF1kwdpAHfnSwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bxs_navy.png
-//==========================================================
-	$this->imgdata_xsmall[2][0]= 353 ;
-	$this->imgdata_xsmall[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAk1'.
-	    'BMVEX///////+/v7+trcbGxv+EhM6EhNaEhP97e/9zc/9ra/9S'.
-	    'UsZKSrVSUs5jY/9SUtZKSsZSUudKSt5KSudKSv8YGIQpKf8YGK'.
-	    'UYGN4YGO8YGPcQEP8ICP8AAP8AAPcAAO8AAOcAAN4AANYAAM4A'.
-	    'AMYAAL0AALUAAK0AAKUAAJwAAJQAAIwAAIQAAHsAAHMAAGsAAG'.
-	    'ONFkFbAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUJxXO4axZAAAAR0'.
-	    'lEQVR4nGNgQAGskhKsEJaslIi8ijpYTJaDU1FVAyQuKSujoKKh'.
-	    'LQ5kSigpqWro6oOYrOoaWroGBmCNWiCWAdQwUVFWVOMBOp4GCJ'.
-	    's5S60AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_gray.png
-//==========================================================
-	$this->imgdata_xsmall[3][0]= 492 ;
-	$this->imgdata_xsmall[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABI1'.
-	    'BMVEX///8AAAD8EAD8IAD8NAD8RAD8VAAYGBi/v7+goKCCgoJk'.
-	    'ZGRGRkb8yAD83AD87AD8/AD4+ADo+ADY+ADI+AC0+ACk+ACU+A'.
-	    'CE+AB0/ABk/ABU/ABE/AAw/AAg/AAQ/AAA/AAA+AAA6BAA2CAA'.
-	    'yDQAtEQApFQAlGQAhHQAdIgAZJgAVKgARLgAMMgAINwAEOwAAP'.
-	    'wAAPgIAPAQAOgYAOAkANgsANA0AMg8AMBEALhMALBUAKhcAKBo'.
-	    'AJhwAJB4AIiAAID////4+Pjy8vLs7Ozm5ubg4ODa2trT09PNzc'.
-	    '3Hx8fBwcG7u7u1tbWurq6oqKiioqKcnJyWlpaQkJCJiYmDg4N9'.
-	    'fX13d3dxcXFra2tkZGReXl5YWFhSUlJMTExGRkZAQEA1BLn4AA'.
-	    'AAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEA'.
-	    'AAsRAX9kX5EAAAAHdElNRQfTAwkUKC74clmyAAAAQklEQVR4nG'.
-	    'NgQAVBYVCGt5dXYEQ0mOnp5h4QFgVmeri6+4dHxYMVeHoFRUTH'.
-	    'gTUFBIZBWAwMkZEx8bFQM2Lj0UwHANc/DV6yq/BiAAAAAElFTk'.
-	    'SuQmCC' ; 
-
-//==========================================================
-// File: bxs_graypurple.png
-//==========================================================
-	$this->imgdata_xsmall[4][0]= 542 ;
-	$this->imgdata_xsmall[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABSl'.
-	    'BMVEX////////11P/MqdvKrNfAwMC+u7+9u7+4rr24lsi3rby3'.
-	    'lMe1rLq1o720q7i0oL20ksSzoryyqbaykMGxlb2wkL+vnbiujb'.
-	    '2sjLuri7qpl7GoirWoibenmK2mla6mjLKmhrSllauki7CjhrCj'.
-	    'hLGihLChg6+ggq2fkqadkKOcfqqai6Gag6WYe6WXeqSWeaOTd6'.
-	    'CTd5+Rdp6RdZ6RdZ2Qg5eOc5qMcpiLcZeJb5WIbpOHbZKGbJGE'.
-	    'a4+CaY2AZ4t/Z4p/Zop/Zol+Zol7ZIZ6Y4V5YoR1ZH11X391Xn'.
-	    '9zXX1yXXtxXHtvWnluWXhsV3VqVnNpVXJoVHFnU3BmUm9jUGth'.
-	    'VGdgTmheTGZcS2RcSmRaSWJYR19XRl5SQllRQlhQQVdPQFZOP1'.
-	    'VLPlFJO09IPE5IOk5FOEtEN0lDOEpDOElDNklCNkc/M0XhbrfD'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'.
-	    'EAAAsRAX9kX5EAAAAHdElNRQfTAwkUKCgREfyHAAAATUlEQVR4'.
-	    'nGNgQAEcIko8EBY3M5Ougy+IxSXMwmTsFsAHZMqrSRvZB0W7A5'.
-	    'k6FlYugXEZICaPr394Um4uSAFDRFRCbm4uxAihsDAhVOMBHT0L'.
-	    'hkeRpo8AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_red.png
-//==========================================================
-	$this->imgdata_xsmall[5][0]= 357 ;
-	$this->imgdata_xsmall[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAk1'.
-	    'BMVEX////////GxsbGra3/xsbOhITWhIT/hIT/e3v/c3P/a2vG'.
-	    'UlK1SkrOUlL/Y2PWUlLGSkrnUlLeSkrnSkr/SkqEGBj/KSmlGB'.
-	    'jeGBjvGBj3GBj/EBD/CAj/AAD3AADvAADnAADeAADWAADOAADG'.
-	    'AAC9AAC1AACtAAClAACcAACUAACMAACEAAB7AABzAABrAABjAA'.
-	    'BuukXBAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZ'.
-	    'cwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUIyjy5SVMAAAAS0'.
-	    'lEQVR4nGNgQAFsUpJsEJastIi8ijpYTJaDU0FVgxXIlJKVUVDR'.
-	    '0BYHMiUUlVQ1dPVBTDZ1dS1dAwOQAgYtbSDLAGIEq6goK6rxAD'.
-	    'yXBg73lwGUAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: bxs_yellow.png
-//==========================================================
-	$this->imgdata_xsmall[6][0]= 414 ;
-	$this->imgdata_xsmall[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAzF'.
-	    'BMVEX///////+/v79zYwCMewDOxoTWzoTezkr/5wj/5wDnzgDe'.
-	    'xgC1pQCtnACllACcjACUhABjWgDGvVK1rUrOxlLGvUqEexilnB'.
-	    'jv3hj35xj/7wj/7wD35wDv3gDn1gDezgDWxgDOvQDGtQC9rQCE'.
-	    'ewB7cwBzawBrYwDWzlLn3lLe1krn3kre1hi9tQC1rQCtpQClnA'.
-	    'CclACUjACMhAD/9wC/v7///8bOzoT//4T//3v//3P//2v//2Pn'.
-	    '50r//0r//yn39xj//xD//wBjYwDO8noaAAAAAXRSTlMAQObYZg'.
-	    'AAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAH'.
-	    'dElNRQfTAwkUIzoBXFQEAAAAS0lEQVR4nGNgQAFsDhJsEJaTo5'.
-	    '2skj5YzMnSSk7ZwBzIlOSUklPiMxYHMnW4FXT5VNVBTDZeXiNV'.
-	    'QUGQAgYBYyBLEGIEq5gYK6rxAH4kBmHBaMQQAAAAAElFTkSuQm'.
-	    'CC' ; 
-
-//==========================================================
-// File: bxs_greenblue.png
-//==========================================================
-	$this->imgdata_xsmall[7][0]= 410 ;
-	$this->imgdata_xsmall[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAxl'.
-	    'BMVEX///////+/v79znJQhSkJ7raU5hHtjraVKnJRCjIRClIyU'.
-	    '9++E595avbVaxr2/v7+ctbWcvb17nJxrjIx7paUxQkK9//+Mvb'.
-	    '17ra2Evb17tbVCY2MQGBiU5+ec9/eM5+d71tZanJxjra1rvb1j'.
-	    'tbVSnJxara1rzs5jxsZKlJRChIQpUlIhQkJatbVSpaU5c3MxY2'.
-	    'MYMTEQISFavb1Sra1KnJxCjIw5e3sxa2spWlpClJQhSkoYOTkp'.
-	    'Y2MhUlIQKSkIGBgQMTH+e30mAAAAAXRSTlMAQObYZgAAAAFiS0'.
-	    'dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfT'.
-	    'AwkUJy5/6kV9AAAATUlEQVR4nGNgQAGCyuyCEJaGugKHviVYzF'.
-	    'hO3sxCWwDIVNLTM9PXtpEGMhW12Cy0DR1ATEFLSxZ7BweQAgYd'.
-	    'HUMHBweIEQKiogKoxgMAo/4H5AfSehsAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_purple.png
-//==========================================================
-	$this->imgdata_xsmall[8][0]= 364 ;
-	$this->imgdata_xsmall[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAnF'.
-	    'BMVEX///////+/v7/Gvca9rb3Grcb/xv+1hLWte629hL21e7XG'.
-	    'hMbWhNbOe87We9b/hP//e/97OXv/c///a///Y/+cOZz/Sv/WOd'.
-	    'bnOefvOe//Kf9jCGNrCGv/EP//CP/nCOf/AP/3APfvAO/nAOfe'.
-	    'AN7WANbOAM7GAMa9AL21ALWtAK2lAKWcAJyUAJSMAIyEAIR7AH'.
-	    'tzAHNrAGtjAGPP1sZnAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUIj'.
-	    'mBTjT/AAAASUlEQVR4nGNgQAGskhKsEJaCrJiSuhZYTEFASFlD'.
-	    'GyQuqSCnrK6tJwpkiquoamgbGIGYrFpaugbGxmCNunpAljHECB'.
-	    'ZBQRZU4wFSMAZsXeM71AAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bxs_green.png
-//==========================================================
-	$this->imgdata_xsmall[9][0]= 370 ;
-	$this->imgdata_xsmall[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAn1'.
-	    'BMVEX///////+/v7+/v7/G/8aUxpSMvYyUzpSMzoyM1oxarVqE'.
-	    '/4R7/3tavVpKnEpaxlpz/3Nr/2tKtUpj/2Na51pKzkpK1kpK50'.
-	    'pK/0oYcxgp/ykYlBgY3hgY7xgY9xgQ/xAI/wgA/wAA9wAA7wAA'.
-	    '5wAA3gAA1gAAzgAAxgAAvQAAtQAArQAApQAAnAAAlAAAjAAAhA'.
-	    'AAewAAcwAAawAAYwA0tyxUAAAAAXRSTlMAQObYZgAAAAFiS0dE'.
-	    'AIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAw'.
-	    'kUKBrZxq0HAAAATElEQVR4nGNgQAGccrIcEJaivISyhjaIxa7I'.
-	    'I6CiqcMKZMopKqho6OhLA5kyqmqaOobGICartraeoYkJSAGDnj'.
-	    '6QZQIxgk1Skg3VeABlVgbItqEBUwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bxs_darkgreen.png
-//==========================================================
-	$this->imgdata_xsmall[10][0]= 563 ;
-	$this->imgdata_xsmall[10][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABX1'.
-	    'BMVEX////////l/+nAwMC86r+8wb28wby8wLy78sCzw7SywrSx'.
-	    'wLKwvrGuvK+syK+ryq2rx62n36ym3aumxKmk2qij0Keh16ahva'.
-	    'Og1aSguKKe06KeuaCetZ+d0KGdtZ+bz6Cay56ZyZ2Zwp2Zr5qZ'.
-	    'rpqYwJuXyZuXrJmVw5mUxZiTxJeTw5eTq5WRwJWPtJKOvZKKuI'.
-	    '6Kt42Kn4yJt42ItIuGsomFsYmEsIiEr4eDr4eBrIR/qoN+qIJ8'.
-	    'poB7pH56o356on14nnt2nXl0mndzmnZzmXZymHVwlXNvlHJukn'.
-	    'FtiHBqjm1qjW1oi2toiWpniWplh2hlhmdkhWdig2VggGNgf2Je'.
-	    'fmFdfGBde19bbl1aeFxXdFpWclhVclhVcVdUcFZTb1VSbVRQal'.
-	    'JPaVFKY0xKYkxJYUtIYEpHX0lEWkZCWERCV0NCVkM/U0A+U0A+'.
-	    'UUA+UEA9Uj89UT48Tj45TDvewfrHAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElN'.
-	    'RQfTAwkUKCFozUQjAAAATUlEQVR4nGNgQAGcoqrcEJYQB5OhSw'.
-	    'CIxSXGwWThGcIDZCppK5o7hyV6AZl6NnbuoSmFICZ3YHB0RkkJ'.
-	    'SAFDbEJaSUkJxAjeyEheVOMBQj4MOEkWew4AAAAASUVORK5CYI'.
-	    'I=' ; 
-
-//==========================================================
-// File: bxs_cyan.png
-//==========================================================
-	$this->imgdata_xsmall[11][0]= 530 ;
-	$this->imgdata_xsmall[11][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABPl'.
-	    'BMVEX////////F///AwMCvxsaC1NSC0dGCz8+CzMyA//94//91'.
-	    '//9q//9j//9X4uJX09NXz89Xx8dXxMRL//9L5uZL3d1L2NhLxs'.
-	    'ZLt7cv//8e9fUe8fEe7u4e398epqYehoYX//8L+PgK//8F9fUE'.
-	    '/v4E5+cEb28EZ2cC//8C/v4C/f0CzMwCrq4Cjo4CdXUCaWkCZW'.
-	    'UB/PwA//8A/f0A+/sA8/MA7e0A7OwA6+sA5eUA5OQA4uIA4eEA'.
-	    '3NwA2toA2NgA1dUA09MA0tIA0NAAysoAxsYAxcUAxMQAv78Avr'.
-	    '4AvLwAtrYAtbUAs7MAsLAAra0Aq6sAqKgApaUApKQAoqIAoKAA'.
-	    'n58AmpoAlZUAk5MAkpIAkJAAj48AjIwAiYkAh4cAf38AfX0Ae3'.
-	    'sAenoAcnIAcHAAa2sAaWkAaGgAYmIUPEuTAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAA'.
-	    'AHdElNRQfTAwkUKQFKuFWqAAAATUlEQVR4nGNgQAGsUjJsEJaR'.
-	    'grC5qz9YzIiL28YriB3IlDZRsnYNiZUDMmXtHT2CE9JBTDb/wI'.
-	    'jkzEyQAoaomMTMzEyIERzy8hyoxgMAN2MLVPW0f4gAAAAASUVO'.
-	    'RK5CYII=' ; 
-
-//==========================================================
-// File: bxs_orange.png
-//==========================================================
-	$this->imgdata_xsmall[12][0]= 572 ;
-	$this->imgdata_xsmall[12][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABaF'.
-	    'BMVEX//////////8X/3oD/3nj/1HX/0Gr/xGP/rkv/gBf+iS/2'.
-	    'bAL1agDxaQDuZwDrZwLpZQDmZQLlZADjcx7gZATeYQDdZgraXw'.
-	    'DZXwHYXgDXiEvXZAvUjlfUXwXTjVfTbR7ShUvRbR7RWwDMWQDL'.
-	    'WADKooLKWADJoYLJgkvHWATGoILFn4LFgEvFVgDEZx7EVQDDt6'.
-	    '/DVQDCt6/CnoLChlfCVADAwMC+hFe+UgC8UgC6UQC4gVe4UAC3'.
-	    'gVe3UAC1gFe1eUu1TwC1TgCzTgCwTQKuTACrSgCqSgCpSgCpSQ'.
-	    'CodEulSACkRwCiRgCdRACcRACaQwCYQgCWQgKVQQCVQACUQACS'.
-	    'UR6RPwCOPgCNPQCLPACKPACJOwCEOQCBOAB+NwB9NgB8NgB7NQ'.
-	    'B6NwJ4NAB3RR52MwB0MgBuLwBtLwBsLwBqLgBpLQBkLQJiKgBh'.
-	    'KgBgKwRcKABbKQJbJwBaKQRaJwBYKAJVJQDZvdIYAAAAAXRSTl'.
-	    'MAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9k'.
-	    'X5EAAAAHdElNRQfTAwkUJBSSy88MAAAATUlEQVR4nGNgQAGqwo'.
-	    'paEBYPJ4eKezCIpc7HwmrqG6ENZMpLihm6RaWEAZl6Vo7ekRnF'.
-	    'IKZWSHhcTnk5SAFDfFJWeXk5xAjj1FRjVOMBeFwNcWYSLjsAAA'.
-	    'AASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_lightblue.png
-//==========================================================
-	$this->imgdata_xsmall[13][0]= 554 ;
-	$this->imgdata_xsmall[13][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAABVl'.
-	    'BMVEX////////d///AwMC7wcS08P+y+P+xxdCwxM+uws2twMur'.
-	    'vsinzNynytylzuKhyN6e5v6d5P+d1fOcwNWcu8ub4f+at8iZ3v'.
-	    '+ZvdGY2/yW2f+VscGU1vuT1fqTr72Sx+SSxeKR0fWRz/GPz/OP'.
-	    'rr+OyeqMy+6Myu2LyeyKxueJudSGw+SGorGDvt+Cvd6CvN2Aud'.
-	    'p+uNd+t9Z9tdV8tdR8tNN6sc94r813rct2q8h0qcZ0qMVzp8Rx'.
-	    'o8Bwor5tn7ptnrptnrlsnbhqmbRpmbNpi51ol7Flkqtkkqtkka'.
-	    'pjj6hijaRhjaZgi6NfiqJfiaFdh55bhJtag5pZgphYgJZYf5VX'.
-	    'cn9Ve5FSeI1RdopRdYlQdYlPc4dPcoZPcoVNcINLboBLbH9GZn'.
-	    'hGZXdFZHZEY3RDYnJCXW4/W2s/WWg+Wmo7VmU7VGM7U2E6VGM6'.
-	    'VGI5UV82T1wGxheQAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHU'.
-	    'gAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElNRQfTAwkUJziL'.
-	    'PvAsAAAATUlEQVR4nGNgQAHsQgqcEJYgG5Oegy+IxSHOxmTiFs'.
-	    'gFZMprKBnbB8e7AplaFlbOQUl5ICanX0BEWmEhSAFDVGxKYWEh'.
-	    'xAjusDBuVOMBJO8LrFHRAykAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: bxs_darkgray.png
-//==========================================================
-	$this->imgdata_xsmall[14][0]= 574 ;
-	$this->imgdata_xsmall[14][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABm'.
-	    'JLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsRAAALEQF/ZF+RAAAB'.
-	    'iElEQVR42k3QPU8TYRwA8P//ebkXrgdIColXRAOEkJqbaExMut'.
-	    'DBhE1GNjYHPg+DG6ODiU6QOLjVxITBcFKBYCstlAC2Bz17fe76'.
-	    'vLD6+wg/1FpTRFR5lpaub/u1eGBGaAT4HneD4OlXx7avtDYUjT'.
-	    'HQabd2Ti8e3vVSKzxrtHS32wIpFVldno22Nqvvg2Bhl0gp/aNm'.
-	    'vJ3qqXAtLIva+ks1H0wqlSXi4+d6+OFTfRsAfHJx2d1od24rZP'.
-	    'xP2HzopINr1mkesX7ccojqif0v9crxWXODZTno3+dNGA7uWLsd'.
-	    'mUYU4fHJCViMG9umLBmM4L6fagZGg9QKfjZ+Qfy3C3G/B3mugF'.
-	    'IHHNcDf64E3KJALApk2p8CSolUUqLjFkyxOGMsTtFyJ+Wz57NQ'.
-	    '8DghS4sLB0svioeZZo7nPhFoUKZDIVFbglkTTnl5/rC8snjAkJ'.
-	    'Bk/XV5LxHC/v7tR8jzTFPbg8LENK9WX0Vv31T2AEmCSmlKCCoh'.
-	    'ROnP1U1tPFYjJBRcbtzSf+GPsFTAQBq1n4AAAABKdEVYdHNpZ2'.
-	    '5hdHVyZQBiYzYyMDIyNjgwYThjODMyMmUxNjk0NWUzZjljOGFh'.
-	    'N2VmZWFhMjA4OTE2ZjkwOTdhZWE1MzYyMjk0MWRkM2I5EqaPDA'.
-	    'AAAABJRU5ErkJggg==' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_bevels.inc b/nightly-test-server/jpgraph/imgdata_bevels.inc
deleted file mode 100644
index 2186671..0000000
--- a/nightly-test-server/jpgraph/imgdata_bevels.inc
+++ /dev/null
@@ -1,105 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_BEVELS.INC
-// Description:	Base64 encoded images for round bevels
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Bevels extends ImgData {
-    var $name = 'Round Bevels';
-    var $an = array(MARK_IMG_BEVEL => 'imgdata');
-    
-    var $colors = array('green','purple','orange','red','yellow');
-    var $index  = array('green'=>1,'purple'=>4,'orange'=>2,'red'=>0,'yellow'=>3);
-    var $maxidx = 4 ;
-
-    var $imgdata ;
-
-    function ImgData_Bevels() {
-//==========================================================
-// File: bullets_balls_red_013.png
-//==========================================================
-	$this->imgdata[0][0]= 337 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/f3+LFwcmNxMuxm62DmqKth1VpZmIWg6fv'.
-	    'HCa7K0BwMEytCjFnIyUlEBg9vhQvAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNhk+pYJVAAAAl0lEQVR4nE2Q2xLDIAgFHUWBKJf//9'.
-	    'oekmbafVDZARRbK/pYTKP9WNcNv64zzUdd9BjmrgnsVXRNSzO3'.
-	    'CJ5ahdhy0XKQkxld1kxb45j7dp0x2lBNOyVgQpMaoadX7Hs7zr'.
-	    'P1yKj47DKBnKaBKiSAkNss7O6PkMx6kIgYXISQJpcZCqdY6KR+'.
-	    'J1PkS5Xob/h7MNz8x6D3fz5DKQjpkZOBYAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: bullets_balls_green_013.png
-//==========================================================
-	$this->imgdata[1][0]= 344 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/e3+K3vriUub/Dm18j4xc3ob10k0ItqQlU'.
-	    'e5JBmwpxY1ENaKBgUh0iHgwsSre9AAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNTfJXtxZAAAAnklEQVR4nE2QWY4EMQhDUVhSIRC4/2'.
-	    'kbaqLp9p+f2AxAayAzDfiK9znPORuvH0x8Ss9z6I9sHp6tcxE9'.
-	    'nLmWmebmt5F5p2AR0+C9AWpLBjXRaZsCAT3SqklVp0YkAWaGtd'.
-	    'c5Z41/STYpPzW7BjyiRrwkVmQto/Cw9tNEMvsgcekyCyFPboIu'.
-	    'IsuXiKffYB4NK4r/h6d4g9HPPwCR7i8+GscIiiaonUAAAAAASU'.
-	    'VORK5CYII=' ; 
-
-//==========================================================
-// File: bullets_balls_oy_035.png
-//==========================================================
-	$this->imgdata[2][0]= 341 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/f3+K5tbqNwcjnkjXjbxR2i5anfEoNkbis'.
-	    'PBxpU0sZbZejKgdqIRIlERIwYtkYAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNgK0wEu5AAAAm0lEQVR4nE3QVxIEIQgEUErAgTHA/U'.
-	    '+7zbipf9RXgoGo0liMmX6RdSPLPtZM9F4LuuSIaZtZWffiU6Iz'.
-	    'Y8SOMF0NogBj30ioGRGLZgiPvce1TbIRz6oBQEbOFGK0rIoxrn'.
-	    '5hDomMA1cfGRCaRVhjS3gkzheM+4HtnlkXcvdZhWG4qZawewe6'.
-	    '9Jnz/TKLB/ML6HUepn//QczazuwFO/0Ivpolhi4AAAAASUVORK'.
-	    '5CYII=' ; 
-
-//==========================================================
-// File: bullets_balls_oy_036.png
-//==========================================================
-	$this->imgdata[3][0]= 340 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////////27t/e3+LO3hfYzz65ubiNwci6uQ12ipadgVGa'.
-	    'fwsNkbhnVkcaZ5dwSA8lFg7CEepmAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxEAAAsRAX9kX5EAAAAHdElN'.
-	    'RQfTAxcCBySi1nevAAAAjElEQVR4nFXPWw7EIAgFUNMoCMhj/6'.
-	    'staKczc/2RkwjS2glQ+w3YytgXCXCZpRo8gJdGxZadJws13CUP'.
-	    '4SZI4MYiUxypeiGGw1XShVBTNN9kLXP2GRrZPFvKgd7z/sqGGV'.
-	    '7C7r7r3l09alYN3iA8Yn+ImdVrNoEeSRqJPAaHfhZzLYwXstdZ'.
-	    'rP3n2bvdAI4INwtihiwAAAAASUVORK5CYII=' ;
-
-//==========================================================
-// File: bullets_balls_pp_019.png
-//==========================================================
-	$this->imgdata[4][0]= 334 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAMAAAAMs7fIAAAAM1'.
-	    'BMVEX////+/v7i4eO/w8eHxcvKroNVormtfkjrMN2BeXQrepPc'.
-	    'Esy4IL+OFaR7F25LHF8mFRh5XXtUAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAxcBNgkjEpIxAAAAlElEQVR4nE2QAQ7FIAhDDTAVndL7n3'.
-	    'ZV/7JfEwMvFIWUlkTMVNInbVv5ZeJqG7Smh2QTBwJBpsdizAZP'.
-	    '5NyW0awhK8kYodnZxS6ECvPRp2sI+y7PBv1mN02KH7h77QCJ8D'.
-	    '4VvY5NUgEmCwj6ZMzHtJRgRSXwC1gfcqJJH0GBnSnK1kUQ72DY'.
-	    'CPBv+MCS/e0jib77eQAJxwiEWm7hFwAAAABJRU5ErkJggg==' ; 
-
-    }
-}
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_diamonds.inc b/nightly-test-server/jpgraph/imgdata_diamonds.inc
deleted file mode 100644
index 49c9efb..0000000
--- a/nightly-test-server/jpgraph/imgdata_diamonds.inc
+++ /dev/null
@@ -1,178 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_DIAMONDS.INC
-// Description:	Base64 encoded images for diamonds
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Diamonds extends ImgData {
-    var $name = 'Diamonds';
-    var $an = array(MARK_IMG_DIAMOND =>'imgdata');
-    var $colors = array('lightblue','darkblue','gray', 
-			'blue','pink','purple','red','yellow');
-    var $index  = array('lightblue' =>7,'darkblue'=>2,'gray'=>6, 
-			'blue'=>4,'pink'=>1,'purple'=>5,'red'=>0,'yellow'=>3);
-
-    var $maxidx = 7 ;
-    var $imgdata ;
-
-    function ImgData_Diamonds() {
-//==========================================================
-// File: diam_red.png
-//==========================================================
-	$this->imgdata[0][0]= 668 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/F'.
-	    'BMVEX///////+cAAD/AADOAABjAABrAADWGBjOCAj/CAj/GBj/'.
-	    'EBCcCAiMOTl7KSl7ISFzGBilGBjOEBBrCAjv5+eMQkK1QkKtMT'.
-	    'GtKSnWKSn/KSlzEBCcEBDexsb/tbXOe3ucWlqcUlKUSkr/e3vn'.
-	    'a2u9UlL/a2uEMTHeUlLeSkqtOTn/UlL/SkrWOTn/QkL/OTmlIS'.
-	    'H/MTH/ISH39/f/9/f35+fezs7/5+fvzs7WtbXOra3nvb3/zs7G'.
-	    'nJzvtbXGlJTepaW9jIy1hITWlJS1e3uta2ulY2P/lJTnhITne3'.
-	    'vGY2O9Wlr/c3PeY2O1Skr/Y2P/WlreQkLWISGlEBCglEUaAAAA'.
-	    'AXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAA'.
-	    'sSAdLdfvwAAAAHdElNRQfTAwsWEw5WI4qnAAABGUlEQVR4nHXQ'.
-	    '1XLDMBAFUKUCM1NiO8zcpIxpp8z0//9SWY7b2LHv6EU6s1qtAN'.
-	    'iMBAojLPkigpJvogKC4pxDuQipjanlICXof1RQDkYEF21mKIfg'.
-	    '/GGKtjAmOKt9oSyuCU7OhyiDCQnjowGfRnooCJIkiWJvv8NxnG'.
-	    'nyNAwFcekvZpPP3mu7Vrp8fOq8DYbTyjdnAvBj7Jbd7nP95urs'.
-	    '+MC2D6unF+Cu0VJULQBAlsOQuueN3Hrp2nGUvqppemBZ0aU7Se'.
-	    'SXvYZFMKaLJn7MH3btJmZEMEmGSOreqy0SI/4ffo3uiUOYEACy'.
-	    'OFopmNWlP5uZd9uPWmUoxvK9ilO9NtBo6mS7KkZD0fOJYqgGBU'.
-	    'S/T7OKCAA9tfsFOicXcbxt29cAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: diam_pink.png
-//==========================================================
-	$this->imgdata[1][0]= 262 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX///+AgID/M5n/Zpn/zMz/mZn1xELhAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWEi3tX8qUAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: diam_blue.png
-//==========================================================
-	$this->imgdata[2][0]= 662 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA+V'.
-	    'BMVEX///+AgIAAAJwAAP8AAM4AAGMAAGsQEP8YGHMQEHMYGP8Q'.
-	    'EKUICJwICM5KSpQxMYQpKXsYGNYQEM4ICGsICP97e85aWpw5OY'.
-	    'xSUv85ObVCQt4xMa0pKa0hIaUpKf+9vd6EhLVra+dzc/9SUr1r'.
-	    'a/9aWt5SUt5CQrVaWv9KSv8hIXs5Of8xMf8pKdYhIdYYGKUhIf'.
-	    '/Ozs739//v7/fn5+/v7//n5/fW1ufOzufOzu/W1v+trc69veel'.
-	    'pc6trd6UlMa9vf+MjL21tfe1tf+UlNZzc61ra6Wlpf+EhOeMjP'.
-	    '9ra8ZSUpyEhP9CQoxKSrVCQv85Od4xMdYQENZnJhlWAAAAAXRS'.
-	    'TlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAd'.
-	    'LdfvwAAAAHdElNRQfTAwsWEx3Snct5AAABFklEQVR4nHXR5XbD'.
-	    'IBgGYM6AuHsaqbvOfeuknev9X8xISbplSd5/8JyXwwcA/I0AKm'.
-	    'PFchVBdvKNKggKQx2VIoRwMZihMiQE49YUlWBCcPL0hYq4ITh+'.
-	    'qKECUoLDZWqoQNA766F/mJHlHXblPJJNiyURhM5eU9cNw5BlmS'.
-	    'IrLOLxhzfotF7vwO2j3ez2ap/TmW4AIM7DoN9+tu+vLk6Pdg9O'.
-	    '6ufXjfXLm6pxPACSJIpRFAa+/26DhuK6qjbiON40k0N3skjOvm'.
-	    'NijBmchF5mi+1jhQqDmWyIzPp1hUlrv8On5l+6mMm1tigFNyrt'.
-	    '5R97g+FKKyGKkTNKesXPJTZXOFIrUoKiypcTQVHjK4g8H2dWEQ'.
-	    'B8bvUDLSQXSr41rmEAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: diam_yellow.png
-//==========================================================
-	$this->imgdata[3][0]= 262 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX///+AgIBmMwCZZgD/zADMmQD/QLMZAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWEwcv/zIDAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: diam_lightblue.png
-//==========================================================
-	$this->imgdata[4][0]= 671 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/1'.
-	    'BMVEX///+AgIAAnP8A//8Azv8AY/8Aa/8I//8Y1v8Izv8Y//8Q'.
-	    '//8InP8Qzv8Ypf85jP8he/8Yc/8Ia/8pe/8p//8p1v9Ctf8xrf'.
-	    '8prf8QnP8Qc/9CjP+1//97//9r//9S//9K//9C//85//8x//8h'.
-	    '//9r5/9K3v9S3v851v97zv9Svf85rf8hpf/G3v9SnP9anP9KlP'.
-	    '8xhP/n7//v7+f3///n///O//+U//9z//9j//9a//975/9C3v8h'.
-	    '1v+E5/+17/9j3v/O7//n9/+95/+l3v9jxv+U1v8Qpf9avf9Ktf'.
-	    '+Uxv+11v97tf9rrf+cxv+Mvf9jpf+tzv+Etf/O3v/39/8Akkxr'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'.
-	    'IAAAsSAdLdfvwAAAAHdElNRQfTAwsWEiHk6Ya/AAABGUlEQVR4'.
-	    'nHXQ13KDMBAF0J2o0E01GHDvJa7p3em95/+/JQJMYjDc0Yt0Zr'.
-	    'VaAaxHgtxwbSGPkGQpOIeQ2ORxJiJmNWYZyAhZR0WcgQGhViU0'.
-	    'nEGoedDHGxgRapRPcRpXhOr7XZzCmLjaXk9IIjvkOEmSRLG62+'.
-	    'F5XlEElhA5sW21GvXj6mGlDBfnJ51lr9svnvEKwH1hu2QPbwd3'.
-	    'N9eXVzuL7/Hn29frdKaamgcgy67L3HFG9gDefV+dm5qme4YRXL'.
-	    'oVR374mRqUELZYosf84XAxISFRQuMh4rrH8YxGSP6HX6H97NNQ'.
-	    'KEAaR08qCeuSnx2a8zIPWqUowtKHSRK91rAw0elmVYQFVc8mhq'.
-	    '7p5RD7Ps3IIwA9sfsFxFUX6eZ4Zh4AAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: diam_purple.png
-//==========================================================
-	$this->imgdata[5][0]= 657 ;
-	$this->imgdata[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbCAMAAAC6CgRnAAAA/F'.
-	    'BMVEX///////8xAP/OAP+cAP9jAP9rAP+cCP85CP/OEP9SKf/O'.
-	    'CP9CEP9zGP9rCP+lGP/WOf/WIf9KIf9jOf+MQv+EMf97If9zEP'.
-	    '+1Sv+lIf/ne//eUv/na//n5//Oxv/Wzv+chP9zUv97Wv9rQv9a'.
-	    'Mf9KGP/v5/+te/97Kf+9Y/+tOf+tKf+lEP/vtf/WMf/WKf/v7+'.
-	    'f39/+tnP+9rf9rSv9jQv9CGP+ljP+EY//Gtf+tlP+Ma/9zSv/e'.
-	    'zv+UUv+9lP+cWv+lY/+cUv+MOf+EKf+UQv/Opf/OhP/Ga/+1Qv'.
-	    '/Oe/+9Uv/ntf/eWv/eSv/WGP/3zv/vlP/WEP//9/+pL4oHAAAA'.
-	    'AXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAA'.
-	    'sSAdLdfvwAAAAHdElNRQfTAwsWEjX+M1LCAAABDklEQVR4nHXQ'.
-	    '1bLDIBAGYFqIEW+ksbr7cXd3ff93OUCamdOE/Mxw882yywLwPz'.
-	    '+gNKotlRFUVnNUQlCxTMRFCKEdE+MgpJaEiIOU4DKaoSIygtb3'.
-	    'FBUQrm3xjPK4JvXjK0A5hFniYSBtIilQVYUm+X0KTVNiYah+2q'.
-	    'ulFb8nUbSovD2+TCavwXQWmnMA6ro+di+uR5cPzfPhVqPV3N1p'.
-	    'n3b3+rimAWAYhP3xnXd7P6oc9vadPsa1wYEs00dFQRAFehlX21'.
-	    '25Sg9NOgwF5jeNTjVL9om0TjDc1lmeCKZ17nFPzhPtSRt6J06R'.
-	    'WKUoeG3MoXRa/wjLHGLodwZcotPqjsYngnWslRBZH91hWTbpD2'.
-	    'EdF1ECWW1SAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: diam_gray.png
-//==========================================================
-	$this->imgdata[6][0]= 262 ;
-	$this->imgdata[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX//////wAzMzNmZmbMzMyZmZlq4Qo5AAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWExZFTxLxAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-
-//==========================================================
-// File: diam_blgr.png
-//==========================================================
-	$this->imgdata[7][0]= 262 ;
-	$this->imgdata[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABsAAAAbBAMAAAB/+ulmAAAAEl'.
-	    'BMVEX///+AgIBmzP9m///M//+Z//8hMmBVAAAAAXRSTlMAQObY'.
-	    'ZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAA'.
-	    'AHdElNRQfTAwsWEwCxm6egAAAAbUlEQVR4nFXJwQ3AMAhDUdRm'.
-	    'kKojuCswABf2X6UEEiC+WF+PyDfoGEuvwXogq3Rk1Y6W0tBSG8'.
-	    '6Uwpla6CmJnpoYKRsjjb/Y63vo9kIkLcZCCsbGYGwMRqIzEp1R'.
-	    'OBmFk9HQGA2N0ZEIz5HX+h/jailYpfz4dAAAAABJRU5ErkJggg'.
-	    '==' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_pushpins.inc b/nightly-test-server/jpgraph/imgdata_pushpins.inc
deleted file mode 100644
index 2e588dc..0000000
--- a/nightly-test-server/jpgraph/imgdata_pushpins.inc
+++ /dev/null
@@ -1,518 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_PUSHPINS.INC
-// Description:	Base64 encoded images for pushpins
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_PushPins extends ImgData {
-    var $name = 'Push pins';
-    var $an = array(MARK_IMG_PUSHPIN => 'imgdata_small',
-		    MARK_IMG_SPUSHPIN => 'imgdata_small',
-		    MARK_IMG_LPUSHPIN => 'imgdata_large');
-
-    var $colors = array('blue','green','orange','pink','red');
-    var $index  = array('red' => 0, 'orange' => 1, 'pink' => 2, 'blue' => 3, 'green' => 4 ) ;
-    var $maxidx = 4 ;
-    var $imgdata_large, $imgdata_small ;
-
-    function ImgData_PushPins() {
-
-	// The anchor should be where the needle "hits" the paper
-	// (bottom left corner)
-	$this->anchor_x = 0;
-	$this->anchor_y = 1;
-
-//==========================================================
-// File: ppl_red.png
-//==========================================================
-	$this->imgdata_large[0][0]= 2490 ;
-	$this->imgdata_large[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMKBh4Ryh89CgAACUdJREFUeJy9mNtTFFcexz+/7p'.
-	    '4Lw1wZJKDGCAwmDAqUySamcCq1ed6k9mn3UfMP7F+1T3nYqn2J'.
-	    'lZdoDEjpbq0KG8EBFBFBEJye6Zmenkv32Ydu5GYiUMmeqq6uqT'.
-	    '6Xz3zP73aOcIKmAQkIFyD3N/jrBPwlKjLQEglVlJKyUjR3u7cc'.
-	    'WLoP3/4dvv03LNrQ8I6x1rFbDML9kOmHvh7IRHU9JKmUSG8vpF'.
-	    'IoXX/TV0AiEM5A5jT0noFMFMJHXUt/d5f9TUAbhtQ3cPFruDog'.
-	    '8klHMnmO0dGYe/myOJGINEwTz3F2higFXgy8PpAkOC+h8hoaCt'.
-	    '4ppHFcQAWSgOQlyI/p+lUjmRxWAwNJd3xca/f34yoFi4tgmjtD'.
-	    'NIFkJ4xcgBCgVqEBFJ9DqcZea/gNAAVEg7AOGYnHe9XoaJd3+X'.
-	    'LISSSwnz6lsbKCZ9sHh4UVdBkwdA6cPwNnIfJPmC3Ctgft3wwQ'.
-	    'QPkvTZJJnbExzfvsM2nMzVG7e5fG48d4lnXwTwEYCjJxuHQBog'.
-	    'BHUfKkgAIIhiGk06hTp/Dm5qS1uYlXLvtWd4gPgIiCrAEcVckT'.
-	    'Ab5p7TaYJrK1hQaEenrwSiVfQdc91P0kSp7Ii89D5ksY/kAkLy'.
-	    'IZXFdXkQjS1YUSEbdcRu168V6+HTUNIKJDRwdE+sBIQmP9Ld59'.
-	    'bEBA3of4F/D+uXb7rGaaCSmXI3pPj64PDaHCYfEqFVSjgWo2D2'.
-	    '73XlJNQTgCyQykIuBWoNKEeh1aLXBPBCggGdBOgxZVSjoajVhH'.
-	    'o5HWlIpq4bCQSgm9vXhK4ZZKh5SUYygp4J1EQVUD9xlU18BJQD'.
-	    'bUbJ5T5XJStyxN9fSI099P3baxV1dRloW2h2ivx/yakg2ot6F1'.
-	    'EkCa4G1D+zVEq5ArKTWM42Q6HUczQV7U66w9e0ZpdRXlOIQ5vF'.
-	    'VHUXILKify4jiEzkOqC3peQMoBQymFlMt4Dx6wUSxSsm2UZXEK'.
-	    'P30QvOUt8/2Sd78CdWwFDTA+gsw3cOlPcPUD+CQB52oQ21RKXM'.
-	    'eRhGXhOg7VoKrx8KuS4ygZhVg3ZI8FGIfwR9BVgAtfwxdXdP3L'.
-	    '86nUR91dXelNXTeWWy10paQHX602YAP1ADASAL7LJvFtMpOCc0'.
-	    'cG3FHuGlz6Gr4YEpnoTCbzsdHRbOzy5RCRiLRMk5rjyOtAimwA'.
-	    'U4U3SurBN/0wnAASBCVDIKpB4kiAB5Ub0/UvO9LpPAMDGfn005'.
-	    'AxPCzxep3Q6iqPLUseBoufCZRsAE6g5g5kKIDfKUj3wnpAG8QB'.
-	    '/Z1OIqANQuI65AtwNScyYXR2XlAXL2YZHzcklRKWl5GVFXFtGx'.
-	    'MoAiV/EQaAGH6BUQNWgQpwFngv+Ca8KUAQEBcwgTJHyMV7679R'.
-	    'XS8YqdSI6u/PMD5ukMtJY3GR2uQkr5aXeWVZOEALmA8WsIAxfL'.
-	    'd0goVLAdCOd+/YpgqeVtBv4yiA++q/RKKXixe7GB8PSyoljcVF'.
-	    'yg8fyubyMpulEk2lyAIfAAvAC+B+oOQFoAt/+0rAejB/EzjNri'.
-	    'vvqNnCd64jxcE39V8spnP+vMbAgDSePKE2NcXm06dslMuUlcID'.
-	    'TuFvqwXMBU8N39bGgRR+ki0Dz4L5DSAe9NGD7zq+6kcN1L6H2b'.
-	    'ao5WWaQHllRTafPmWrVMJUimoAQrBYJFjQwre7B6A8YAi8LCgD'.
-	    '5DVo6/hbb/iHK1KggvFeD3hHziQKEMuiNTNDbXGRTdtmw7Iwla'.
-	    'KGH0oqwbscLOoG46rAY6AOzRhY74PT6QuUKEN4PegXxd/yEDTT'.
-	    'YMWOk+oEaLkuFdNk0zTZwjfkavDUArXWgGXgFb4dEShXhfYqlI'.
-	    'ow3w9rg3B6ED60IOOA5oEYQBrcpG+mj9bg0VG8GMJhVDZLyzAo'.
-	    'VSq8rFYxXXefcjVgG9+uisDrXUCApoKSBcUHMBmHhfcgNwhtD3'.
-	    'q9IG6Lr15b4OUTmPwBJt8JqGuapp05o0mhoHnptLQfPsR+8IBK'.
-	    'uYyNH3yr+B77LHheA3tK1Ta+IrMeTL2C6Xl48TOsNWDDgAz7s5'.
-	    '/r+krP/eddCsbj8fDQ4GBm9MqVvvRXX2VULBayRGRzaYn1SoWa'.
-	    'UjgB4PIB5QK4ZgBXBKaAHxQsrED1H7CRgCUPwgHZDqACmhWwXv'.
-	    '2aDRqGYeRyufS169cvThQKV88PDuYbW1vJ5VRK+5euqxWlPMdX'.
-	    'SRqgreHbZGN3ijfKBXBTAeh2Fdwi2MofshP/dvKwCmKhp4m83Y'.
-	    'vj8Xg4l8tlCoXC0MTExMTFkZE/1m37wvLGRvKRacoD1209E7Fc'.
-	    'pZwYREOQqEJ4z3HskHLsz4AoXykPIBSN0t3dTTQafROoHdumXC'.
-	    '4fjoMiog0ODiauX7+eLxQKV3O53ETdti88nJnJ3rl505ifmWm3'.
-	    'arWSodR8GNbycDoNHy5C5jFold1k8d+DyvELNwg93d18/vnn9P'.
-	    'X1oes6nufx/Plz7t+/fxhQKSWJRCI5NjaWHxkZKdj1+sjSwkJm'.
-	    '+uZN/dZ337VqCwullGUVdZjsgIUC5LqhrUPvCugWuApeApPAzY'.
-	    'PKHWyaphGNRunt7WVwcBARwfM8Ojo6sCzrMKBhGLphGFEF2Wq1'.
-	    '2jc7M5OZ/vHH0MPbt93awkJJmeZsC6ZaMK3DCwvWdNioQUb5B6'.
-	    'AdBR+9SzkAz/NwHIeXL18iIui6TjgcJplMMjY2th8wHo+Hh4aG'.
-	    'MsPDw6fddru7+Phxx51bt/RbN260qwsLpZhlFZsw9QJ+2Pbrga'.
-	    'oJG2FY2oKwuTtVEz9uV34NbqdtbW0xPT1NNBoF4MyZM1y5coWu'.
-	    'rq5dQBHRcrlc4tq1a/l8Pj9RMs38ndu3Ez//9JNXLRZNyuXZJk'.
-	    'xVYKoExQpsK/+IaAuYb7no8zjC/R+A4zisrq7u+53NZjl16tQ+'.
-	    'QIlEIslsNpuPRCJXZ2dnh2/duNFRW1oy07a96MKd575yxRqU1B'.
-	    '5vPMpF5HHa1tYW9+7do7Ozc/eQpZTSQ6FQt1Lq8pMnT/5w7969'.
-	    'nuLcXE1rNufO9fRMhlKpOyvt9qPtVmvb25fFfvvWbrepVCqHwo'.
-	    'xaX19vff/996ZhGC8qlkW9Wt1Onz073fXxxz+6MB+9e9dUjuO+'.
-	    '7ebq9wLdB9hoNCrr6+s/4wf3FCJW3fPmTZhXsNWCprjuW66Dfr'.
-	    '928KAfBhJAEgiJSLuzs7OSTqctoFkqlZRt26j/I+L/AGjPTN4d'.
-	    'Nqn4AAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-// File: ppl_orange.png
-//==========================================================
-	$this->imgdata_large[1][0]= 2753 ;
-	$this->imgdata_large[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFQ0VCkHCzQAACk5JREFUeJytmGtzG0d2hp8zNw'.
-	    'AEcRdJ6EJK9FL0CqZUm9jWbkwq3vhDstl8dmLvz8rP2H8Q75ZT'.
-	    'pkRfpLgqsS6WIFEKGYkiSBCDO+banQ8DUpRWEkklXQUUqlCDfv'.
-	    'rp857pgfAOQ4AMOJdg4R/hX96Hf06bvDc5iT07i8yeg8ksiIAI'.
-	    '4TBi/ds9/vivD/njapNHvRBfHXMu410AM+BUoVSF05NQsi1sO4'.
-	    '8402AXwLQTuP31OAZO2aG0MEn14iSlnI1z3LnMk8IZYJyBwjIs'.
-	    '/TWsVIWPJkvMFS4zMfMhUp5BsoCpAAEBLYKaMFGn00jBxnvu02'.
-	    '35+JHmSJEnBpQEcPo38MmCxd/nS9Ry71Ga/g1W9a8gn0GsHkgA'.
-	    '6DGjxkqb5CoO+YxF3A3p+jGjQUzoK+L/V0ADzFMwtSR8eLbAr8'.
-	    'uXOTf9NzhTc0geSLUQcYHgYEH786RMg0zWJHV2Aitv4x/HpHVS'.
-	    'QA2YBqTTGIUq5qkPMWaWkVwPnPtAA/BevmZcjxaaUtHh8pJJGu'.
-	    'DpCB9FvT7A7YT7S3p5vFMNzmWo/O0MSx/Ms3TqI8r59zFTfUQe'.
-	    'I7SBODE3tnfoIxYnNHligwik0zAzDdVpyKbA8sff5YAeMEwgkV'.
-	    'cufQeTJzZoCsaFLKXPTnNpoUTNsSgJmNoGsuNQjIDwYD2HlnZy'.
-	    'k++yxTKXZfKTU8zOpjhneeQYkorSmGERtIlICBKRbLX+y98YN3'.
-	    'ADcNIm+bJD4U3pPnmbEaRgYVRTGBkDSSsmxKfY7ZLuDJA4hdjl'.
-	    'JEgyBB2SJOvQ9RzTpNKoEwNq0CNFvOXR3/HxMgYVPObaz8kPmh'.
-	    'hkEWMatAfRONGGvLizyOE9P8KkpwhPDAgQKJQbELUD0oOIhbbH'.
-	    'JeVTmowxjAgZutB5AoOngA+2DdYrcTyOyYZP9+QpBvI29vwEhb'.
-	    'It042BVQgDy9KTMfkwQG1A9ACCLlgBBGUwxxoc52WDh2ATyEPp'.
-	    '1hoaPvrEBh0Dq5an9OUsl/9hylk5b5c+mowLc4E2Jtw4Eoljyf'.
-	    'ogA/AGEAagNRjGyUxOmEycyVA5EWDBxrmUp3ytLIv/NJP69Goh'.
-	    '+9mFydIvS5PZYkvH1oY/RFtKymlwBFQAgQd+kAA6qSQ8pvn2mp'.
-	    'SkJkuVFHPHBnQMrEt5Sl+e4/Lvp51PF1PF5Xy6WMvOWZXMom8z'.
-	    'OZTQ8+j5sbQiMEwopsCIwRtBGIJSCdzbTGo9NimkDcgdC7Bg49'.
-	    'TG5n4/nfr0Si77WdYp1YzyZEkWPdteaEnB7pPqBTxuIf/VgciE'.
-	    'SgasCPwh+GNIkaNNag1RiPge5pEhMQVjfoLcF+eoXSvbKxedwn'.
-	    'LKzC3KWbOi5/sW5a44/SHFUSgVA7SCzRG0AvA9mPOgFIETgu4n'.
-	    'Ww0wNQWFAqRSL6D2ZQYBdDrQ7R7jXiwgRcvIL02makuTmWtpM/'.
-	    '+BlLMl5vuWzLVEuwH6oYnR1KS8kJINGXMM2YdfRlALoQoQQKeb'.
-	    'bDVwoMdxQMaLCwLo96HZTF5HbrEhmOftianfZisfzueKv7ZmrX'.
-	    'MsjhxKXZGBjzyeEHmSE3oWiggtyVGmE8DTIXTC5NxgAxOAGUM8'.
-	    'fun9mnSSLQ/CxNzOTgJ3LIMgoGwkKBiiMyaVviHVkdCO4FEKNv'.
-	    'LQzWBYHfITPa4UBVM0LR/WB7ARJsdDDTjA6deYFIFUOimJ3d0E'.
-	    'sNdLavYYgBpthqKcjiiJRO8K6CK0CsJTjfQAGaJtD9vQFAxNNQ'.
-	    '1FB0yBAfA8gdMAIagLoCVAen0M00zMOTYShNDtoHs9CAIUoI4E'.
-	    '1IBihCdNhsMhsj6NuV7BCC2IBpBqQaaFOENCCeiEsO1BO4RQgy'.
-	    'I5Hm4k4oIU9MrgZSAdBeTabZz+ODxKQRRBFBJo6IUc51anYRQo'.
-	    'dto+24FNxYCiaWKkQsj00KkO4gxRRkAngJ868M0u3OkkM+hxQA'.
-	    'cQ7YD7GO5XYSsPZybh/TCkFIYY+kWniTW4Q7jXgHvHMhiRpmuW'.
-	    'ca08GZkkZ/nY6TZMNhCnf2CuPoDVJvxpB+q9BHA8Ag1uH+oP4c'.
-	    'YEPCzDwmzSLquShHW/E0YRbG/BjZtw40hAy7aNzJlzRn75E6N0'.
-	    'qiwTzafI7kOU3gWrhzZC2iHcbsPqLlxvJnCt4KC1RYAL3I5hzY'.
-	    'Xv/huePYCtITQMKEnyB4KQvMURuJvw889HGSwUCs7CwkLpo6tX'.
-	    'Ty/+7nel6VLGDn/8N9m+eZuo1UP8iNhLau6b3RfmOsHBGTUYw9'.
-	    'WBNeDrGB4+h/4qNLKwTnLbHj9CJw/6GoIh9Jpvq0HHcayFhYXi'.
-	    'l3/4w9LK8vLKexfma3G/mb/3n1njTivS7tNQaaU1grQDjJ868D'.
-	    'Axx6vmxnBrY9C9IcSbSXbavNjb/S3eN6/0m1JcKBScixcvllZW'.
-	    'Vi6uLC8v12q1v/M8b/HxVjP//YYr32yE4dYWvShO0ogi14xwxq'.
-	    'F4rbnxZ3cMjtpvEEeMvwA0TdOYn5/PffHFF7Vr166tvPeLXyx7'.
-	    'nrd4+/btyg/frFo//Xgncnd67qCn78earQqcmYD3fSi1wPCTSV'.
-	    '3gzqvm9uFOMl5nUAqFQn5paal26dKla57vf7D+6FHph9VV88af'.
-	    'vgq79bo70e3VT2l9A3hYg4UiRALVHTCHSZvYBm4A//6quf8zoG'.
-	    '3bpuM4acMwKr1+//SDe/dK31+/bv90/Xrcq9fduNW6rbVeC+E7'.
-	    'gWdD2DKg4UEpBmPcm10RuScida31ntb62HAigoigDw6Gh0axWH'.
-	    'QWFhZKi4uLZ+I4PrVer2e+u37dXPvqq6hbr7tOp1NXWq89h6/b'.
-	    '8FBB34WGBesdcPrj38lkMkGlUuml0+mu53nR3t4eo9HoSLhMJk'.
-	    'OlUiGdTuN5Hq7rvgA0TdO4cOFC7vPPP6/VarXldqdTu7m2lrv7'.
-	    '7beq++BBO263b/tKrfWSXlbvwJ6CuAtDgTYiaBFMw6BSqfDxxx'.
-	    '+rarWqGo0GN2/eZGtrC6XenAkRoVKpcPXqVWZmZmg0Gty6desF'.
-	    'oIhIOp3Ol8vlmmVZK3fv3Lm09uc/Zwbr653ccPgoNIzvnmn99Z'.
-	    '7W9QG46lAaM5mM2l95GIYUi0VOnz7N7OwsWmsymQzyuse5Q8Mw'.
-	    'DNLpNDMzM5w/f/7A6AGgUkoajYa9urpayOXzUz/fvZutr68Pim'.
-	    'F4/2y1+n2o9Q/ru7uPesPhXnyo4A+vfHp6mmazybNnz9jZ2UFr'.
-	    'TbPZJAhe+8/aS0Mphed5NBoNABqNBqPR6MWBVWstvu/nnj9/Pv'.
-	    'vo0aPq5uZmPBgM/qcwPf39xV/9ajU1M3Nvq9PZaw8GoT50PjdN'.
-	    'k6mpKa5cucL58+eJ45j19XWePHnCzs4OnudhmiaWZRGGIVH05r'.
-	    'yEYYjrumxubrKxsfFyDQJ6NBp1Pc+7C4jWumBaVm+kVL2l1H2l'.
-	    '1G6otS+H6V6z8u3tbVzXpdFooJRicXGRqakptre3uXXr1ltrcT'.
-	    'Qa8ezZszemWAE9rfUdYBOwtVLRbrPZ+48ff+wDvuu6Sr3MB4Dr'.
-	    'uty6desgfa1WC3iRyrNnz4pSSmezWUzTfGtYtNYcdvC/9sMlgP'.
-	    'n5N4cAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-// File: ppl_pink.png
-//==========================================================
-	$this->imgdata_large[2][0]= 2779 ;
-	$this->imgdata_large[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFQolY9lkpgAACmhJREFUeJy9mOtzFNl5h5+3b9'.
-	    'Mz0kzPBWmEVtIiWYhIiC0HCDhB8lb8ISk7nzdZ5+/zJ/8BTmpT'.
-	    '660CZLwG1pVFgBkgGIHECEaa+/T9nHzQCCQuRpCNz6mp6g893U'.
-	    '8/c37ve3qEjxiC4OA4n/Lp/EUu/tsMM/+aEWduVBx7WhdkShcY'.
-	    'xUH2zo0Dwod/5N6vf8V//PoGdx8M8EOFPtK9jI8BdHCcMuVSmf'.
-	    'LxHLmSZdm2U8xIbmKETDGDZZnIy4dBbCynyGhphurEDBOlHFnn'.
-	    'qPcyPxTOwDCOccw7w5nlBRZWylI+ny/mZ6rL1dzUZ5/IWGZU3D'.
-	    'ZIOMQDDaJcHDVGWUbJBi9odVr0QoVSPzigIEaZ8vgSS/8wZU3/'.
-	    'k1fylipz5dLM2WlrZqHKaGCKbEbontq3KAKWQyZfZKTgYqc9Bp'.
-	    '2I2PcJ4ogk/UEBQcwipbFZmT13vDBx8fhnE1Ofnp9yJopFyT3X'.
-	    'yANfks0QHSQMDaL37pOxMLIu2UyVkjVKLjyKSeuD8dAYCFkso1'.
-	    'gYMaeWJ40T56cl8yAi/O4FSa2P6kYczIDsgVpAqcDImZPMuAB1'.
-	    'dkLQtcc8a/bwox8IUHAxZVxGZMouSLVYwKuMkD5IxN+JSdsRJB'.
-	    'pexuTVgYYM6EoGmxkmg3/hEhNUMr/hd7dqbOzExMn/GRDAxWZc'.
-	    'j3I8HiXfMjF2FQowKw7pjoN6E/Llw/GBJj8qxVOMlX4ipxc/lY'.
-	    'kl2zBLkmrTcEzMkoNoRLVidLi/9g+Z3I+1xRHX5EcAihxnbPRv'.
-	    'OTU9kZSmpKPy9FTGrLimPZ1H+UiyGaF67w6n7E1DwMngFDxGvc'.
-	    'w70v0xZUby5IxjlIyMssUJrJwVWkXBdbXvSvwEibcSdKCAFI16'.
-	    '4/sc0SRo9cGAGq1DwvQFzV6DVuBiV4zYnlEts6A2TSPcSiXoxo'.
-	    'QqJCEEFMbQ2b69o5qMiOOPqIMQkagu/aSL7waE8101WFShLjk9'.
-	    'yxgEvjRUiyYd+gwAjY2J9VpXfZ/JEXLhDp3OR6U4T97+hEnPwx'.
-	    'tv4HsRjy2tTQSFzQgDUnwSLBQRI+x1ZgcH87Vcv4SF19Kt0ezS'.
-	    '1h9s0Ma25pgr/YJfnLnEysok0+ezjM6EBLldGqKIJYuDRhOQEJ'.
-	    'Oih8X9Q0xmcXNjlCofBJgn78wxVz7L2YWf8tPPz1hnfjbjzfxN'.
-	    'qVwutq2etZXUQSXikcXGIgUiUkJSDIQMJgYGJsaB3c7b1qQ4GZ'.
-	    'xSkdGZIwMeNLfK6uezMnvJK3pLxeVixfvMsyVjSNSO6IV9adPG'.
-	    'AArkEEz8oUkFmBjYGO80qfd6pCWIayD59wIKcsjcKqufn7JO/S'.
-	    'xfyi+5c24pey5rZ09mJRNkiDdT/tzbkBr3SYkpMYpgEaIJSYhI'.
-	    'kSOY1GhilAQk5ntDIojxCZ/kf87Pl85xbuWEnLiUy+cW3NNuJX'.
-	    'MmY5meKf6mT7wZS+THdOjxlG06tIlIOMZxchSxcFFEGAwAGGME'.
-	    'jwyZYSnWL3cXWiIUbUI6hO/vxXuFOV84ycmlBWthNeflTjuzTi'.
-	    'lzJmM5s46Ej0J63/ZoPmoy6PYxtYVNhmfs0mbAND1mmKVMBY1L'.
-	    'mxA1LN7WgXQbCApNhKJHRIM+DQbv7yQGhjnJ5NgFuXBuxpu5mD'.
-	    'udm3LPuY7pmZLUE6L1SIJaIPFuDAqyw9lnwDYv6NFHkWJh4ZDB'.
-	    'wCBFD3uMxsTAwcBAiElpE/KcPg36dIiOvpsRxDCyhmlP2YY9ZU'.
-	    'v8NMb/1id+FGO0DTztkSXLOONUqeITsMkW2zwnJEIDFhYGx+A1'.
-	    'kwK4mASkvKDPc3p0iYhRRwYUhZLUTyV6Eu0t4s1Y4kcx6W6KaM'.
-	    'EZThcXH59RRhGEgIAddnBwNEBKqqpUtWBIF22YDIhJsbEkJqFN'.
-	    'qLtERHs7GnUkwISEQAf0uj30bY39PzbiC6qrDu2cExJ69Nhhhz'.
-	    '59UlIUipCQOnVi4sjG7ubJBy6um0C+he/0iDHQKIQERYyKFLqr'.
-	    'SI/W6kJCnvOcrWSLSquC1/Jw9Ks3R0FQKHr0uMc9bnCDGjX69A'.
-	    'H0XlcJkibN5jOe/alCZStHbjJL9lSMLkXExvCXRiDV6GZEeGeX'.
-	    '3TvvBVQoEjfBL/v0rT75Th7VU5C8gktI6NLlMY+5yU3WWGODDf'.
-	    'r098tHpNFNH7/2lKdXXdz7efLzVaqJIBOCmK8AJUlI6g0aV+9y'.
-	    '9+p7AR3bMQpTBWPy7yeN6fy0jNwewfpvC9Xe+3kFoUuXe9zj5n'.
-	    'BusEGHjh6GIAGawC2FWuvSvbbF1maFylZAsC1ISZADBiVNSJrP'.
-	    'eX73MY//skHP85z5+fnSxQsXj//4n39cmnPn7LbZlsajBmEnBL'.
-	    '1nuEGDG9x4aa5Ldz+h0RCuBqwBv1Wo+7vs9r7n++0MmYeAM+zB'.
-	    '+61EK1QUEnbbtN+9Bh3Hsebn54u//PdfLq9eWl2ZnZ1dSnaSwu'.
-	    'Pin40b9g3doKE0WoNIl65xj3v75njd3BBubQi6ExKmDWkMRKSl'.
-	    'tSbVKQcMao1Go5Ugb0+x53nOyZMnSysrKydXLq1cWlxa/McgCB'.
-	    'Yev3hU+GPrD3I5/q94k3pXYQY58q6B5Bs0HB//neaGx00gyWaz'.
-	    'VCoV7bquCoKAnZ0dfN/f03egLGj0m3XQNE1jdnY2/+WXXy6trq'.
-	    '6uzP3oR5eCIFi4detW5feXL1vr679Let37zVB3/mQytjXJwmSB'.
-	    'wikHp9ShY0RESqObwPrr5oBERKhUKly4cIFqtUq9XufmzZtsbW'.
-	    '2hXvuDwTTNtxZq8TyvsLy8vLS4uLgahOHphw8elL69fNlc++qr'.
-	    'uFOrNXPddm1cczVL5f5P+Lv5MuOJgTGxwYbZpZsCdeAq8M1Bcw'.
-	    'CGYeC6LtVqlRMnTjAyMkKn0yGXyx0N0LZt03Ec1zCMSrfXO37v'.
-	    'zp3S769csb+/ciXt1mrNdHf3ltZ6Lca8ZpJsduhtCdb2gEFJoQ'.
-	    'xADYHuHDS3f32lFEEQUK/XGRkZoVAocP78eZaXl9FaI/Jq25Uk'.
-	    'yWHAYrHozM/PlxYWFibTND32sFbLXrtyxVz76qukXas1M61WTW'.
-	    'm99gx+20TdN9jqtfjP7QzOwwYNp037Zd0DukDnIByA1pqdnR2+'.
-	    '++472u02Z8+eZWJiAsMwDsEBRNGBzYJpmsaJEyfyX3zxxdLS0t'.
-	    'KlVqu1dP3q1cLta9ekU6u1dat1J9b6Sk9kraV1rYXegW7apDYw'.
-	    'kFY6fPc4MNTw88bwfZ/NzU2UUnieRxAEiAiGcXiXfcigiIjruo'.
-	    'VyubxkWdbK7fX1xWvffFMInjzBM82uMT5+p++6V1UUrSe7u03t'.
-	    '+8lezlKt3gHyl0aSJDQaDa5fv876+vo+w6FzDq1BpZRsb2/bly'.
-	    '9f9vL5/Njdu3fzG0+eMJHNxsfn532vXN5NPG/7abPZal6/Hvfe'.
-	    'kroPHfsm98f7AHW9Xo+//vrrlmVZm71+37QNw3JnZ9PK4uJGpV'.
-	    'pt4Dh+vLGhsrmcfv1iHzu01m89HjIdCon2fb8TBMHtvYeRUn50'.
-	    '1Oj4vqp3Ok1f5LYSadfr9dQfDN642P/XeF2DA+SBAuA4jkOhUK'.
-	    'BQKESO43S11p3BYBDt7u4y+CtB/i/q7jp1GMiw2AAAAABJRU5E'.
-	    'rkJggg==' ; 
-
-//==========================================================
-// File: ppl_blue.png
-//==========================================================
-	$this->imgdata_large[3][0]= 2284 ;
-	$this->imgdata_large[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFRAiTZAL3gAACHlJREFUeJy9mGtv29YZgJ9zKF'.
-	    'F3y/Q9jh05tuQkarKgbYasde0UBdZgwNou/Vqga/sD9mP2B4a1'.
-	    'BbZ9atFPxb5sqOtmXbI19bqsluPYiR3HN90vFEWRZx/IJI5zqa'.
-	    'x0OwBBSgR5Hj7v+55zSEFXTUgIJyA9C6/9RsjMjAyFIxxJCDc7'.
-	    'iBqKgyZACGg3G2x9+xXf/fG33P3mC9qNKsp1O+1JdkEnQTdgIO'.
-	    'ttCSMUi8gj072MnugllAyB9G8rBGi6RsToJTF6iuRoFi1kHKZf'.
-	    '7fB8Iggj0/Dy23D2dakNTR3JDsXPvzstxmZGRMER1EwHhQAEgE'.
-	    'CLhIkPD6InY9S3djGLJVBtQP1Qb4HDAyoJYQOOZkPx49nhTH9i'.
-	    '7MUBGT7egxkJgd70wZS/CUkoZtA/fRoE1DZ2ACiv52ibReCp4e'.
-	    '7CIEHomxDiuVdGTqUnf/ZeOjR8fpiVXZul5ZrY3bWwbdcLr/dA'.
-	    'AAIpAwQjUWIjQ+g9HZvswiCgBVF9/SI6OSLGzo0i+oLi6+Utbq'.
-	    '+bKEftgwOE/0Ohocf66M+cBjo22U2RQLIHMhmYnvaOpR9S8bSU'.
-	    'UqCURGpRkuMZMm9cIvPGJZLj0yBjT2LprkiSkykx9cuXIhOnUs'.
-	    'm+QNC2XdG02ggBTcvFabsPWwTPpBAChSCgh4kYBpoeplWp47Qs'.
-	    '7EYDt21xINzd5GCAxLExRl89Z+nHjpbKMmjbmkgfDzI0JEW53K'.
-	    'Jaa6NcAOEX8v52uJzsBlAS6u0hcnTIccPRqhWPCUcLD+s1EaUp'.
-	    'HCEhEMCyHNpt9SjgIU12A6iw6xb123vYhaaKjB9tlgMD5X+uBp'.
-	    'zdkpg6azA8EaNQtKlVba+Xez4eCntnJrsDdFsW5nYFpxlFN846'.
-	    'DXe8utkM4mhi+EgQmjYbS2WqexZKk6BpjwJ2YlK5VjeA3pNDiH'.
-	    'YjRWPzPE7tmBo8EWwGhkXx+z3uXL7D3rU97LIF8RBEAl6lK/Uo'.
-	    '6JNM1rZ2aTcr3eUgIQOGTgbdwXMGyRejenLYTvQGbAdRuetSud'.
-	    'OivVuFZgtCEgICghICnZoMhmlVTPR49LCAEkQUhk/B7KXe0MWf'.
-	    'nxj8xVR/cDheK14WZmtVMJSBnlGoN6FmQq0FLfdwJgORKPHRo/'.
-	    'Snzx4G0F/FjJ4KiOdmjPCrrx8bffnMybMv9MQGNG3rzlVqtR1B'.
-	    'sh/CYXCD4Aag1oCW7ZnUOjSp6WFi/QNEB8Y7BfTNjZyCmUvJ0I'.
-	    'XXT47MTp98Ybon9VZCk8cVazfqlNargsY34G7ByAlIjkHd9CCr'.
-	    'LbBdiHViUgiECuDKYCdz8b2cywREdiYZOj8zNnLuzOTzx6ODp+'.
-	    'OaGaqwVzBFqz0Idhz2loE7YEwBLaAJLQcKbW8qjAcBF5Jh0AMP'.
-	    'IOHe6kxgtb3UMO2OxkF//ffK28nQqxfvm3szrtnDVa799Qb/+v'.
-	    'NtsbNSpm3tAv8B+w7Ub0FhAyoBcMPec9oK6raXk48ziQBXQcmC'.
-	    'pT3YqHa0mpEBkTR6wz/Jjo2cy04+fzwxdDquNfQKO7sFUbpu0c'.
-	    'wp3JoAYsA42Bbkl4GCryUNDEM7Avm6Z/CgSYBWG8pNuFuDu1Wo'.
-	    'tjoxKIJGeHIiM/jmK9NnX5ycuJQMtUcqXPvLDTa+qIie4hAJ1U'.
-	    'vdrmO2HaDfB931twJgAn1A4lGT96obPHPLBbhVgUoTHHWo9aAA'.
-	    'JVAKpyKEmQNzWRENAsL18ycKjAFN/9gCNvzLB/390MMmE7pnDi'.
-	    'Bvwt0K5Jv3O+0oB22nJ1Vvjb/UMhOpcKknqN1OiMB2DNHU2G5s'.
-	    'sVndpGJVcZXjX1IAlvw9PmhRQcOFPhsSDkiBrQR1G7brgs0a7D'.
-	    'ag3FK4rguqBXarI4Nt1SJv5gls7TEWtJDRBO2GwnIs8maevFnA'.
-	    'Gx6awLZvzeTBu4kFbLigijC47pscpx0xyDfkvtUEnlarCDtrUC'.
-	    't2HGIhvPHVdVwqjTIrxRU2a5uUrYoP0QZ2gMvACl7+3V/LuKDq'.
-	    'sJuDy597516+CEezIHXv7vcgXQu2l+Bvn8He9Y4AE4kgk5P9DE'.
-	    'R6aFdq5Et5Nit3yTf3m9sBcsAN3+D98c0Fit5JawE25r1zg1Fo'.
-	    '5B8GFD7g+nVYnu8EUEop9XTa0N/9dUbqcphP/rDJzbUClVbpgR'.
-	    'y2fXM3fND95qj75J8AC6BWPINfVSBieK+x+6cS5UCzCLu3oFV9'.
-	    'GqCMx2NGOp2Znpv7aXZudsool3T5J/179sxVlHJ4kGPrP2COBX'.
-	    '/7DmiApWCjxIMXpYNznYuXM+6TAKWUMppOZzLvv//ery5cuDCT'.
-	    'SqVS336bCwr1JfAPB9r+2KAFwJS+OcETzZHz/7v3etl6ipz77X'.
-	    'GAMh6PG+l0OjM3NzczOzs3k0pNnFlbW43+e/GKtMqrblSsF03V'.
-	    'WHcJA0PjIAzvg9JTze2H67g9DjAwOTmZ+uCDD96anZ2dnZiYmF'.
-	    '5dW41++Lvfa1fnr7qllVK9103mXNTnJgPA+YugsvB3HTaEl+Qs'.
-	    'AZ/yeHPPDCiTyaRx5syZbGoilV1dW00szC9oV+avusuLy0Xd0X'.
-	    'MgFkDM+zkYBZEHV8f7wwKu84zmngQoNU0LaZoWUa4K31y5qX/8'.
-	    '4cfyyvwVN5/L10NOKNeg8UmDxoKF5Vfj1xXAgD0JrgAcvBDfel'.
-	    'a4g4AykUgY6XR6emJiIru2ttZXq9S0K19eUcuLy8WQE8o5OAsN'.
-	    'Ggsmpl+NpoL1g9X4UBU+C9xDgEKIwNTUVOqdd955M9mbnJ3/cj'.
-	    '6Vu5aTheXCQXNdVeMzAwJSCGEA2XKpnF1cXIzlFnOVhJPIKdR+'.
-	    'c88ctq4AlVKsrKzw0UcfKcC5uXqzXnNqSzb2pwLxOHP/l7Z/BN'.
-	    'eB01LKt4HTrusKvGr8jB+hGn8MQAkYQMrfw4Nq/MFPtf+rdvDb'.
-	    'k8QL+/5Z4Uepxm7bfwHuTAVUWpWaqAAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: ppl_green.png
-//==========================================================
-	$this->imgdata_large[4][0]= 2854 ;
-	$this->imgdata_large[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFQ4hANhluwAACrNJREFUeJytmF1zE1eagJ+3u9'.
-	    'XdkvUty2AbmLEtEzDBgZ0UpDBOalNTUzU3czl7tct/2n+wt3M/'.
-	    'NVM12SSTQQSyW2TA+QAJQogtYYFtyfrqL3WfvWj5g8AEjzfvhS'.
-	    'SXjk8//Zz3Pf3qCMcJAWxMKlT4kH+jwu/FknnJSUItKFHzCrKA'.
-	    'BggBQx5ziz/wn/yBz3hED4/oaJfSjgVoYjJJgTLTZCjohp7IGT'.
-	    'k5aZ4kb+bRTR30Q7djj8f/kpPMUSCFedRL6W8e8qMQNE6S4xpv'.
-	    'c5HrTPFubiJ3ZnlyOXV59rJYU5Z00h1c3d0brxAiUkScRijisk'.
-	    '6XLTyiN3s8HuAJpniXa/q8/pt8Or+0kF8oXJm5YiydWcIpOrJu'.
-	    'rjOQwd54AQwsMpTJYhPSoYuLQ58An/DnBQSdImXO8avsTPbqpc'.
-	    'lLp67OXDVzMznZLGxSs2qyIRu4at8gKHQEC50kE1icxqCAdxST'.
-	    'xjEA44tqaJlERl8uLWvvnX5PHuQfcCdxh5qq0aX76vj4WgWyXO'.
-	    'QiNgBP8IAaddr08X8+wHFmJSQhBbPAZGoSZSt5wQs6qoNC7UEd'.
-	    '4AEoLIQSCaCCy78Dv8Tiv1hjjW1CRj8XIAgEKqDtt9keboMJZa'.
-	    'vMjuzQVd3Xr9prTJo+GF/jKZea95R25Lxs8jg5qFGiwDnOS0mW'.
-	    'NE0rjNRIt3WbklUCA9mV3Zdz8OBT/JfCQLB0SKYVVjGFYSfx/E'.
-	    '26ow4e6uDujlPFQpE0FU6P8qNTHdXJdEdda0qf0itWBVM3pa/3'.
-	    'ccUlIECJet0cAJoeYk5EZCeS5IwEoerSxccJBwRqFFf38QCTaO'.
-	    'TRVFKJm3NTbtLNSyh2IkhIXsvLCesEGNCWdmwyruSD/z9kUlRc'.
-	    '3bqNlSxhJNJ43p5JITrOEis8Qtr0cXEpU/JT/pmO18n2vb42pU'.
-	    '3JnDnHMBqyPlpnoAaxhr2llv1ZUBqEGlqYwDQMsskMOcMgVL3Y'.
-	    'ZOQTHAcQQiIGjHCwCaiovjrv4hbcpKuJJjIcDHm685RGr4GLCx'.
-	    'YHkAcrLoAoDSLBiAQrMkjqybHJCbxgh+7xAC1MpsgzwRwD3qHL'.
-	    'WyTIBdlAa6u2rHfXaew06PV78ZZjAwleNnkolECoH5i090wOcY'.
-	    '+TgwYzFHiPi1zkOkXexeAMASnVU+LiyiA1wFUuaqggACLizeWw'.
-	    'ycMzyssmVYKkbpGyC5T+OUALk2mKLHKWf+ED/az+YW42d66YL+'.
-	    'aNrmEEzQCFEnKw368EgEvcN1m80eTIQIt0TFOjMJHkzNEBBYPp'.
-	    'sblf8QHzrORO5JaWZ5ZLl6cuJyyxpNPv4PZdoT+GyIxBfI5uUg'.
-	    'eJMCwP2/bIHO1JEudcgUUWOceKNq99mCvnzs5PzRcuTV4y5mRO'.
-	    'SMIjo47z5S7a94oQCNKgJsZwO7D/IDNg3/LLhRNXt4JohBb4aG'.
-	    '82GLdXcf93mQ+Y43r2RHZp+cRy6cqJK4l8MS+tdItaqiYtc0Mm'.
-	    'QpfJARh98HYh9IiXVcaAo58wGb+LBAjbSPgCOcoSa0wzxXtc08'.
-	    '/pv8mfyL+9MLVQvDJ1JVHJV6SZbFI1qtTsB+KlehRtRTGE8Afo'.
-	    'P4DRcAxiEudhAHjjzz+ubgX4oHowakHQOlqzICQwyVPITGVOXi'.
-	    'xfLF6aumzmczl5lHzMff2+fCdPaGttEkXoLQAO9B7C6EugPYby'.
-	    'gVPjGXc5eIbNAJPjGwiAbaAJUQv8wVG7GROkJFpyOqn/ovgLba'.
-	    '44L0+sDaraXb6jzq7aBQWjBOyUoHcaopOgmaA3IRyNDZnA1HjO'.
-	    'HSBkr7eEFDAEngHrQCf+/s2A8cSiSkqcKUeeTjwFy2Jd78t3+L'.
-	    'TR4itIiBLwLQhzkJyB5Cx4HXDaENVQCBAQcRqFIHTRaBIvuYXg'.
-	    'AdsouuNxEL0ZUBHnSQp66R73zYfUtQ6OytKT8RckQAJQoLtgO5'.
-	    'BJgj0D/WfgdyHaAHx8THoUcbGx8ciwhUl3bDEiToURPooeI7pH'.
-	    'MziK9Yd9nU5a6GgKjOH41vsgI4hAcyC5AZkapF+AoYNrjjsuhx'.
-	    'FbtPmeB5ykyQQzTPAWAQWC8S9oAI0QRRuPb9jkmyMZNAOTklvC'.
-	    'GGYZaFkGmkVAh8h4DtKFMIBunG+pB5B5AIkGBDsQ+qBiL20caj'.
-	    'zhJknq5KlgMkLjJHJos4kYEbFJi5vc5eYbATVN02bNWe19+32t'.
-	    'aJWlFm3wbf8Rz5NbDFJdlOFBF/g7cBf0JkrbBb+F6j1DOduEkU'.
-	    '8bWCOiSofPWadBnSZDWmgUkEMGhZCINut8S/0NBtPptFlZrBSu'.
-	    'vnt1+ndnflfIp9OJ/279Ubbbd+lP7KBKPoEBsgnqLph/BRzwdS'.
-	    'LnBUFvHcfdpRsGPAGqwMco6jynz+e0SPKYCHMfLX5VKHwcenR+'.
-	    'Igd1XTcqlUr+xn/cePv91fevzy8sLO2OtrOpWkqL7gXKSAVRdh'.
-	    'ZFEmEXoYkwBNqovoc/3GHH3aUR+jwC1oD/AWrANi4hGwyBzqEG'.
-	    'Vvb77Dgi0eT1VZzJZMxKpVJYXV1dXF1dXVm6sPSvruue3Xzcyj'.
-	    '6/syvDzwj0lNazK6Fj5LFCRZouZpBABj6jXouu3+Np6HNvDHaf'.
-	    'g91t74msbMuOJicnSSaTKKUQEUQEpRSO69But1/dB0VEm5uby9'.
-	    'y4cWNpdXX1+sLCworrume//PuXpeqnVeOban0U1PW2kcx+O9L7'.
-	    'Te9sUB4lWFR9SqNtNGcHx+/RDD2+Am4D94CnQA8OjjlEhMnyJC'.
-	    'srK8zOzu7BiYioMAzZ2Njg9u3brwIqpSSXy2WXl5eXLly4sOo4'.
-	    'zoV6vV6oflrVP/7Tx8Hmw1Zb6ydqmpWp7ha8h4O3gjOhzVANmF'.
-	    'XPMNQWvdDnCXCXuHR+APqH4fbCtm2mp6eZn59H13WJuYXRaKSU'.
-	    'UiSTyVcBdV3XDcOwRaTU7/en19bWCn/79G+JL/76RbhZ22y7u+'.
-	    '6ahl71nPDz/nO17m7wAxlabFOihy4+DvAcqAMbPzZ3OFzX5dmz'.
-	    'Z2iahoiosUUVhiGNRgPHcV4GzGQy5uLiYuH8+fMzo9FoslarJW'.
-	    '9+elP75E+fBJu1zY7qqpqBUW3T/niohnVvy+1zm5aVtp+WE2XT'.
-	    'nrHFzbjh1tYLz3XdPjD4R3BKKba2tqhWq4dzUO3noBPn4H5PKy'.
-	    'LaO++8U7hx48byhQsXVne7u6tf3/v64t3P7mbq9+odt+OuaWi3'.
-	    'PLxbW2ytubjbQCgiMnt6VlaurWgz0zM0m02q1WrUaDSUUuqI56'.
-	    'ivDxE5MCgiYllWtlwuL5mmufLV/a/O/uXPf9Ff1F+80Lv6Yx29'.
-	    '2qHzyZBh3cdvc7gaTZuZkzPh/Py8ACqVSv1/uPZDKXUAGEWRtF'.
-	    'qtxEcffZTL5XLF+2v39fqjeivshA/TpP83JLwzYFBzcA4370Cc'.
-	    'S81nTRBUs9lkOByi1GuOPI4Rh3+26JZlnSkWi781DOPXvV4v3+'.
-	    '/2G0R8kSBxB/jew+tERK+c49m2TblcxrZtXNfl+fPneJ6HZVmU'.
-	    'y2VJJpNyaJ9TSinlOA5bW1u4rntkQA0oAG8D54gb9W3ianxM3A'.
-	    'e/cn73U3Hq1Cm5du2aPjs7a+ztcSIShmE4ajQa6tatWzQajZ+0'.
-	    'fbiKI+It4SvijVUj7kL2qvGfgkskEqTTaZmcnDROnTplJhIJTU'.
-	    'QiwPd9P/Q8T6XTaQzDIAiCfzjP/wFVfszuFqdHXgAAAABJRU5E'.
-	    'rkJggg==' ; 
-
-
-//==========================================================
-// File: pp_red.png
-//==========================================================
-	$this->imgdata_small[0][0]= 384 ;
-	$this->imgdata_small[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhouFobZrQAAAQ1JREFUeJyV1dFtwyAQBuD/og'.
-	    'xQdYxa8gRY6hJ0jK6QdohMkTEuE5wUj5ERen05IoLvID7Jkn2G'.
-	    'j8MgTMyMXqRlUQBYq9ydmaL2h1cwqD7l30t+L1iwlbYFRegY7I'.
-	    'SHjkEifGg4ww3aBa/l4+9AhxWWr/dLhEunXUGHq6yGniw3QkOw'.
-	    '3jJ7UBd82n/VVAlAtvsfp98lAj2sAJOhU4AeQ7DC1ubVBODWDJ'.
-	    'TtCsEWa6u5M1NeFs1NzgdtuhHGtj+9Q2IDppQUAL6Cyrlz0gDN'.
-	    'ohSMiJCt861672EiAhEhESG3woJ9V9OKTkwRKbdqz4cHmFLSFg'.
-	    's69+LvAZKdeZ/n89uLnd2g0S+gjd5g8zzjH5Y/eLLi+NPEAAAA'.
-	    'AElFTkSuQmCC' ; 
-
-//==========================================================
-// File: pp_orange.png
-//==========================================================
-	$this->imgdata_small[1][0]= 403 ;
-	$this->imgdata_small[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhwAnApz5AAAASBJREFUeJyN1dFthDAMBuDf7S'.
-	    '3BCm2VCRKpS4QxbhikW6IewzcBqm6Fm6JyH7iEEByCn5AJH38g'.
-	    'BBIRHNUzBAWAGNfe/SrUGv92CtNt309BrfFdMGPjvt9CD8Fyml'.
-	    'ZZaDchRgA/59FDMD18pvNoNyHxMnUmgLmPHoJ+CqqfMaNAH22C'.
-	    'fgqKRwR+GRpxGjXBEiuXDBWQhTK3plxijyWWvtKVS5KNG1xM8I'.
-	    'OBr7geV1WupDqpmTAPKjCqLhxk/z0PImQmjKrAuI6vMXlhFroD'.
-	    'vfdqITXWqg2YMSJEAFcReoag6UXU2DzPG8w5t09YYsAyLWvHrL'.
-	    'HUy6D3XmvMAAhAay8kAJpBosX4vt0G4+4Jam6s6Rz1fgFG0ncA'.
-	    'f3XfOQcA+Acv5IUSdQw9hgAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: pp_pink.png
-//==========================================================
-	$this->imgdata_small[2][0]= 419 ;
-	$this->imgdata_small[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhsQzvz1RwAAATBJREFUeJyd1MFthDAQheF/oi'.
-	    'gF+JYWQKICkCJRA1vGtrDbxFbhGvY0HVjCLeS2BeTiHFgTB2wg'.
-	    'eRISstCnmcG2qCpbuXf3ADBQzWsPfZfS9y9HsEu4/Fo33Wf4Fx'.
-	    'gxL3a1XkI3wbTNXHLoboVeLFUYDqObYBy+Fw/Uh9DdCmtOwIjF'.
-	    'YvG76CZoOhNGRmpO8zz30CJoOhMAqlDxFzQLppgXj2XaNlP7FF'.
-	    'GLL7ccMYCBgZERgCvXLBrfi2DEclmiKZwFY4tp6sW26bVfnede'.
-	    'e5Hc5dC2bUgrXGKqWrwcXnNYDjmCrcCIiQgDcFYV05kQ8SXmnB'.
-	    'NgPiVN06wrTDGAhz5EWY/FOccTk+cTnHM/YNu2YYllgFxCWuUM'.
-	    'ikzGx+2Gc+4N+CoJW8n+5a2UKm2aBoBvGA6L7wfl8aoAAAAASU'.
-	    'VORK5CYII=' ; 
-
-
-//==========================================================
-// File: pp_blue.png
-//==========================================================
-	$this->imgdata_small[3][0]= 883 ;
-	$this->imgdata_small[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAMAAAC6V+0/AAACi1'.
-	    'BMVEX///8AAAAAADMAAGYAAJkAAMwAAP8zAAAzADMzAGYzAJkz'.
-	    'AMwzAP9mAABmADNmAGZmAJlmAMxmAP+ZAACZADOZAGaZAJmZAM'.
-	    'yZAP/MAADMADPMAGbMAJnMAMzMAP//AAD/ADP/AGb/AJn/AMz/'.
-	    'AP8AMwAAMzMAM2YAM5kAM8wAM/8zMwAzMzMzM2YzM5kzM8wzM/'.
-	    '9mMwBmMzNmM2ZmM5lmM8xmM/+ZMwCZMzOZM2aZM5mZM8yZM//M'.
-	    'MwDMMzPMM2bMM5nMM8zMM///MwD/MzP/M2b/M5n/M8z/M/8AZg'.
-	    'AAZjMAZmYAZpkAZswAZv8zZgAzZjMzZmYzZpkzZswzZv9mZgBm'.
-	    'ZjNmZmZmZplmZsxmZv+ZZgCZZjOZZmaZZpmZZsyZZv/MZgDMZj'.
-	    'PMZmbMZpnMZszMZv//ZgD/ZjP/Zmb/Zpn/Zsz/Zv8AmQAAmTMA'.
-	    'mWYAmZkAmcwAmf8zmQAzmTMzmWYzmZkzmcwzmf9mmQBmmTNmmW'.
-	    'ZmmZlmmcxmmf+ZmQCZmTOZmWaZmZmZmcyZmf/MmQDMmTPMmWbM'.
-	    'mZnMmczMmf//mQD/mTP/mWb/mZn/mcz/mf8AzAAAzDMAzGYAzJ'.
-	    'kAzMwAzP8zzAAzzDMzzGYzzJkzzMwzzP9mzABmzDNmzGZmzJlm'.
-	    'zMxmzP+ZzACZzDOZzGaZzJmZzMyZzP/MzADMzDPMzGbMzJnMzM'.
-	    'zMzP//zAD/zDP/zGb/zJn/zMz/zP8A/wAA/zMA/2YA/5kA/8wA'.
-	    '//8z/wAz/zMz/2Yz/5kz/8wz//9m/wBm/zNm/2Zm/5lm/8xm//'.
-	    '+Z/wCZ/zOZ/2aZ/5mZ/8yZ///M/wDM/zPM/2bM/5nM/8zM////'.
-	    '/wD//zP//2b//5n//8z///9jJVUgAAAAAXRSTlMAQObYZgAAAA'.
-	    'FiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElN'.
-	    'RQfTAwkWGTNerea3AAAAYUlEQVR4nHXNwQ3AIAxDUUfyoROxRZ'.
-	    'icARin0EBTIP3Hp1gBRqSqYo0seqjZpnngojlWBir5+b8o06lM'.
-	    'ha5uFKEpDZulV8l52axhVzqaCdxQp32qVSSwC1wN3fYiw7b76w'.
-	    'bN4SMue4/KbwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: pp_green.png
-//==========================================================
-	$this->imgdata_small[4][0]= 447 ;
-	$this->imgdata_small[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wMJFhkLdq9eKQAAAUxJREFUeJyN1LFVwzAQxvH/8f'.
-	    'IeDS0FLKABlN6eIwPYAzCHB0gWYI2jj+i1ABUTQN4TRSQ7iiWZ'.
-	    'qxLn9Mt9ydmiqrSq930AYFiu6YdKrf/hP1gYQn6960PxwBaYMG'.
-	    'E9UA3dBFtVQjdBOQmBakLennK0CapRwbZRZ3N0O/IeEsqp3HKL'.
-	    'Smtt5pUZgTPg4gdDud+6xoS97wM2rsxxmRSoTgoVcMZsXJkBho'.
-	    'SmKqCuOuEtls6nmGMFPTUmxBKx/MeyNfQGLoOOiC2ddsxb1Kzv'.
-	    'ZzUqu5IXbGDvBJf+hDisi77qFSuhq7Xpuu66TyJLRGbsXVUPxV'.
-	    'SxsgkzDMt0mKT3/RcjL8C5hHnvJToXY0xYRZ4xnVKsV/S+a8YA'.
-	    'AvCb3s9g13UhYj+TTo93B3fApRV1FVlEAD6H42DjN9/WvzDYuJ'.
-	    'dL5b1/ji+/IX8EGWP4AwRii8PdFHTqAAAAAElFTkSuQmCC' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_squares.inc b/nightly-test-server/jpgraph/imgdata_squares.inc
deleted file mode 100644
index 9850abf..0000000
--- a/nightly-test-server/jpgraph/imgdata_squares.inc
+++ /dev/null
@@ -1,151 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_SQUARES.INC
-// Description:	Base64 encoded images for squares
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class ImgData_Squares extends ImgData {
-    var $name = 'Squares';
-    var $an = array(MARK_IMG_SQUARE =>'imgdata');
-    
-    var $colors = array('bluegreen','blue','green', 
-			'lightblue','orange','purple','red','yellow');
-    var $index  = array('bluegreen' =>2,'blue'=>5,'green'=>6, 
-			'lightblue'=>0,'orange'=>7,'purple'=>4,'red'=>3,'yellow'=>1);
-    var $maxidx = 7 ;
-    var $imgdata ;
-
-    function ImgData_Squares () {
-//==========================================================
-//sq_lblue.png
-//==========================================================
-	$this->imgdata[0][0]= 362 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAIAAADZrBkAAAAABm'.
-	    'JLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsRAAALEQF/ZF+RAAAA'.
-	    'B3RJTUUH0wMLFgojiPx/ygAAAPdJREFUeNpj/P377+kzHx89/c'.
-	    'VAHNBQ5VBX52HavPWWjg6nnDQbkXoUFTnnL7zD9PPXrz17HxCj'.
-	    'E6Jn6fL7H7/+ZWJgYCBGJ7IeBgYGJogofp1oehDa8OjE1IOiDa'.
-	    'tOrHoYGBhY0NwD0enirMDAwMDFxYRVD7ptyDrNTAU0NXix6sGu'.
-	    'jYGBgZOT9e/f/0xMjFyczFgVsGAKCfBza2kKzpl3hIuT1c9Xb/'.
-	    'PW58/foKchJqx6tmy98vbjj8cvPm/afMnXW1JShA2fNmQ9EBFc'.
-	    'Opnw6MGjkwm/Hlw6mQjqwaqTiRg9mDoZv//4M2/+UYJ64EBWgj'.
-	    'cm2hwA8l24oNDl+DMAAAAASUVORK5CYII=' ; 
-
-//==========================================================
-//sq_yellow.png
-//==========================================================
-	$this->imgdata[1][0]= 338 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAWl'.
-	    'BMVEX////+/+H+/9/9/9v8/8P8/8H8/7v8/7n6/4P5/335/3n5'.
-	    '/3X4/1f4/1P3/031/w30/wn0/wPt+ADp9ADm8ADk7gDc5gDa5A'.
-	    'DL1ADFzgCwuACqsgClrABzeAC9M0MzAAAAAWJLR0QAiAUdSAAA'.
-	    'AAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEDlOgDj'.
-	    'EAAAB+SURBVHjaVcpbCsQgDEDRGERGKopjDa2a/W9zfLWj9/Nw'.
-	    'Ac21ZRBOtZlRN9ApzSYFaDUj79KIorRDbJNO9bN/GUSh2ZRJFJ'.
-	    'S18iorURBiyksO8buT0zkfYaUqzI91ckfhWhoGXTLzsDjI68Sz'.
-	    'pGMjrzPzauA/iXk1AtykmvgBC8UcWUdc9HkAAAAASUVORK5CYI'.
-	    'I=' ; 
-
-//==========================================================
-//sq_blgr.png
-//==========================================================
-	$this->imgdata[2][0]= 347 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAZl'.
-	    'BMVEX////0+vv0+vrz+fry+frv+Png7e/d7e/a6+zY6+250tSz'.
-	    '0tSyztCtztGM0NWIz9SDzdNfsLVcrrRZrbJOp61MpqtIr7dHn6'.
-	    'RErrZArLQ6q7M2g4kygYcsp68npa4ctr8QZ20JnqepKsl4AAAA'.
-	    'AWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU'.
-	    '1FB9MDCxYEByp8tpUAAAB7SURBVHjaVcjRFoIgDADQWZpWJpjY'.
-	    'MsnG//9kzIFn3McLzfArDA3MndFjrhvgfDHFBEB9pt0CVzwrY3'.
-	    'n2yicjhY4vTSp0nbXtN+hCV53SHDWe61dZY+/9463r2XuifHAM'.
-	    '0SoH+6xEcovUlCfefeFSIwfTTQ3fB+pi4lV/bTIgvmaA7a0AAA'.
-	    'AASUVORK5CYII=' ; 
-
-//==========================================================
-//sq_red.png
-//==========================================================
-	$this->imgdata[3][0]= 324 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAXV'.
-	    'BMVEX////++Pn99/j99ff99fb98/X98/T98PL55uj43+P24+bw'.
-	    'kKPvjaHviJ3teJHpxMnoL2Pjs73WW3rWNljVWXnUVnbUK1DTJk'.
-	    '3SUHPOBz/KQmmxPVmuOFasNFOeIkWVka/fAAAAAWJLR0QAiAUd'.
-	    'SAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEHd'.
-	    'ceT+8AAABtSURBVHjaVchbAkMwEAXQq6i3VrQiQfa/zDYTw8z5'.
-	    'PCjGt9JVWFt1XWPh1fWNdfDy+tq6WPfRUPENNKnSnXNWPB4uv2'.
-	    'b54nSZ8jHrMtOxvWZZZtpD4KP6xLkO9/AhzhaCOMhJh68cOjzV'.
-	    '/K/4Ac2cG+nBcaRuAAAAAElFTkSuQmCC' ; 
-
-//==========================================================
-//sq_pink.png
-//==========================================================
-	$this->imgdata[4][0]= 445 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAApV'.
-	    'BMVEX////6+Pz69/v49Pr38/r17/jr4+/l3Onj2efh1ua/L+i+'.
-	    'q8m+Lue9Lua8qsS8LuW8LeS7pca5LOG4LN+2Y9O2YNW1ZdO1Kt'.
-	    'y0atC0aNGzb82zbc6zKtuzKdqycsuwa8qtJtOISZ2GRpuFN6GE'.
-	    'NqCDQpmCMZ+BPpd/LJ1/K519S5B9Jpx9Jpt9JZt6RY11BJZ1BJ'.
-	    'V0BJV0BJRzBJNvNoRtIoJUEmdZ/XbrAAAAAWJLR0QAiAUdSAAA'.
-	    'AAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYDF3iKMD'.
-	    'YAAACeSURBVHjaVczbEoIgGARgCiMtrexoWpaa2FHUgvd/tH4Y'.
-	    'BnEvv9ldhNPradPnnGBUTtPDzMRPSIF46SaBoR25dYjz3I20Lb'.
-	    'ek6BgQz73Il7KKpSgCO0pTHU0886J1sCe0ZYbALjGhjFnEM2es'.
-	    'VhZVI4d+B1QtfnV47ywCEaKeP/p7JdLejSYt0j6NIiOq1wJZIs'.
-	    'QTDA0ELHwhPBCwyR/Cni9cOmzJtwAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-//sq_blue.png
-//==========================================================
-	$this->imgdata[5][0]= 283 ;
-	$this->imgdata[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAQl'.
-	    'BMVEX////4+fz39/z19vvy8vru7/ni4+7g4fHW1ue8vteXmt6B'.
-	    'hdhiZ7FQVaZETcxCSJo1Oq4zNoMjKakhJHcKFaMEC2jRVYdWAA'.
-	    'AAAWJLR0QAiAUdSAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0'.
-	    'SU1FB9MDCxYDN0PkEP4AAABfSURBVHjaVchHAoAgDATAVcCCIF'.
-	    'j4/1elJEjmOFDHKVgDv4iz640gLs+LMF6ZUv/VqcXXplU7Gqpy'.
-	    'PFzBT5qml9NzlOX259riWHlS4kOffviHD8PQYZx2EFMPRkw+9Q'.
-	    'FSnRPeWEDzKAAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-//sq_green.png
-//==========================================================
-	$this->imgdata[6][0]= 325 ;
-	$this->imgdata[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAXV'.
-	    'BMVEX////2+vX1+vX1+fT0+fPz+PPx9/Dv9u7u9e3h7uHe697a'.
-	    '6dnO2s3I1sa10LOvza2ay5aEwYBWlE9TqE5Tkk1RkEpMrUJMg0'.
-	    'hKiUNGpEFBojw8oTcsbScaYBMWlwmMT0NtAAAAAWJLR0QAiAUd'.
-	    'SAAAAAlwSFlzAAALEgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEFd'.
-	    'nFx90AAABuSURBVHjaVc9HAoAgDADB2HuJWLDx/2cKBITscW4L'.
-	    '5byzMIWtZobNDZIZtrcCGZsRQ8GwvRSRNxIiMuysODKG3alikl'.
-	    'ueOPlpKTLBaRmOZxQxaXlfb5ZWI9om4WntrXiDSJzp7SBkwMQa'.
-	    'FEy0VR/NAB2kNuj7rgAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-//sq_orange.png
-//==========================================================
-	$this->imgdata[7][0]= 321 ;
-	$this->imgdata[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAAUV'.
-	    'BMVEX/////8+n/8uf/8OP/59H/5Mv/zqH/zJ3/ypv/yJf/vYH/'.
-	    'u33/uXn/n0n/nUX/m0H/lzn/ljf/lDP/kS3/kCv/iR//hxv/fg'.
-	    'n/fAX/eQDYZgDW6ia5AAAAAWJLR0QAiAUdSAAAAAlwSFlzAAAL'.
-	    'EgAACxIB0t1+/AAAAAd0SU1FB9MDCxYEJIgbx+cAAAB2SURBVH'.
-	    'jaVczRCoQwDETRbLAWLZSGUA35/w/dVI0283i4DODew3YESmWW'.
-	    'kg5gWkoQAe6TleUQI/66Sy7i56+kLk7cht2N0+hcnJgQu0SqiC'.
-	    '1SzSIbzWSi6gavqJ63wSduRi2f+kwyD5rEukwCdZ1kGAMGMfv9'.
-	    'AbWuGMOr5COSAAAAAElFTkSuQmCC' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/imgdata_stars.inc b/nightly-test-server/jpgraph/imgdata_stars.inc
deleted file mode 100644
index 3e864eb..0000000
--- a/nightly-test-server/jpgraph/imgdata_stars.inc
+++ /dev/null
@@ -1,145 +0,0 @@
-<?php
-//=======================================================================
-// File:	IMGDATA_STARS.INC
-// Description:	Base64 encoded images for stars
-// Created: 	2003-03-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-class ImgData_Stars extends ImgData {
-    var $name = 'Stars';
-    var $an = array(MARK_IMG_STAR => 'imgdata');
-
-    var $colors = array('bluegreen','lightblue','purple','blue','green','pink','red','yellow');
-    var $index  = array('bluegreen'=>3,'lightblue'=>4,'purple'=>1, 
-			'blue'=>5,'green'=>0,'pink'=>7,'red'=>2,'yellow'=>6);
-    var $maxidx = 7 ;
-    var $imgdata ;
-
-    function ImgData_Stars() {
-//==========================================================
-// File: bstar_green_001.png
-//==========================================================
-	$this->imgdata[0][0]= 329 ;
-	$this->imgdata[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAAUV'.
-	    'BMVEX///////+/v7+83rqcyY2Q/4R7/15y/1tp/05p/0lg/zdX'.
-	    '/zdX/zVV/zdO/zFJ9TFJvDFD4yg+8Bw+3iU68hwurhYotxYosx'.
-	    'YokBoTfwANgQFUp7DWAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgF'.
-	    'HUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJj'.
-	    'CRyxgTAAAAcUlEQVR4nH3MSw6AIAwEUBL/IKBWwXL/g0pLojUS'.
-	    'ZzGLl8ko9Zumhr5iy66/GH0dp49llNPB5sTotDY5PVuLG6tnM9'.
-	    'CVKSIe1joSgPsAKSuANNaENFQvTAGzmheSkUpMBWeJZwqBT8wo'.
-	    'hmysD4bnnPsC/x8ItUdGPfAAAAAASUVORK5CYII=' ; 
-//==========================================================
-// File: bstar_blred.png
-//==========================================================
-	$this->imgdata[1][0]= 325 ;
-	$this->imgdata[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79uRJ6jWPOSUtKrb+ejWO+gWPaGTruJTr6rZvF2'.
-	    'RqC2ocqdVuCeV+egV/GsnLuIXL66rMSpcOyATbipY/OdWOp+VK'.
-	    'aTU9WhV+yJKBoLAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJwynv1'.
-	    'XVAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_red_001.png
-//==========================================================
-	$this->imgdata[2][0]= 325 ;
-	$this->imgdata[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v7+eRFHzWG3SUmHnb37vWGr2WHG7Tlm+TljxZneg'.
-	    'Rk3KoaXgVmXnV2nxV227nJ++XGzErK3scIS4TVzzY3fqWG2mVF'.
-	    'zVU2PsV2rJFw9VAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJzCI0C'.
-	    'lSAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_blgr_001.png
-//==========================================================
-	$this->imgdata[3][0]= 325 ;
-	$this->imgdata[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79Ehp5Yx/NSq9Jvw+dYwu9YzfZOmbtOmb5myPFG'.
-	    'gqChvcpWteBXvedXxvGcsbtcpb6su8RwzOxNmrhjyvNYwupUjK'.
-	    'ZTr9VXwOyJhmWNAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJTC65k'.
-	    'vQAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_blgr_002.png
-//==========================================================
-	$this->imgdata[4][0]= 325 ;
-	$this->imgdata[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79EnpxY8/FS0dJv5+dY7+9Y9vBOubtOur5m8fFG'.
-	    'nKChycpW3uBX5+ZX8e2curtcvrqswsRw7OdNuLZj8/BY6udUpK'.
-	    'ZT1dRX7OtNkrW5AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJgXHeN'.
-	    'wwAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_blue_001.png
-//==========================================================
-	$this->imgdata[5][0]= 325 ;
-	$this->imgdata[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v79EY55Yi/NSetJvledYiO9YkPZOb7tObr5mkvFG'.
-	    'X6ChrcpWgOBXhedXi/Gcpbtcf76sssRwnOxNcbhjk/NYiepUbK'.
-	    'ZTfdVXh+ynNEzzAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJhStyP'.
-	    'zCAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_oy_007.png
-//==========================================================
-	$this->imgdata[6][0]= 325 ;
-	$this->imgdata[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v7+ejUTz11jSvVLn02/v1lj21li7q06+r07x2mag'.
-	    'lUbKxKHgy1bnz1fx1Ve7t5y+qlzEwqzs03C4pE3z2WPqz1imml'.
-	    'TVv1Ps01dGRjeyAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJjsGGc'.
-	    'GbAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-
-//==========================================================
-// File: bstar_lred.png
-//==========================================================
-	$this->imgdata[7][0]= 325 ;
-	$this->imgdata[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABQAAAASCAMAAABsDg4iAAAATl'.
-	    'BMVEX///+/v7+eRJPzWN3SUr7nb9TvWNj2WOS7Tqi+TqnxZtyg'.
-	    'Ro/KocPgVsjnV9LxV927nLa+XLTErL7scN24TarzY9/qWNemVJ'.
-	    'jVU8LsV9VCwcc9AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgA'.
-	    'AAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTAxYTJxi9ZY'.
-	    'GoAAAAcElEQVR4nH3MyQ6AIAwEUFIqiwju2///qLQmWiJxDnN4'.
-	    'mYxSv5lqGCs2nvaLLtZx/VhGOW1MjnPJWp0zsw2wsUY2jd09BY'.
-	    'DFmESC+BwA5UCUxhqAhqrA4CGrLpCMVGK4sZe4B+/5RLdiyMb6'.
-	    'on/PuS9CdQNC7yBXEQAAAABJRU5ErkJggg==' ; 
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpg-config.inc b/nightly-test-server/jpgraph/jpg-config.inc
deleted file mode 100644
index 1e803df..0000000
--- a/nightly-test-server/jpgraph/jpg-config.inc
+++ /dev/null
@@ -1,244 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPG-CONFIG.INC
-// Description:	Configuration file for JpGraph library
-// Created: 	2004-03-27
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-
-//------------------------------------------------------------------------
-// Directories for cache and font directory. 
-//
-// CACHE_DIR:
-// The full absolute name of the directory to be used to store the
-// cached image files. This directory will not be used if the USE_CACHE
-// define (further down) is false. If you enable the cache please note that
-// this directory MUST be readable and writable for the process running PHP.
-// Must end with '/'
-//
-// TTF_DIR:
-// Directory where TTF fonts can be found. Must end with '/'
-//
-// The default values used if these defines are left commented out are:
-//
-// UNIX:
-//   CACHE_DIR /tmp/jpgraph_cache/
-//   TTF_DIR   /usr/X11R6/lib/X11/fonts/truetype/
-//   MBTTF_DIR /usr/share/fonts/ja/TrueType/
-//
-// WINDOWS:
-//   CACHE_DIR $SERVER_TEMP/jpgraph_cache/
-//   TTF_DIR   $SERVER_SYSTEMROOT/fonts/
-//   MBTTF_DIR $SERVER_SYSTEMROOT/fonts/
-//
-//------------------------------------------------------------------------
-// DEFINE("CACHE_DIR","/tmp/jpgraph_cache/");
-// DEFINE("TTF_DIR","/usr/X11R6/lib/X11/fonts/truetype/");
-// DEFINE("MBTTF_DIR","/usr/share/fonts/ja/TrueType/");
-
-//-------------------------------------------------------------------------
-// Cache directory specification for use with CSIM graphs that are
-// using the cache.
-// The directory must be the filesysystem name as seen by PHP
-// and the 'http' version must be the same directory but as 
-// seen by the HTTP server relative to the 'htdocs' ddirectory. 
-// If a relative path is specified it is taken to be relative from where
-// the image script is executed.
-// Note: The default setting is to create a subdirectory in the 
-// directory from where the image script is executed and store all files
-// there. As ususal this directory must be writeable by the PHP process.
-DEFINE("CSIMCACHE_DIR","csimcache/"); 
-DEFINE("CSIMCACHE_HTTP_DIR","csimcache/");
-
-//------------------------------------------------------------------------
-// Defines for font setup
-//------------------------------------------------------------------------
-
-// Actual name of the TTF file used together with FF_CHINESE aka FF_BIG5
-// This is the TTF file being used when the font family is specified as
-// either FF_CHINESE or FF_BIG5
-DEFINE('CHINESE_TTF_FONT','bkai00mp.ttf');
-
-// Special unicode greek language support
-DEFINE("LANGUAGE_GREEK",false);
-
-// If you are setting this config to true the conversion of greek characters
-// will assume that the input text is windows 1251 
-DEFINE("GREEK_FROM_WINDOWS",false);
-
-// Special unicode cyrillic language support
-DEFINE("LANGUAGE_CYRILLIC",false);
-
-// If you are setting this config to true the conversion
-// will assume that the input text is windows 1251, if
-// false it will assume koi8-r
-DEFINE("CYRILLIC_FROM_WINDOWS",false);
-
-// The following constant is used to auto-detect
-// whether cyrillic conversion is really necessary
-// if enabled. Just replace 'windows-1251' with a variable
-// containing the input character encoding string
-// of your application calling jpgraph.
-// A typical such string would be 'UTF-8' or 'utf-8'.
-// The comparison is case-insensitive.
-// If this charset is not a 'koi8-r' or 'windows-1251'
-// derivate then no conversion is done.
-//
-// This constant can be very important in multi-user
-// multi-language environments where a cyrillic conversion
-// could be needed for some cyrillic people
-// and resulting in just erraneous conversions
-// for not-cyrillic language based people.
-//
-// Example: In the free project management
-// software dotproject.net $locale_char_set is dynamically
-// set by the language environment the user has chosen.
-//
-// Usage: DEFINE('LANGUAGE_CHARSET', $locale_char_set);
-//
-// where $locale_char_set is a GLOBAL (string) variable
-// from the application including JpGraph.
-// 
-DEFINE('LANGUAGE_CHARSET', null);
-
-// Japanese TrueType font used with FF_MINCHO, FF_PMINCHO, FF_GOTHIC, FF_PGOTHIC
-DEFINE('MINCHO_TTF_FONT','ipam.ttf');
-DEFINE('PMINCHO_TTF_FONT','ipamp.ttf');
-DEFINE('GOTHIC_TTF_FONT','ipag.ttf');
-DEFINE('PGOTHIC_TTF_FONT','ipagp.ttf');
-
-// Assume that Japanese text have been entered in EUC-JP encoding.
-// If this define is true then conversion from EUC-JP to UTF8 is done 
-// automatically in the library using the mbstring module in PHP.
-DEFINE('ASSUME_EUCJP_ENCODING',false);
-
-//------------------------------------------------------------------------
-// Various JpGraph Settings. Adjust accordingly to your
-// preferences. Note that cache functionality is turned off by
-// default (Enable by setting USE_CACHE to true)
-//------------------------------------------------------------------------
-
-// Deafult locale for error messages.
-// This defaults to English = 'en'
-DEFINE('DEFAULT_ERR_LOCALE','en');
-
-// Deafult graphic format set to "auto" which will automatically
-// choose the best available format in the order png,gif,jpeg
-// (The supported format depends on what your PHP installation supports)
-DEFINE("DEFAULT_GFORMAT","auto");
-
-// Should the image be a truecolor image? 
-// Note 1: Has only effect with GD 2.0.1 and above.
-// Note 2: GD 2.0.1 + PHP 4.0.6 on Win32 crashes when trying to use 
-// trucolor.
-// Note 3: MUST be enabled to get background images working with GD2
-DEFINE('USE_TRUECOLOR',true);
-
-// Specify what version of the GD library is installed.
-// If this is set to 'auto' the version will be automatically 
-// determined.
-// However since determining the library takes ~1ms you can also 
-// manually specify the version if you know what version you have. 
-// This means that you should 
-// set this define to true if you have GD 2.x installed to save 1ms. 
-DEFINE("USE_LIBRARY_GD2",'auto');
-
-// Should the cache be used at all? By setting this to false no
-// files will be generated in the cache directory.  
-// The difference from READ_CACHE being that setting READ_CACHE to
-// false will still create the image in the cache directory
-// just not use it. By setting USE_CACHE=false no files will even
-// be generated in the cache directory.
-DEFINE("USE_CACHE",false);
-
-// Should we try to find an image in the cache before generating it? 
-// Set this define to false to bypass the reading of the cache and always
-// regenerate the image. Note that even if reading the cache is 
-// disabled the cached will still be updated with the newly generated
-// image. Set also "USE_CACHE" below.
-DEFINE("READ_CACHE",true);
-
-// Determine if the error handler should be image based or purely
-// text based. Image based makes it easier since the script will
-// always return an image even in case of errors.
-DEFINE("USE_IMAGE_ERROR_HANDLER",true);
-
-// Determine if the library should also setup the default PHP
-// error handler to generate a graphic error mesage. This is useful
-// during development to be able to see the error message as an image
-// instead as a "red-cross" in a page where an image is expected.
-DEFINE("INSTALL_PHP_ERR_HANDLER",false);
-
-// Should the library examin the global php_errmsg string and convert
-// any error in it to a graphical representation. This is handy for the
-// occasions when, for example, header files cannot be found and this results
-// in the graph not being created and just a "red-cross" image would be seen.
-// This should be turned off for a production site.
-DEFINE("CATCH_PHPERRMSG",true);
-
-// If the color palette is full should JpGraph try to allocate
-// the closest match? If you plan on using background images or
-// gradient fills it might be a good idea to enable this.
-// If not you will otherwise get an error saying that the color palette is 
-// exhausted. The drawback of using approximations is that the colors 
-// might not be exactly what you specified. 
-// Note1: This does only apply to paletted images, not truecolor 
-// images since they don't have the limitations of maximum number
-// of colors.
-DEFINE("USE_APPROX_COLORS",true);
-
-// Should usage of deprecated functions and parameters give a fatal error?
-// (Useful to check if code is future proof.)
-DEFINE("ERR_DEPRECATED",true);
-
-// Should the time taken to generate each picture be branded to the lower
-// left in corner in each generated image? Useful for performace measurements
-// generating graphs
-DEFINE("BRAND_TIMING",false);
-
-// What format should be used for the timing string?
-DEFINE("BRAND_TIME_FORMAT","(%01.3fs)");
-
-//------------------------------------------------------------------------
-// The following constants should rarely have to be changed !
-//------------------------------------------------------------------------
-
-// What group should the cached file belong to
-// (Set to "" will give the default group for the "PHP-user")
-// Please note that the Apache user must be a member of the
-// specified group since otherwise it is impossible for Apache
-// to set the specified group.
-DEFINE("CACHE_FILE_GROUP","wwwadmin");
-
-// What permissions should the cached file have
-// (Set to "" will give the default persmissions for the "PHP-user")
-DEFINE("CACHE_FILE_MOD",0664);
-
-// Decide if we should use the bresenham circle algorithm or the
-// built in Arc(). Bresenham gives better visual apperance of circles 
-// but is more CPU intensive and slower then the built in Arc() function
-// in GD. Turned off by default for speed
-DEFINE("USE_BRESENHAM",false);
-
-// Special file name to indicate that we only want to calc
-// the image map in the call to Graph::Stroke() used
-// internally from the GetHTMLCSIM() method.
-DEFINE("_CSIM_SPECIALFILE","_csim_special_");
-
-// HTTP GET argument that is used with image map
-// to indicate to the script to just generate the image
-// and not the full CSIM HTML page.
-DEFINE("_CSIM_DISPLAY","_jpg_csimd");
-
-// Special filename for Graph::Stroke(). If this filename is given
-// then the image will NOT be streamed to browser of file. Instead the
-// Stroke call will return the handler for the created GD image.
-DEFINE("_IMG_HANDLER","__handle");
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph.php b/nightly-test-server/jpgraph/jpgraph.php
deleted file mode 100644
index 8a1c2e6..0000000
--- a/nightly-test-server/jpgraph/jpgraph.php
+++ /dev/null
@@ -1,6314 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH.PHP
-// Description:	PHP Graph Plotting library. Base module.
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-require_once('jpg-config.inc');
-
-require_once('gd_image.inc.php');
-
-// Version info
-DEFINE('JPG_VERSION','1.20.3');
-
-// Minimum required PHP version
-DEFINE('MIN_PHPVERSION','4.3.1');
-
-// For internal use only
-DEFINE("_JPG_DEBUG",false);
-DEFINE("_FORCE_IMGTOFILE",false);
-DEFINE("_FORCE_IMGDIR",'/tmp/jpgimg/');
-
-//------------------------------------------------------------------------
-// Automatic settings of path for cache and font directory
-// if they have not been previously specified
-//------------------------------------------------------------------------
-if(USE_CACHE) {
-    if (!defined('CACHE_DIR')) {
-	if ( strstr( PHP_OS, 'WIN') ) {
-	    if( empty($_SERVER['TEMP']) ) {
-		$t = new ErrMsgText();
-		$msg = $t->Get(11,$file,$lineno);
-		die($msg);
-	    }
-	    else {
-		DEFINE('CACHE_DIR', $_SERVER['TEMP'] . '/');
-	    }
-	} else {
-	    DEFINE('CACHE_DIR','/tmp/jpgraph_cache/');
-	}
-    }
-}
-elseif( !defined('CACHE_DIR') ) {
-    DEFINE('CACHE_DIR', '');
-}
-
-if (!defined('TTF_DIR')) {
-    if (strstr( PHP_OS, 'WIN') ) {
-	$sroot = getenv('SystemRoot');
-        if( empty($sroot) ) {
-	    $t = new ErrMsgText();
-	    $msg = $t->Get(12,$file,$lineno);
-	    die($msg);
-        }
-	else {
-	  DEFINE('TTF_DIR', $sroot.'/fonts/');
-        }
-    } else {
-	DEFINE('TTF_DIR','/usr/X11R6/lib/X11/fonts/truetype/');
-    }
-}
-
-//------------------------------------------------------------------
-// Constants which are used as parameters for the method calls
-//------------------------------------------------------------------
-
-// Tick density
-DEFINE("TICKD_DENSE",1);
-DEFINE("TICKD_NORMAL",2);
-DEFINE("TICKD_SPARSE",3);
-DEFINE("TICKD_VERYSPARSE",4);
-
-// Side for ticks and labels. 
-DEFINE("SIDE_LEFT",-1);
-DEFINE("SIDE_RIGHT",1);
-DEFINE("SIDE_DOWN",-1);
-DEFINE("SIDE_BOTTOM",-1);
-DEFINE("SIDE_UP",1);
-DEFINE("SIDE_TOP",1);
-
-// Legend type stacked vertical or horizontal
-DEFINE("LEGEND_VERT",0);
-DEFINE("LEGEND_HOR",1);
-
-// Mark types for plot marks
-DEFINE("MARK_SQUARE",1);
-DEFINE("MARK_UTRIANGLE",2);
-DEFINE("MARK_DTRIANGLE",3);
-DEFINE("MARK_DIAMOND",4);
-DEFINE("MARK_CIRCLE",5);
-DEFINE("MARK_FILLEDCIRCLE",6);
-DEFINE("MARK_CROSS",7);
-DEFINE("MARK_STAR",8);
-DEFINE("MARK_X",9);
-DEFINE("MARK_LEFTTRIANGLE",10);
-DEFINE("MARK_RIGHTTRIANGLE",11);
-DEFINE("MARK_FLASH",12);
-DEFINE("MARK_IMG",13);
-DEFINE("MARK_FLAG1",14);
-DEFINE("MARK_FLAG2",15);
-DEFINE("MARK_FLAG3",16);
-DEFINE("MARK_FLAG4",17);
-
-// Builtin images
-DEFINE("MARK_IMG_PUSHPIN",50);
-DEFINE("MARK_IMG_SPUSHPIN",50);
-DEFINE("MARK_IMG_LPUSHPIN",51);
-DEFINE("MARK_IMG_DIAMOND",52);
-DEFINE("MARK_IMG_SQUARE",53);
-DEFINE("MARK_IMG_STAR",54);
-DEFINE("MARK_IMG_BALL",55);
-DEFINE("MARK_IMG_SBALL",55);
-DEFINE("MARK_IMG_MBALL",56);
-DEFINE("MARK_IMG_LBALL",57);
-DEFINE("MARK_IMG_BEVEL",58);
-
-// Inline defines
-DEFINE("INLINE_YES",1);
-DEFINE("INLINE_NO",0);
-
-// Format for background images
-DEFINE("BGIMG_FILLPLOT",1);
-DEFINE("BGIMG_FILLFRAME",2);
-DEFINE("BGIMG_COPY",3);
-DEFINE("BGIMG_CENTER",4);
-
-// Depth of objects
-DEFINE("DEPTH_BACK",0);
-DEFINE("DEPTH_FRONT",1);
-
-// Direction
-DEFINE("VERTICAL",1);
-DEFINE("HORIZONTAL",0);
-
-
-// Axis styles for scientific style axis
-DEFINE('AXSTYLE_SIMPLE',1);
-DEFINE('AXSTYLE_BOXIN',2);
-DEFINE('AXSTYLE_BOXOUT',3);
-DEFINE('AXSTYLE_YBOXIN',4);
-DEFINE('AXSTYLE_YBOXOUT',5);
-
-// Style for title backgrounds
-DEFINE('TITLEBKG_STYLE1',1);
-DEFINE('TITLEBKG_STYLE2',2);
-DEFINE('TITLEBKG_STYLE3',3);
-DEFINE('TITLEBKG_FRAME_NONE',0);
-DEFINE('TITLEBKG_FRAME_FULL',1);
-DEFINE('TITLEBKG_FRAME_BOTTOM',2);
-DEFINE('TITLEBKG_FRAME_BEVEL',3);
-DEFINE('TITLEBKG_FILLSTYLE_HSTRIPED',1);
-DEFINE('TITLEBKG_FILLSTYLE_VSTRIPED',2);
-DEFINE('TITLEBKG_FILLSTYLE_SOLID',3);
-
-// Style for background gradient fills
-DEFINE('BGRAD_FRAME',1);
-DEFINE('BGRAD_MARGIN',2);
-DEFINE('BGRAD_PLOT',3);
-
-// Width of tab titles
-DEFINE('TABTITLE_WIDTHFIT',0);
-DEFINE('TABTITLE_WIDTHFULL',-1);
-
-// Defines for 3D skew directions
-DEFINE('SKEW3D_UP',0);
-DEFINE('SKEW3D_DOWN',1);
-DEFINE('SKEW3D_LEFT',2);
-DEFINE('SKEW3D_RIGHT',3);
-
-
-
-//
-// Get hold of gradient class (In Version 2.x)
-// A client of the library has to manually include this
-//
-require_once 'jpgraph_gradient.php';
-
-GLOBAL $__jpg_err;
-GLOBAL $__jpg_err_locale ;
-$__jpg_err_locale = DEFAULT_ERR_LOCALE;
-
-class ErrMsgText {
-    var $lt=NULL;
-    function ErrMsgText() {
-	GLOBAL $__jpg_err_locale;
-	$file = 'lang/'.$__jpg_err_locale.'.inc.php';
-
-	// If the chosen locale doesn't exist try english
-	if( !file_exists(dirname(__FILE__).'/'.$file) ) {
-	    $__jpg_err_locale = 'en';
-	}
-
-	$file = 'lang/'.$__jpg_err_locale.'.inc.php';
-	if( !file_exists(dirname(__FILE__).'/'.$file) ) {
-	    die('Internal error: Chosen locale file for error messages does not exist.');
-	}
-	require_once($file);
-	$this->lt = $_jpg_messages;
-    }
-
-    function Get($errnbr,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) {
-	GLOBAL $__jpg_err_locale;
-	if( !isset($this->lt[$errnbr]) ) {
-	    return 'Internal error: The specified error message ('.$errnbr.') does not exist in the chosen locale ('.$__jpg_err_locale.')';
-	}
-	$ea = $this->lt[$errnbr];
-	$j=0;
-	if( $a1 !== null ) {
-	    $argv[$j++] = $a1;
-	    if( $a2 !== null ) {
-		$argv[$j++] = $a2;
-		if( $a3 !== null ) {
-		    $argv[$j++] = $a3;
-		    if( $a4 !== null ) {
-			$argv[$j++] = $a4;
-			if( $a5 !== null ) {
-			    $argv[$j++] = $a5;
-			}
-		    }
-		}
-	    }
-	}
-	$numargs = $j; 
-	if( $ea[1] != $numargs ) {
-	    // Error message argument count do not match.
-	    // Just return the error message without arguments.
-	    return $ea[0];
-	}
-	switch( $numargs ) {
-	    case 1:
-		$msg = sprintf($ea[0],$argv[0]);
-		break;
-	    case 2:
-		$msg = sprintf($ea[0],$argv[0],$argv[1]);
-		break;
-	    case 3:
-		$msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2]);
-		break;
-	    case 4:
-		$msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2],$argv[3]);
-		break;
-	    case 5:
-		$msg = sprintf($ea[0],$argv[0],$argv[1],$argv[2],$argv[3],$argv[4]);
-		break;
-	    case 0:
-	    default:
-		$msg = sprintf($ea[0]);
-		break;
-	}
-	return $msg;
-    }
-}
-
-//
-// A wrapper class that is used to access the specified error object
-// (to hide the global error parameter and avoid having a GLOBAL directive
-// in all methods.
-//
-class JpGraphError {
-    function Install($aErrObject) {
-	GLOBAL $__jpg_err;
-	$__jpg_err = $aErrObject;
-    }
-    function SetErrLocale($aLoc) {
-	GLOBAL $__jpg_err_locale ;
-	$__jpg_err_locale = $aLoc;
-    }
-    function Raise($aMsg,$aHalt=true){
-	GLOBAL $__jpg_err;
-	$tmp = new $__jpg_err;
-	$tmp->Raise($aMsg,$aHalt);
-    }
-    function RaiseL($errnbr,$a1=null,$a2=null,$a3=null,$a4=null,$a5=null) {
-	GLOBAL $__jpg_err;
-	$t = new ErrMsgText();
-	$msg = $t->Get($errnbr,$a1,$a2,$a3,$a4,$a5);
-	$tmp = new $__jpg_err;
-	$tmp->Raise($msg);
-    }
-}
- 
-//
-// ... and install the default error handler
-//
-if( USE_IMAGE_ERROR_HANDLER ) {
-    $__jpg_err = "JpGraphErrObjectImg";
-}
-else {
-    $__jpg_err = "JpGraphErrObject"; 
-}
-
-function CheckPHPVersion($aMinVersion)
-{
-    list($majorC, $minorC, $editC) = split('[/.-]', PHP_VERSION);
-    list($majorR, $minorR, $editR) = split('[/.-]', $aMinVersion);
-  
-    if ($majorC > $majorR) return true;
-    if ($majorC < $majorR) return false;
-    // same major - check ninor
-    if ($minorC > $minorR) return true;
-    if ($minorC < $minorR) return false;
-    // and same minor
-    if ($editC  >= $editR)  return true;
-    return true;
-}
-
-//
-// Make GD sanity check
-//
-if( !function_exists("imagetypes") || !function_exists('imagecreatefromstring') ) {
-    JpGraphError::RaiseL(25001);
-//("This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)");
-}
-
-
-//
-// Routine to determine if GD1 or GD2 is installed
-//
-function CheckGDVersion() {
-    $GDfuncList = get_extension_funcs('gd');
-    if( !$GDfuncList ) return 0 ;
-    else {
-	if( in_array('imagegd2',$GDfuncList) && 
-	    in_array('imagecreatetruecolor',$GDfuncList))
-	    return 2;
-	else
-	    return 1;
-    } 
-}
-
-//
-// Check what version of the GD library is installed.
-//
-$GLOBALS['gd2'] = false;
-if( USE_LIBRARY_GD2 === 'auto' ) {
-    $gdversion = CheckGDVersion();
-    if( $gdversion == 2 ) {
-	$GLOBALS['gd2'] = true;
-	$GLOBALS['copyfunc'] = 'imagecopyresampled';
-    }
-    elseif( $gdversion == 1 ) {
-	$GLOBALS['gd2'] = false;
-	$GLOBALS['copyfunc'] = 'imagecopyresized';
-    }
-    else {
-	JpGraphError::RaiseL(25002);
-//(" Your PHP installation does not seem to have the required GD library. Please see the PHP documentation on how to install and enable the GD library.");
-    }
-}
-else {
-    $GLOBALS['gd2'] = USE_LIBRARY_GD2;
-    $GLOBALS['copyfunc'] = USE_LIBRARY_GD2 ? 'imagecopyresampled' : 'imagecopyresized';
-}
-
-//
-// Make sure PHP version is high enough
-//
-if( !CheckPHPVersion(MIN_PHPVERSION) ) {
-    JpGraphError::RaiseL(13,PHP_VERSION,MIN_PHPVERSION);
-}
-
-//
-// First of all set up a default error handler
-//
-
-
-//=============================================================
-// The default trivial text error handler.
-//=============================================================
-class JpGraphErrObject {
-
-    var $iTitle = "JpGraph Error";
-    var $iDest = false;
-
-    function JpGraphErrObject() {
-	// Empty. Reserved for future use
-    }
-
-    function SetTitle($aTitle) {
-	$this->iTitle = $aTitle;
-    }
-
-    function SetStrokeDest($aDest) { 
-	$this->iDest = $aDest; 
-    }
-
-    // If aHalt is true then execution can't continue. Typical used for fatal errors.
-    function Raise($aMsg,$aHalt=true) {
-	$aMsg = $this->iTitle.' '.$aMsg;
-	if ($this->iDest) {
-	    $f = @fopen($this->iDest,'a');
-	    if( $f ) {
-		@fwrite($f,$aMsg);
-		@fclose($f);
-	    }
-	}
-	else {
-	    echo $aMsg;
-	}
-	if( $aHalt )
-	    die();
-    }
-}
-
-//==============================================================
-// An image based error handler
-//==============================================================
-class JpGraphErrObjectImg extends JpGraphErrObject {
-
-    function Raise($aMsg,$aHalt=true) {
-	$img_iconerror = 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAaV'.
-	    'BMVEX//////2Xy8mLl5V/Z2VvMzFi/v1WyslKlpU+ZmUyMjEh/'.
-	    'f0VyckJlZT9YWDxMTDjAwMDy8sLl5bnY2K/MzKW/v5yyspKlpY'.
-	    'iYmH+MjHY/PzV/f2xycmJlZVlZWU9MTEXY2Ms/PzwyMjLFTjea'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACx'.
-	    'IAAAsSAdLdfvwAAAAHdElNRQfTBgISOCqusfs5AAABLUlEQVR4'.
-	    '2tWV3XKCMBBGWfkranCIVClKLd/7P2Q3QsgCxjDTq+6FE2cPH+'.
-	    'xJ0Ogn2lQbsT+Wrs+buAZAV4W5T6Bs0YXBBwpKgEuIu+JERAX6'.
-	    'wM2rHjmDdEITmsQEEmWADgZm6rAjhXsoMGY9B/NZBwJzBvn+e3'.
-	    'wHntCAJdGu9SviwIwoZVDxPB9+Rc0TSEbQr0j3SA1gwdSn6Db0'.
-	    '6Tm1KfV6yzWGQO7zdpvyKLKBDmRFjzeB3LYgK7r6A/noDAfjtS'.
-	    'IXaIzbJSv6WgUebTMV4EoRB8a2mQiQjgtF91HdKDKZ1gtFtQjk'.
-	    'YcWaR5OKOhkYt+ZsTFdJRfPAApOpQYJTNHvCRSJR6SJngQadfc'.
-	    'vd69OLMddVOPCGVnmrFD8bVYd3JXfxXPtLR/+mtv59/ALWiiMx'.
-	    'qL72fwAAAABJRU5ErkJggg==' ;
-
-	if( function_exists("imagetypes") )
-	    $supported = imagetypes();
-	else
-	    $supported = 0;
-
-	if( !function_exists('imagecreatefromstring') )
-	    $supported = 0;
-
-	if( ob_get_length() || headers_sent() || !($supported & IMG_PNG) ) {
-	    // Special case for headers already sent or that the installation doesn't support
-	    // the PNG format (which the error icon is encoded in). 
-	    // Dont return an image since it can't be displayed
-	    die($this->iTitle.' '.$aMsg);		
-	}
-
-	$aMsg = wordwrap($aMsg,55);
-	$lines = substr_count($aMsg,"\n");
-
-	// Create the error icon GD
-	$erricon = Image::CreateFromString(base64_decode($img_iconerror));   
-
-	// Create an image that contains the error text.
-	$w=400; 	
-	$h=100 + 15*max(0,$lines-3);
-
-	$img = new Image($w,$h);
-
-	// Drop shadow
-	$img->SetColor("gray");
-	$img->FilledRectangle(5,5,$w-1,$h-1,10);
-	$img->SetColor("gray:0.7");
-	$img->FilledRectangle(5,5,$w-3,$h-3,10);
-	
-	// Window background
-	$img->SetColor("lightblue");
-	$img->FilledRectangle(1,1,$w-5,$h-5);
-	$img->CopyCanvasH($img->img,$erricon,5,30,0,0,40,40);
-
-	// Window border
-	$img->SetColor("black");
-	$img->Rectangle(1,1,$w-5,$h-5);
-	$img->Rectangle(0,0,$w-4,$h-4);
-	
-	// Window top row
-	$img->SetColor("darkred");
-	for($y=3; $y < 18; $y += 2 ) 
-	    $img->Line(1,$y,$w-6,$y);
-
-	// "White shadow"
-	$img->SetColor("white");
-
-	// Left window edge
-	$img->Line(2,2,2,$h-5);
-	$img->Line(2,2,$w-6,2);
-
-	// "Gray button shadow"
-	$img->SetColor("darkgray");
-
-	// Gray window shadow
-	$img->Line(2,$h-6,$w-5,$h-6);
-	$img->Line(3,$h-7,$w-5,$h-7);
-
-	// Window title
-	$m = floor($w/2-5);
-	$l = 100;
-	$img->SetColor("lightgray:1.3");
-	$img->FilledRectangle($m-$l,2,$m+$l,16);
-
-	// Stroke text
-	$img->SetColor("darkred");
-	$img->SetFont(FF_FONT2,FS_BOLD);
-	$img->StrokeText($m-50,15,$this->iTitle);
-	$img->SetColor("black");
-	$img->SetFont(FF_FONT1,FS_NORMAL);
-	$txt = new Text($aMsg,52,25);
-	$txt->Align("left","top");
-	$txt->Stroke($img);
-	if ($this->iDest) {
-           $img->Stream($this->iDest);
-	} else {
-	    $img->Headers();
-	    $img->Stream();
-	}
-	if( $aHalt )
-	    die();
-    }
-}
-
-//
-// Setup PHP error handler
-//
-function _phpErrorHandler($errno,$errmsg,$filename, $linenum, $vars) {
-    // Respect current error level
-    if( $errno & error_reporting() ) {
-	JpGraphError::RaiseL(25003,basename($filename),$linenum,$errmsg); 
-    }
-}
-
-if( INSTALL_PHP_ERR_HANDLER ) {
-    set_error_handler("_phpErrorHandler");
-}
-
-//
-//Check if there were any warnings, perhaps some wrong includes by the user
-//
-if( isset($GLOBALS['php_errormsg']) && CATCH_PHPERRMSG && 
-    !preg_match('|Deprecated|', $GLOBALS['php_errormsg'])) {
-    JpGraphError::RaiseL(25004,$GLOBALS['php_errormsg']);
-}
-
-
-// Useful mathematical function
-function sign($a) {return $a >= 0 ? 1 : -1;}
-
-// Utility function to generate an image name based on the filename we
-// are running from and assuming we use auto detection of graphic format
-// (top level), i.e it is safe to call this function
-// from a script that uses JpGraph
-function GenImgName() {
-    global $_SERVER;
-
-    // Determine what format we should use when we save the images
-    $supported = imagetypes();
-    if( $supported & IMG_PNG )	   $img_format="png";
-    elseif( $supported & IMG_GIF ) $img_format="gif";
-    elseif( $supported & IMG_JPG ) $img_format="jpeg";
-
-    if( !isset($_SERVER['PHP_SELF']) )
-	JpGraphError::RaiseL(25005);
-//(" Can't access PHP_SELF, PHP global variable. You can't run PHP from command line if you want to use the 'auto' naming of cache or image files.");
-    $fname = basename($_SERVER['PHP_SELF']);
-    if( !empty($_SERVER['QUERY_STRING']) ) {
-	$q = @$_SERVER['QUERY_STRING'];
-	$fname .= '?'.preg_replace("/\W/", "_", $q).'.'.$img_format;
-    }
-    else {
-	$fname = substr($fname,0,strlen($fname)-4).'.'.$img_format;
-    }
-    return $fname;
-}
-
-class LanguageConv {
-    var $g2312 = null ;
-
-    function Convert($aTxt,$aFF) {
-	if( LANGUAGE_GREEK ) {
-	    if( GREEK_FROM_WINDOWS ) {
-		$unistring = LanguageConv::gr_win2uni($aTxt); 
-	    } else  {
-		$unistring = LanguageConv::gr_iso2uni($aTxt);
-	    }
-	    return $unistring;
-	} elseif( LANGUAGE_CYRILLIC ) {
-	    if( CYRILLIC_FROM_WINDOWS && (!defined('LANGUAGE_CHARSET') || stristr(LANGUAGE_CHARSET, 'windows-1251')) ) {
-		$aTxt = convert_cyr_string($aTxt, "w", "k"); 
-	    }
-	    if( !defined('LANGUAGE_CHARSET') || stristr(LANGUAGE_CHARSET, 'koi8-r') || stristr(LANGUAGE_CHARSET, 'windows-1251')) {
-		$isostring = convert_cyr_string($aTxt, "k", "i");
-		$unistring = LanguageConv::iso2uni($isostring);
-	    }
-	    else {
-		$unistring = $aTxt;
-	    }
-	    return $unistring;
-	}
-	elseif( $aFF === FF_SIMSUN ) {
-	    // Do Chinese conversion
-	    if( $this->g2312 == null ) {
-		include_once 'jpgraph_gb2312.php' ;
-		$this->g2312 = new GB2312toUTF8();
-	    }
-	    return $this->g2312->gb2utf8($aTxt);
-	}
-	elseif( $aFF === FF_CHINESE ) {
-	    if( !function_exists('iconv') ) {
-		JpGraphError::RaiseL(25006);
-//('Usage of FF_CHINESE (FF_BIG5) font family requires that your PHP setup has the iconv() function. By default this is not compiled into PHP (needs the "--width-iconv" when configured).');
-	    }
-	    return iconv('BIG5','UTF-8',$aTxt);
-	}
-	elseif( ASSUME_EUCJP_ENCODING &&
-		($aFF == FF_MINCHO || $aFF == FF_GOTHIC || $aFF == FF_PMINCHO || $aFF == FF_PGOTHIC) ) {
-	    if( !function_exists('mb_convert_encoding') ) {
-		JpGraphError::RaiseL(25127);
-	    }
-	    return mb_convert_encoding($aTxt, 'UTF-8','EUC-JP');
-	}
-	else 
-	    return $aTxt;
-    }
-
-    // Translate iso encoding to unicode
-    function iso2uni ($isoline){
-	$uniline='';
-	for ($i=0; $i < strlen($isoline); $i++){
-	    $thischar=substr($isoline,$i,1);
-	    $charcode=ord($thischar);
-	    $uniline.=($charcode>175) ? "&#" . (1040+($charcode-176)). ";" : $thischar;
-	}
-	return $uniline;
-    }
-
-    // Translate greek iso encoding to unicode
-    function gr_iso2uni ($isoline) {
-	$uniline='';
-	for ($i=0; $i < strlen($isoline); $i++)	{
-	    $thischar=substr($isoline,$i,1);
-	    $charcode=ord($thischar);
-	    $uniline.=($charcode>179 && $charcode!=183 && $charcode!=187 && $charcode!=189) ? "&#" . (900+($charcode-180)). ";" : $thischar;
-	}
-	return $uniline;
-    }
-
-    // Translate greek win encoding to unicode
-    function gr_win2uni ($winline) {
-	$uniline='';
-	for ($i=0; $i < strlen($winline); $i++) {
-	    $thischar=substr($winline,$i,1);
-	    $charcode=ord($thischar);
-	    if ($charcode==161 || $charcode==162) {
-		$uniline.="&#" . (740+$charcode). ";";
-	    }
-	    else {
-		$uniline.=(($charcode>183 && $charcode!=187 && $charcode!=189) || $charcode==180) ? "&#" . (900+($charcode-180)). ";" : $thischar;
-	    }
-	}
-	return $uniline;
-    }
-}
-
-//===================================================
-// CLASS JpgTimer
-// Description: General timing utility class to handle
-// time measurement of generating graphs. Multiple
-// timers can be started.
-//===================================================
-class JpgTimer {
-    var $start;
-    var $idx;	
-//---------------
-// CONSTRUCTOR
-    function JpgTimer() {
-	$this->idx=0;
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // Push a new timer start on stack
-    function Push() {
-	list($ms,$s)=explode(" ",microtime());	
-	$this->start[$this->idx++]=floor($ms*1000) + 1000*$s;	
-    }
-
-    // Pop the latest timer start and return the diff with the
-    // current time
-    function Pop() {
-	assert($this->idx>0);
-	list($ms,$s)=explode(" ",microtime());	
-	$etime=floor($ms*1000) + (1000*$s);
-	$this->idx--;
-	return $etime-$this->start[$this->idx];
-    }
-} // Class
-
-$gJpgBrandTiming = BRAND_TIMING;
-//===================================================
-// CLASS DateLocale
-// Description: Hold localized text used in dates
-//===================================================
-class DateLocale {
- 
-    var $iLocale = 'C'; // environmental locale be used by default
-
-    var $iDayAbb = null;
-    var $iShortDay = null;
-    var $iShortMonth = null;
-    var $iMonthName = null;
-
-//---------------
-// CONSTRUCTOR	
-    function DateLocale() {
-	settype($this->iDayAbb, 'array');
-	settype($this->iShortDay, 'array');
-	settype($this->iShortMonth, 'array');
-	settype($this->iMonthName, 'array');
-
-
-	$this->Set('C');
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Set($aLocale) {
-	if ( in_array($aLocale, array_keys($this->iDayAbb)) ){ 
-	    $this->iLocale = $aLocale;
-	    return TRUE;  // already cached nothing else to do!
-	}
-
-	$pLocale = setlocale(LC_TIME, 0); // get current locale for LC_TIME
-	$res = @setlocale(LC_TIME, $aLocale);
-	if ( ! $res ){
-	    JpGraphError::RaiseL(25007,$aLocale);
-//("You are trying to use the locale ($aLocale) which your PHP installation does not support. Hint: Use '' to indicate the default locale for this geographic region.");
-	    return FALSE;
-	}
- 
-	$this->iLocale = $aLocale;
-
-	for ( $i = 0, $ofs = 0 - strftime('%w'); $i < 7; $i++, $ofs++ ){
-	    $day = strftime('%a', strtotime("$ofs day"));
-	    $day{0} = strtoupper($day{0});
-	    $this->iDayAbb[$aLocale][]= $day{0};
-	    $this->iShortDay[$aLocale][]= $day;
-	}
-
-	for($i=1; $i<=12; ++$i) {
-	    list($short ,$full) = explode('|', strftime("%b|%B",strtotime("2001-$i-01")));
-	    $this->iShortMonth[$aLocale][] = ucfirst($short);
-	    $this->iMonthName [$aLocale][] = ucfirst($full);
-	}
-
-	// Return to original locale
-	setlocale(LC_TIME, $pLocale);
-
-	return TRUE;
-    }
-
-
-    function GetDayAbb() {
-	return $this->iDayAbb[$this->iLocale];
-    }
-	
-    function GetShortDay() {
-	return $this->iShortDay[$this->iLocale];
-    }
-
-    function GetShortMonth() {
-	return $this->iShortMonth[$this->iLocale];
-    }
-	
-    function GetShortMonthName($aNbr) {
-	return $this->iShortMonth[$this->iLocale][$aNbr];
-    }
-
-    function GetLongMonthName($aNbr) {
-	return $this->iMonthName[$this->iLocale][$aNbr];
-    }
-
-    function GetMonth() {
-	return $this->iMonthName[$this->iLocale];
-    }
-}
-
-$gDateLocale = new DateLocale();
-$gJpgDateLocale = new DateLocale();
-
-
-//=======================================================
-// CLASS Footer
-// Description: Encapsulates the footer line in the Graph
-//=======================================================
-class Footer {
-    var $left,$center,$right;
-    var $iLeftMargin = 3;
-    var $iRightMargin = 3;
-    var $iBottomMargin = 3;
-
-    function Footer() {
-	$this->left = new Text();
-	$this->left->ParagraphAlign('left');
-	$this->center = new Text();
-	$this->center->ParagraphAlign('center');
-	$this->right = new Text();
-	$this->right->ParagraphAlign('right');
-    }
-
-    function Stroke(&$aImg) {
-	$y = $aImg->height - $this->iBottomMargin;
-	$x = $this->iLeftMargin;
-	$this->left->Align('left','bottom');
-	$this->left->Stroke($aImg,$x,$y);
-
-	$x = ($aImg->width - $this->iLeftMargin - $this->iRightMargin)/2;
-	$this->center->Align('center','bottom');
-	$this->center->Stroke($aImg,$x,$y);
-
-	$x = $aImg->width - $this->iRightMargin;
-	$this->right->Align('right','bottom');
-	$this->right->Stroke($aImg,$x,$y);
-    }
-}
-
-
-//===================================================
-// CLASS Graph
-// Description: Main class to handle graphs
-//===================================================
-class Graph {
-    var $cache=null;		// Cache object (singleton)
-    var $img=null;			// Img object (singleton)
-    var $plots=array();	// Array of all plot object in the graph (for Y 1 axis)
-    var $y2plots=array();// Array of all plot object in the graph (for Y 2 axis)
-    var $ynplots=array();
-    var $xscale=null;		// X Scale object (could be instance of LinearScale or LogScale
-    var $yscale=null,$y2scale=null, $ynscale=array();
-    var $iIcons = array();      // Array of Icons to add to 
-    var $cache_name;		// File name to be used for the current graph in the cache directory
-    var $xgrid=null;		// X Grid object (linear or logarithmic)
-    var $ygrid=null,$y2grid=null; 
-    var $doframe=true,$frame_color=array(0,0,0), $frame_weight=1;	// Frame around graph
-    var $boxed=false, $box_color=array(0,0,0), $box_weight=1;		// Box around plot area
-    var $doshadow=false,$shadow_width=4,$shadow_color=array(102,102,102);	// Shadow for graph
-    var $xaxis=null;		// X-axis (instane of Axis class)
-    var $yaxis=null, $y2axis=null, $ynaxis=array();	// Y axis (instance of Axis class)
-    var $margin_color=array(200,200,200);	// Margin color of graph
-    var $plotarea_color=array(255,255,255);	// Plot area color
-    var $title,$subtitle,$subsubtitle; 	// Title and subtitle(s) text object
-    var $axtype="linlin";		// Type of axis
-    var $xtick_factor;			// Factot to determine the maximum number of ticks depending on the plot with
-    var $texts=null, $y2texts=null; 	// Text object to ge shown in the graph
-    var $lines=null, $y2lines=null;
-    var $bands=null, $y2bands=null;
-    var $text_scale_off=0, $text_scale_abscenteroff=-1; // Text scale offset in fractions and for centering bars in absolute pixels
-    var $background_image="",$background_image_type=-1,$background_image_format="png";
-    var $background_image_bright=0,$background_image_contr=0,$background_image_sat=0;
-    var $image_bright=0, $image_contr=0, $image_sat=0;
-    var $inline;
-    var $showcsim=0,$csimcolor="red"; //debug stuff, draw the csim boundaris on the image if <>0
-    var $grid_depth=DEPTH_BACK;	// Draw grid under all plots as default
-    var $iAxisStyle = AXSTYLE_SIMPLE;
-    var $iCSIMdisplay=false,$iHasStroked = false;
-    var $footer;
-    var $csimcachename = '', $csimcachetimeout = 0;
-    var $iDoClipping = false;
-    var $y2orderback=true;
-    var $tabtitle;
-    var $bkg_gradtype=-1,$bkg_gradstyle=BGRAD_MARGIN;
-    var $bkg_gradfrom='navy', $bkg_gradto='silver';
-    var $titlebackground = false;
-    var	$titlebackground_color = 'lightblue',
-	$titlebackground_style = 1,
-	$titlebackground_framecolor = 'blue',
-	$titlebackground_framestyle = 2,
-	$titlebackground_frameweight = 1,
-	$titlebackground_bevelheight = 3 ;
-    var $titlebkg_fillstyle=TITLEBKG_FILLSTYLE_SOLID;
-    var $titlebkg_scolor1='black',$titlebkg_scolor2='white';
-    var $framebevel = false, $framebeveldepth = 2 ;
-    var $framebevelborder = false, $framebevelbordercolor='black';
-    var $framebevelcolor1='white@0.4', $framebevelcolor2='black@0.4';
-    var $background_image_mix=100;
-    var $background_cflag = '';
-    var $background_cflag_type = BGIMG_FILLPLOT;
-    var $background_cflag_mix = 100;
-    var $iImgTrans=false,
-	$iImgTransHorizon = 100,$iImgTransSkewDist=150,
-	$iImgTransDirection = 1, $iImgTransMinSize = true,
-	$iImgTransFillColor='white',$iImgTransHighQ=false,
-	$iImgTransBorder=false,$iImgTransHorizonPos=0.5;
-    var $iYAxisDeltaPos=50;
-    var $iIconDepth=DEPTH_BACK;
-    var $iAxisLblBgType = 0,
-	$iXAxisLblBgFillColor = 'lightgray', $iXAxisLblBgColor = 'black',
-	$iYAxisLblBgFillColor = 'lightgray', $iYAxisLblBgColor = 'black';
-    var $iTables=NULL;
-
-//---------------
-// CONSTRUCTOR
-
-    // aWIdth 		Width in pixels of image
-    // aHeight  	Height in pixels of image
-    // aCachedName	Name for image file in cache directory 
-    // aTimeOut		Timeout in minutes for image in cache
-    // aInline		If true the image is streamed back in the call to Stroke()
-    //			If false the image is just created in the cache
-    function Graph($aWidth=300,$aHeight=200,$aCachedName="",$aTimeOut=0,$aInline=true) {
-	GLOBAL $gJpgBrandTiming;
-	// If timing is used create a new timing object
-	if( $gJpgBrandTiming ) {
-	    global $tim;
-	    $tim = new JpgTimer();
-	    $tim->Push();
-	}
-
-	if( !is_numeric($aWidth) || !is_numeric($aHeight) ) {
-	    JpGraphError::RaiseL(25008);//('Image width/height argument in Graph::Graph() must be numeric');
-	}
-		
-	// Automatically generate the image file name based on the name of the script that
-	// generates the graph
-	if( $aCachedName=="auto" )
-	    $aCachedName=GenImgName();
-			
-	// Should the image be streamed back to the browser or only to the cache?
-	$this->inline=$aInline;
-		
-	$this->img	= new RotImage($aWidth,$aHeight);
-
-	$this->cache 	= new ImgStreamCache($this->img);
-	$this->cache->SetTimeOut($aTimeOut);
-
-	$this->title = new Text();
-	$this->title->ParagraphAlign('center');
-	$this->title->SetFont(FF_FONT2,FS_BOLD);
-	$this->title->SetMargin(3);
-	$this->title->SetAlign('center');
-
-	$this->subtitle = new Text();
-	$this->subtitle->ParagraphAlign('center');
-	$this->subtitle->SetMargin(2);
-	$this->subtitle->SetAlign('center');
-
-	$this->subsubtitle = new Text();
-	$this->subsubtitle->ParagraphAlign('center');
-	$this->subsubtitle->SetMargin(2);
-	$this->subsubtitle->SetAlign('center');
-
-	$this->legend = new Legend();
-	$this->footer = new Footer();
-
-	// Window doesn't like '?' in the file name so replace it with an '_'
-	$aCachedName = str_replace("?","_",$aCachedName);
-
-	// If the cached version exist just read it directly from the
-	// cache, stream it back to browser and exit
-	if( $aCachedName!="" && READ_CACHE && $aInline )
-	    if( $this->cache->GetAndStream($aCachedName) ) {
-		exit();
-	    }
-				
-	$this->cache_name = $aCachedName;
-	$this->SetTickDensity(); // Normal density
-
-	$this->tabtitle = new GraphTabTitle();
-    }
-//---------------
-// PUBLIC METHODS	
-    // Enable final image perspective transformation
-    function Set3DPerspective($aDir=1,$aHorizon=100,$aSkewDist=120,$aQuality=false,$aFillColor='#FFFFFF',$aBorder=false,$aMinSize=true,$aHorizonPos=0.5) {
-	$this->iImgTrans = true;
-	$this->iImgTransHorizon = $aHorizon;
-	$this->iImgTransSkewDist= $aSkewDist;
-	$this->iImgTransDirection = $aDir;
-	$this->iImgTransMinSize = $aMinSize;
-	$this->iImgTransFillColor=$aFillColor;
-	$this->iImgTransHighQ=$aQuality;
-	$this->iImgTransBorder=$aBorder;
-	$this->iImgTransHorizonPos=$aHorizonPos;
-    }
-
-    // Set Image format and optional quality
-    function SetImgFormat($aFormat,$aQuality=75) {
-	$this->img->SetImgFormat($aFormat,$aQuality);
-    }
-
-    // Should the grid be in front or back of the plot?
-    function SetGridDepth($aDepth) {
-	$this->grid_depth=$aDepth;
-    }
-
-    function SetIconDepth($aDepth) {
-	$this->iIconDepth=$aDepth;
-    }
-	
-    // Specify graph angle 0-360 degrees.
-    function SetAngle($aAngle) {
-	$this->img->SetAngle($aAngle);
-    }
-
-    function SetAlphaBlending($aFlg=true) {
-	$this->img->SetAlphaBlending($aFlg);
-    }
-
-    // Shortcut to image margin
-    function SetMargin($lm,$rm,$tm,$bm) {
-	$this->img->SetMargin($lm,$rm,$tm,$bm);
-    }
-
-    function SetY2OrderBack($aBack=true) {
-	$this->y2orderback = $aBack;
-    }
-
-    // Rotate the graph 90 degrees and set the margin 
-    // when we have done a 90 degree rotation
-    function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) {
-	$lm = $lm ==0 ? floor(0.2 * $this->img->width)  : $lm ;
-	$rm = $rm ==0 ? floor(0.1 * $this->img->width)  : $rm ;
-	$tm = $tm ==0 ? floor(0.2 * $this->img->height) : $tm ;
-	$bm = $bm ==0 ? floor(0.1 * $this->img->height) : $bm ;
-
-	$adj = ($this->img->height - $this->img->width)/2;
-	$this->img->SetMargin($tm-$adj,$bm-$adj,$rm+$adj,$lm+$adj);
-	$this->img->SetCenter(floor($this->img->width/2),floor($this->img->height/2));
-	$this->SetAngle(90);
-	if( empty($this->yaxis) || empty($this->xaxis) ) {
-	    JpgraphError::RaiseL(25009);//('You must specify what scale to use with a call to Graph::SetScale()');
-	}
-	$this->xaxis->SetLabelAlign('right','center');
-	$this->yaxis->SetLabelAlign('center','bottom');
-    }
-	
-    function SetClipping($aFlg=true) {
-	$this->iDoClipping = $aFlg ;
-    }
-
-    // Add a plot object to the graph
-    function Add(&$aPlot) {
-	if( $aPlot == null )
-	    JpGraphError::RaiseL(25010);//("Graph::Add() You tried to add a null plot to the graph.");
-	if( is_array($aPlot) && count($aPlot) > 0 )
-	    $cl = $aPlot[0];
-	else
-	    $cl = $aPlot;
-
-	if( is_a($cl,'Text') ) 
-	    $this->AddText($aPlot);
-	elseif( is_a($cl,'PlotLine') )
-	    $this->AddLine($aPlot);
-	elseif( is_a($cl,'PlotBand') )
-	    $this->AddBand($aPlot);
-	elseif( is_a($cl,'IconPlot') )
-	    $this->AddIcon($aPlot);
-	elseif( is_a($cl,'GTextTable') )
-	    $this->AddTable($aPlot);
-	else
-	    $this->plots[] = &$aPlot;
-    }
-
-
-    function AddTable(&$aTable) {
-	if( is_array($aTable) ) {
-	    for($i=0; $i < count($aTable); ++$i )
-		$this->iTables[]=&$aTable[$i];
-	}
-	else {
-	    $this->iTables[] = &$aTable ;
-	}	
-    }
-
-    function AddIcon(&$aIcon) {
-	if( is_array($aIcon) ) {
-	    for($i=0; $i < count($aIcon); ++$i )
-		$this->iIcons[]=&$aIcon[$i];
-	}
-	else {
-	    $this->iIcons[] = &$aIcon ;
-	}	
-    }
-
-    // Add plot to second Y-scale
-    function AddY2(&$aPlot) {
-	if( $aPlot == null )
-	    JpGraphError::RaiseL(25011);//("Graph::AddY2() You tried to add a null plot to the graph.");	
-
-	if( is_array($aPlot) && count($aPlot) > 0 )
-	    $cl = $aPlot[0];
-	else
-	    $cl = $aPlot;
-
-	if( is_a($cl,'Text') ) 
-	    $this->AddText($aPlot,true);
-	elseif( is_a($cl,'PlotLine') )
-	    $this->AddLine($aPlot,true);
-	elseif( is_a($cl,'PlotBand') )
-	    $this->AddBand($aPlot,true);
-	else
-	    $this->y2plots[] = &$aPlot;
-    }
-
-    // Add plot to second Y-scale
-    function AddY($aN,&$aPlot) {
-
-	if( $aPlot == null )
-	    JpGraphError::RaiseL(25012);//("Graph::AddYN() You tried to add a null plot to the graph.");	
-
-	if( is_array($aPlot) && count($aPlot) > 0 )
-	    $cl = $aPlot[0];
-	else
-	    $cl = $aPlot;
-
-	if( is_a($cl,'Text') || is_a($cl,'PlotLine') || is_a($cl,'PlotBand') )
-	    JpGraph::RaiseL(25013);//('You can only add standard plots to multiple Y-axis');
-	else
-	    $this->ynplots[$aN][] = &$aPlot;
-    }
-    
-    // Add text object to the graph
-    function AddText(&$aTxt,$aToY2=false) {
-	if( $aTxt == null )
-	    JpGraphError::RaiseL(25014);//("Graph::AddText() You tried to add a null text to the graph.");		
-	if( $aToY2 ) {
-	    if( is_array($aTxt) ) {
-		for($i=0; $i < count($aTxt); ++$i )
-		    $this->y2texts[]=&$aTxt[$i];
-	    }
-	    else
-		$this->y2texts[] = &$aTxt;
-	}
-	else {
-	    if( is_array($aTxt) ) {
-		for($i=0; $i < count($aTxt); ++$i )
-		    $this->texts[]=&$aTxt[$i];
-	    }
-	    else
-		$this->texts[] = &$aTxt;
-	}
-    }
-	
-    // Add a line object (class PlotLine) to the graph
-    function AddLine(&$aLine,$aToY2=false) {
-	if( $aLine == null )
-	    JpGraphError::RaiseL(25015);//("Graph::AddLine() You tried to add a null line to the graph.");	
-
-	if( $aToY2 ) {
- 	    if( is_array($aLine) ) {
-		for($i=0; $i < count($aLine); ++$i )
-		    $this->y2lines[]=&$aLine[$i];
-	    }
-	    else
-		$this->y2lines[] = &$aLine;
-	}
-	else {
- 	    if( is_array($aLine) ) {
-		for($i=0; $i < count($aLine); ++$i )
-		    $this->lines[]=&$aLine[$i];
-	    }
-	    else
-		$this->lines[] = &$aLine;
-	}
-    }
-
-    // Add vertical or horizontal band
-    function AddBand(&$aBand,$aToY2=false) {
-	if( $aBand == null )
-	    JpGraphError::RaiseL(25016);//(" Graph::AddBand() You tried to add a null band to the graph.");
-
-	if( $aToY2 ) {
-	    if( is_array($aBand) ) {
-		for($i=0; $i < count($aBand); ++$i )
-		    $this->y2bands[] = &$aBand[$i];
-	    }
-	    else
-		$this->y2bands[] = &$aBand;
-	}
-	else {
-	    if( is_array($aBand) ) {
-		for($i=0; $i < count($aBand); ++$i )
-		    $this->bands[] = &$aBand[$i];
-	    }
-	    else
-		$this->bands[] = &$aBand;
-	}
-    }
-
-    function SetBackgroundGradient($aFrom='navy',$aTo='silver',$aGradType=2,$aStyle=BGRAD_FRAME) {
-	$this->bkg_gradtype=$aGradType;
-	$this->bkg_gradstyle=$aStyle;
-	$this->bkg_gradfrom = $aFrom;
-	$this->bkg_gradto = $aTo;
-    } 
-	
-    // Set a country flag in the background
-    function SetBackgroundCFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) {
-	$this->background_cflag = $aName;
-	$this->background_cflag_type = $aBgType;
-	$this->background_cflag_mix = $aMix;
-    }
-
-    // Alias for the above method
-    function SetBackgroundCountryFlag($aName,$aBgType=BGIMG_FILLPLOT,$aMix=100) {
-	$this->background_cflag = $aName;
-	$this->background_cflag_type = $aBgType;
-	$this->background_cflag_mix = $aMix;
-    }
-
-
-    // Specify a background image
-    function SetBackgroundImage($aFileName,$aBgType=BGIMG_FILLPLOT,$aImgFormat="auto") {
-
-	if( $GLOBALS['gd2'] && !USE_TRUECOLOR ) {
-	    JpGraphError::RaiseL(25017);//("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x you <b>must</b> enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.");
-	}
-
-	// Get extension to determine image type
-	if( $aImgFormat == "auto" ) {
-	    $e = explode('.',$aFileName);
-	    if( !$e ) {
-		JpGraphError::RaiseL(25018,$aFileName);//('Incorrect file name for Graph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type');
-	    }
-
-	    $valid_formats = array('png', 'jpg', 'gif');
-	    $aImgFormat = strtolower($e[count($e)-1]);
-	    if ($aImgFormat == 'jpeg')  {
-		$aImgFormat = 'jpg';
-	    }
-	    elseif (!in_array($aImgFormat, $valid_formats) )  {
-		JpGraphError::RaiseL(25019,$aImgFormat);//('Unknown file extension ($aImgFormat) in Graph::SetBackgroundImage() for filename: '.$aFileName);
-	    }    
-	}
-
-	$this->background_image = $aFileName;
-	$this->background_image_type=$aBgType;
-	$this->background_image_format=$aImgFormat;
-    }
-
-    function SetBackgroundImageMix($aMix) {
-	$this->background_image_mix = $aMix ;
-    }
-	
-    // Adjust brightness and constrast for background image
-    function AdjBackgroundImage($aBright,$aContr=0,$aSat=0) {
-	$this->background_image_bright=$aBright;
-	$this->background_image_contr=$aContr;
-	$this->background_image_sat=$aSat;
-    }
-	
-    // Adjust brightness and constrast for image
-    function AdjImage($aBright,$aContr=0,$aSat=0) {
-	$this->image_bright=$aBright;
-	$this->image_contr=$aContr;
-	$this->image_sat=$aSat;
-    }
-
-    // Specify axis style (boxed or single)
-    function SetAxisStyle($aStyle) {
-        $this->iAxisStyle = $aStyle ;
-    }
-	
-    // Set a frame around the plot area
-    function SetBox($aDrawPlotFrame=true,$aPlotFrameColor=array(0,0,0),$aPlotFrameWeight=1) {
-	$this->boxed = $aDrawPlotFrame;
-	$this->box_weight = $aPlotFrameWeight;
-	$this->box_color = $aPlotFrameColor;
-    }
-	
-    // Specify color for the plotarea (not the margins)
-    function SetColor($aColor) {
-	$this->plotarea_color=$aColor;
-    }
-	
-    // Specify color for the margins (all areas outside the plotarea)
-    function SetMarginColor($aColor) {
-	$this->margin_color=$aColor;
-    }
-	
-    // Set a frame around the entire image
-    function SetFrame($aDrawImgFrame=true,$aImgFrameColor=array(0,0,0),$aImgFrameWeight=1) {
-	$this->doframe = $aDrawImgFrame;
-	$this->frame_color = $aImgFrameColor;
-	$this->frame_weight = $aImgFrameWeight;
-    }
-
-    function SetFrameBevel($aDepth=3,$aBorder=false,$aBorderColor='black',$aColor1='white@0.4',$aColor2='darkgray@0.4',$aFlg=true) {
-	$this->framebevel = $aFlg ;
-	$this->framebeveldepth = $aDepth ;
-	$this->framebevelborder = $aBorder ;
-	$this->framebevelbordercolor = $aBorderColor ;
-	$this->framebevelcolor1 = $aColor1 ;
-	$this->framebevelcolor2 = $aColor2 ;
-
-	$this->doshadow = false ;
-    }
-
-    // Set the shadow around the whole image
-    function SetShadow($aShowShadow=true,$aShadowWidth=5,$aShadowColor=array(102,102,102)) {
-	$this->doshadow = $aShowShadow;
-	$this->shadow_color = $aShadowColor;
-	$this->shadow_width = $aShadowWidth;
-	$this->footer->iBottomMargin += $aShadowWidth;
-	$this->footer->iRightMargin += $aShadowWidth;
-    }
-
-    // Specify x,y scale. Note that if you manually specify the scale
-    // you must also specify the tick distance with a call to Ticks::Set()
-    function SetScale($aAxisType,$aYMin=1,$aYMax=1,$aXMin=1,$aXMax=1) {
-	$this->axtype = $aAxisType;
-
-	if( $aYMax < $aYMin || $aXMax < $aXMin )
-	    JpGraphError::RaiseL(25020);//('Graph::SetScale(): Specified Max value must be larger than the specified Min value.');
-
-	$yt=substr($aAxisType,-3,3);
-	if( $yt=="lin" )
-	    $this->yscale = new LinearScale($aYMin,$aYMax);
-	elseif( $yt == "int" ) {
-	    $this->yscale = new LinearScale($aYMin,$aYMax);
-	    $this->yscale->SetIntScale();
-	}
-	elseif( $yt=="log" )
-	    $this->yscale = new LogScale($aYMin,$aYMax);
-	else
-	    JpGraphError::RaiseL(25021,$aAxisType);//("Unknown scale specification for Y-scale. ($aAxisType)");
-			
-	$xt=substr($aAxisType,0,3);
-	if( $xt == "lin" || $xt == "tex" ) {
-	    $this->xscale = new LinearScale($aXMin,$aXMax,"x");
-	    $this->xscale->textscale = ($xt == "tex");
-	}
-	elseif( $xt == "int" ) {
-	    $this->xscale = new LinearScale($aXMin,$aXMax,"x");
-	    $this->xscale->SetIntScale();
-	}
-	elseif( $xt == "dat" ) {
-	    $this->xscale = new DateScale($aXMin,$aXMax,"x");
-	}
-	elseif( $xt == "log" )
-	    $this->xscale = new LogScale($aXMin,$aXMax,"x");
-	else
-	    JpGraphError::RaiseL(25022,$aAxisType);//(" Unknown scale specification for X-scale. ($aAxisType)");
-
-	$this->xaxis = new Axis($this->img,$this->xscale);
-	$this->yaxis = new Axis($this->img,$this->yscale);
-	$this->xgrid = new Grid($this->xaxis);
-	$this->ygrid = new Grid($this->yaxis);	
-	$this->ygrid->Show();			
-    }
-	
-    // Specify secondary Y scale
-    function SetY2Scale($aAxisType="lin",$aY2Min=1,$aY2Max=1) {
-	if( $aAxisType=="lin" ) 
-	    $this->y2scale = new LinearScale($aY2Min,$aY2Max);
-	elseif( $aAxisType == "int" ) {
-	    $this->y2scale = new LinearScale($aY2Min,$aY2Max);
-	    $this->y2scale->SetIntScale();
-	}
-	elseif( $aAxisType=="log" ) {
-	    $this->y2scale = new LogScale($aY2Min,$aY2Max);
-	}
-	else JpGraphError::RaiseL(25023,$aAxisType);//("JpGraph: Unsupported Y2 axis type: $aAxisType\nMust be one of (lin,log,int)");
-			
-	$this->y2axis = new Axis($this->img,$this->y2scale);
-	$this->y2axis->scale->ticks->SetDirection(SIDE_LEFT); 
-	$this->y2axis->SetLabelSide(SIDE_RIGHT); 
-	$this->y2axis->SetPos('max');
-	$this->y2axis->SetTitleSide(SIDE_RIGHT);
-		
-	// Deafult position is the max x-value
-	$this->y2grid = new Grid($this->y2axis);							
-    }
-
-    // Set the delta position (in pixels) between the multiple Y-axis
-    function SetYDeltaDist($aDist) {
-	$this->iYAxisDeltaPos = $aDist;
-    }
-	
-    // Specify secondary Y scale
-    function SetYScale($aN,$aAxisType="lin",$aYMin=1,$aYMax=1) {
-
-	if( $aAxisType=="lin" ) 
-	    $this->ynscale[$aN] = new LinearScale($aYMin,$aYMax);
-	elseif( $aAxisType == "int" ) {
-	    $this->ynscale[$aN] = new LinearScale($aYMin,$aYMax);
-	    $this->ynscale[$aN]->SetIntScale();
-	}
-	elseif( $aAxisType=="log" ) {
-	    $this->ynscale[$aN] = new LogScale($aYMin,$aYMax);
-	}
-	else JpGraphError::RaiseL(25024,$aAxisType);//("JpGraph: Unsupported Y axis type: $aAxisType\nMust be one of (lin,log,int)");
-			
-	$this->ynaxis[$aN] = new Axis($this->img,$this->ynscale[$aN]);
-	$this->ynaxis[$aN]->scale->ticks->SetDirection(SIDE_LEFT); 
-	$this->ynaxis[$aN]->SetLabelSide(SIDE_RIGHT); 
-    }
-
-	
-    // Specify density of ticks when autoscaling 'normal', 'dense', 'sparse', 'verysparse'
-    // The dividing factor have been determined heuristically according to my aesthetic 
-    // sense (or lack off) y.m.m.v !
-    function SetTickDensity($aYDensity=TICKD_NORMAL,$aXDensity=TICKD_NORMAL) {
-	$this->xtick_factor=30;
-	$this->ytick_factor=25;		
-	switch( $aYDensity ) {
-	    case TICKD_DENSE:
-		$this->ytick_factor=12;			
-		break;
-	    case TICKD_NORMAL:
-		$this->ytick_factor=25;			
-		break;
-	    case TICKD_SPARSE:
-		$this->ytick_factor=40;			
-		break;
-	    case TICKD_VERYSPARSE:
-		$this->ytick_factor=100;			
-		break;		
-	    default:
-		JpGraphError::RaiseL(25025,$densy);//("JpGraph: Unsupported Tick density: $densy");
-	}
-	switch( $aXDensity ) {
-	    case TICKD_DENSE:
-		$this->xtick_factor=15;							
-		break;
-	    case TICKD_NORMAL:
-		$this->xtick_factor=30;			
-		break;
-	    case TICKD_SPARSE:
-		$this->xtick_factor=45;					
-		break;
-	    case TICKD_VERYSPARSE:
-		$this->xtick_factor=60;								
-		break;		
-	    default:
-		JpGraphError::RaiseL(25025,$densx);//("JpGraph: Unsupported Tick density: $densx");
-	}		
-    }
-	
-
-    // Get a string of all image map areas	
-    function GetCSIMareas() {
-	if( !$this->iHasStroked )
-	    $this->Stroke(_CSIM_SPECIALFILE);
-
-	$csim = $this->title->GetCSIMAreas();
-	$csim .= $this->subtitle->GetCSIMAreas();
-	$csim .= $this->subsubtitle->GetCSIMAreas();
-	$csim .= $this->legend->GetCSIMAreas();
-
-	if( $this->y2axis != NULL ) {
-	    $csim .= $this->y2axis->title->GetCSIMAreas();
-	}
-
-	if( $this->texts != null ) {
-	    $n = count($this->texts);
-	    for($i=0; $i < $n; ++$i ) {
-		$csim .= $this->texts[$i]->GetCSIMAreas();
-	    }
-	}
-
-	if( $this->y2texts != null && $this->y2scale != null ) {
-	    $n = count($this->y2texts);
-	    for($i=0; $i < $n; ++$i ) {
-		$csim .= $this->y2texts[$i]->GetCSIMAreas();
-	    }
-	}
-
-	if( $this->yaxis != null && $this->xaxis != null ) {
-	    $csim .= $this->yaxis->title->GetCSIMAreas();	
-	    $csim .= $this->xaxis->title->GetCSIMAreas();
-	}
-
-	$n = count($this->plots);
-	for( $i=0; $i < $n; ++$i ) 
-	    $csim .= $this->plots[$i]->GetCSIMareas();
-
-	$n = count($this->y2plots);
-	for( $i=0; $i < $n; ++$i ) 
-	    $csim .= $this->y2plots[$i]->GetCSIMareas();
-
-	$n = count($this->ynaxis);
-	for( $i=0; $i < $n; ++$i ) {
-	    $m = count($this->ynplots[$i]); 
-	    for($j=0; $j < $m; ++$j ) {
-		$csim .= $this->ynplots[$i][$j]->GetCSIMareas();
-	    }
-	}
-
-	$n = count($this->iTables);
-	for( $i=0; $i < $n; ++$i ) {
-	    $csim .= $this->iTables[$i]->GetCSIMareas();
-	}
-
-	return $csim;
-    }
-	
-    // Get a complete <MAP>..</MAP> tag for the final image map
-    function GetHTMLImageMap($aMapName) {
-	$im = "<map name=\"$aMapName\" id=\"$aMapName\" >\n";
-	$im .= $this->GetCSIMareas();
-	$im .= "</map>"; 
-	return $im;
-    }
-
-    function CheckCSIMCache($aCacheName,$aTimeOut=60) {
-	global $_SERVER;
-
-	if( $aCacheName=='auto' )
-	    $aCacheName=basename($_SERVER['PHP_SELF']);
-
-	$urlarg = $this->GetURLArguments();
-	$this->csimcachename = CSIMCACHE_DIR.$aCacheName.$urlarg;
-	$this->csimcachetimeout = $aTimeOut;
-
-	// First determine if we need to check for a cached version
-	// This differs from the standard cache in the sense that the
-	// image and CSIM map HTML file is written relative to the directory
-	// the script executes in and not the specified cache directory.
-	// The reason for this is that the cache directory is not necessarily
-	// accessible from the HTTP server.
-	if( $this->csimcachename != '' ) {
-	    $dir = dirname($this->csimcachename);
-	    $base = basename($this->csimcachename);
-	    $base = strtok($base,'.');
-	    $suffix = strtok('.');
-	    $basecsim = $dir.'/'.$base.'?'.$urlarg.'_csim_.html';
-	    $baseimg = $dir.'/'.$base.'?'.$urlarg.'.'.$this->img->img_format;
-
-	    $timedout=false;
-	    // Does it exist at all ?
-	    
-	    if( file_exists($basecsim) && file_exists($baseimg) ) {
-		// Check that it hasn't timed out
-		$diff=time()-filemtime($basecsim);
-		if( $this->csimcachetimeout>0 && ($diff > $this->csimcachetimeout*60) ) {
-		    $timedout=true;
-		    @unlink($basecsim);
-		    @unlink($baseimg);
-		}
-		else {
-		    if ($fh = @fopen($basecsim, "r")) {
-			fpassthru($fh);
-			return true;
-		    }
-		    else
-			JpGraphError::RaiseL(25027,$basecsim);//(" Can't open cached CSIM \"$basecsim\" for reading.");
-		}
-	    }
-	}
-	return false;
-    }
-
-    // Build the argument string to be used with the csim images
-    function GetURLArguments() {
-		
-	// This is a JPGRAPH internal defined that prevents
-	// us from recursively coming here again
-	$urlarg = _CSIM_DISPLAY.'=1';
-
-	// Now reconstruct any user URL argument
-	reset($_GET);
-	while( list($key,$value) = each($_GET) ) {
-	    if( is_array($value) ) {
-		$n = count($value);
-		for( $i=0; $i < $n; ++$i ) {
-		    $urlarg .= '&'.$key.'%5B%5D='.urlencode($value[$i]);
-		}
-	    }
-	    else {
-		$urlarg .= '&'.$key.'='.urlencode($value);
-	    }
-	}
-
-	// It's not ideal to convert POST argument to GET arguments
-	// but there is little else we can do. One idea for the 
-	// future might be recreate the POST header in case.
-	reset($_POST);
-	while( list($key,$value) = each($_POST) ) {
-	    if( is_array($value) ) {
-		$n = count($value);
-		for( $i=0; $i < $n; ++$i ) {
-		    $urlarg .= '&'.$key.'%5B%5D='.urlencode($value[$i]);
-		}
-	    }
-	    else {
-		$urlarg .= '&'.$key.'='.urlencode($value);
-	    }
-	}
-
-	return $urlarg;
-    }
-
-    function StrokeCSIM($aScriptName='auto',$aCSIMName='',$aBorder=0) {
-	if( $aCSIMName=='' ) {
-	    // create a random map name
-	    srand ((double) microtime() * 1000000);
-	    $r = rand(0,100000);
-	    $aCSIMName='__mapname'.$r.'__';
-	}
-
-	if( $aScriptName=='auto' )
-	    $aScriptName=basename($_SERVER['PHP_SELF']);
-
-	$urlarg = $this->GetURLArguments();
-
-	if( empty($_GET[_CSIM_DISPLAY]) ) {
-	    // First determine if we need to check for a cached version
-	    // This differs from the standard cache in the sense that the
-	    // image and CSIM map HTML file is written relative to the directory
-	    // the script executes in and not the specified cache directory.
-	    // The reason for this is that the cache directory is not necessarily
-	    // accessible from the HTTP server.
-	    if( $this->csimcachename != '' ) {
-		$dir = dirname($this->csimcachename);
-		$base = basename($this->csimcachename);
-		$base = strtok($base,'.');
-		$suffix = strtok('.');
-		$basecsim = $dir.'/'.$base.'?'.$urlarg.'_csim_.html';
-		$baseimg = $base.'?'.$urlarg.'.'.$this->img->img_format;
-
-		// Check that apache can write to directory specified
-
-		if( file_exists($dir) && !is_writeable($dir) ) {
-		    JpgraphError::RaiseL(25028,$dir);//('Apache/PHP does not have permission to write to the CSIM cache directory ('.$dir.'). Check permissions.');
-		}
-		
-		// Make sure directory exists
-		$this->cache->MakeDirs($dir);
-
-		// Write the image file
-		$this->Stroke(CSIMCACHE_DIR.$baseimg);
-
-		// Construct wrapper HTML and write to file and send it back to browser
-
-		// In the src URL we must replace the '?' with its encoding to prevent the arguments
-		// to be converted to real arguments.
-		$tmp = str_replace('?','%3f',$baseimg);
-		$htmlwrap = $this->GetHTMLImageMap($aCSIMName)."\n".
-		    '<img src="'.CSIMCACHE_HTTP_DIR.$tmp.'" ismap="ismap" usemap="#'.$aCSIMName.'" border="'.$aBorder.'" width="'.$this->img->width.'" height="'.$this->img->height."\" alt=\"\" />\n";
-
-		if($fh =  @fopen($basecsim,'w') ) {
-		    fwrite($fh,$htmlwrap);
-		    fclose($fh);
-		    echo $htmlwrap;
-		}
-		else
-		    JpGraphError::RaiseL(25029,$basecsim);//(" Can't write CSIM \"$basecsim\" for writing. Check free space and permissions.");
-	    }
-	    else {
-
-		if( $aScriptName=='' ) {
-		    JpGraphError::RaiseL(25030);//('Missing script name in call to StrokeCSIM(). You must specify the name of the actual image script as the first parameter to StrokeCSIM().');
-		}
-		echo $this->GetHTMLImageMap($aCSIMName);
-		echo "<img src=\"".$aScriptName.'?'.$urlarg."\" ismap=\"ismap\" usemap=\"#".$aCSIMName.'" border="'.$aBorder.'" width="'.$this->img->width.'" height="'.$this->img->height."\" alt=\"\" />\n";
-	    }
-	}
-	else {
-	    $this->Stroke();
-	}
-    }
-
-    function GetTextsYMinMax($aY2=false) {
-	if( $aY2 ) 
-	    $txts = $this->y2texts;
-	else
-	    $txts = $this->texts;
-	$n = count($txts);
-	$min=null;
-	$max=null;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $txts[$i]->iScalePosY !== null && 
-		$txts[$i]->iScalePosX !== null  ) {
-		if( $min === null  ) {
-		    $min = $max = $txts[$i]->iScalePosY ;
-		}
-		else {
-		    $min = min($min,$txts[$i]->iScalePosY);
-		    $max = max($max,$txts[$i]->iScalePosY);
-		}
-	    }
-	}
-	if( $min !== null ) {
-	    return array($min,$max);
-	}
-	else
-	    return null;
-    }
-
-    function GetTextsXMinMax($aY2=false) {
-	if( $aY2 ) 
-	    $txts = $this->y2texts;
-	else
-	    $txts = $this->texts;
-	$n = count($txts);
-	$min=null;
-	$max=null;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $txts[$i]->iScalePosY !== null && 
-		$txts[$i]->iScalePosX !== null  ) {
-		if( $min === null  ) {
-		    $min = $max = $txts[$i]->iScalePosX ;
-		}
-		else {
-		    $min = min($min,$txts[$i]->iScalePosX);
-		    $max = max($max,$txts[$i]->iScalePosX);
-		}
-	    }
-	}
-	if( $min !== null ) {
-	    return array($min,$max);
-	}
-	else
-	    return null;
-    }
-
-    function GetXMinMax() {
-	list($min,$ymin) = $this->plots[0]->Min();
-	list($max,$ymax) = $this->plots[0]->Max();
-	foreach( $this->plots as $p ) {
-	    list($xmin,$ymin) = $p->Min();
-	    list($xmax,$ymax) = $p->Max();			
-	    $min = Min($xmin,$min);
-	    $max = Max($xmax,$max);
-	}
-
-	if( $this->y2axis != null ) {
-	    foreach( $this->y2plots as $p ) {
-		list($xmin,$ymin) = $p->Min();
-		list($xmax,$ymax) = $p->Max();			
-		$min = Min($xmin,$min);
-		$max = Max($xmax,$max);
-	    }		    
-	}
-
-	$n = count($this->ynaxis);
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $this->ynaxis[$i] != null) {
-		foreach( $this->ynplots[$i] as $p ) {
-		    list($xmin,$ymin) = $p->Min();
-		    list($xmax,$ymax) = $p->Max();			
-		    $min = Min($xmin,$min);
-		    $max = Max($xmax,$max);
-		}		    
-	    }
-	}
-
-	return array($min,$max);
-    }
-
-    function AdjustMarginsForTitles() {
-	$totrequired = 
-	    ($this->title->t != '' ? 
-	     $this->title->GetTextHeight($this->img) + $this->title->margin + 5 : 0 ) +
-	    ($this->subtitle->t != '' ? 
-	     $this->subtitle->GetTextHeight($this->img) + $this->subtitle->margin + 5 : 0 ) + 
-	    ($this->subsubtitle->t != '' ? 
-	     $this->subsubtitle->GetTextHeight($this->img) + $this->subsubtitle->margin + 5 : 0 ) ;
-	
-
-	$btotrequired = 0;
-	if($this->xaxis != null &&  !$this->xaxis->hide && !$this->xaxis->hide_labels ) {
-	    // Minimum bottom margin
-	    if( $this->xaxis->title->t != '' ) {
-		if( $this->img->a == 90 ) 
-		    $btotrequired = $this->yaxis->title->GetTextHeight($this->img) + 5 ;
-		else
-		    $btotrequired = $this->xaxis->title->GetTextHeight($this->img) + 5 ;
-	    }
-	    else
-		$btotrequired = 0;
-	    
-	    if( $this->img->a == 90 ) {
-		$this->img->SetFont($this->yaxis->font_family,$this->yaxis->font_style,
-				    $this->yaxis->font_size);
-		$lh = $this->img->GetTextHeight('Mg',$this->yaxis->label_angle);
-	    }
-	    else {
-		$this->img->SetFont($this->xaxis->font_family,$this->xaxis->font_style,
-				    $this->xaxis->font_size);
-		$lh = $this->img->GetTextHeight('Mg',$this->xaxis->label_angle);
-	    }
-	    
-	    $btotrequired += $lh + 5;
-	}
-
-	if( $this->img->a == 90 ) {
-	    // DO Nothing. It gets too messy to do this properly for 90 deg...
-	}
-	else{
-	    if( $this->img->top_margin < $totrequired ) {
-		$this->SetMargin($this->img->left_margin,$this->img->right_margin,
-				 $totrequired,$this->img->bottom_margin);
-	    }
-	    if( $this->img->bottom_margin < $btotrequired ) {
-		$this->SetMargin($this->img->left_margin,$this->img->right_margin,
-				 $this->img->top_margin,$btotrequired);
-	    }
-	}
-    }
-
-    // Stroke the graph
-    // $aStrokeFileName	If != "" the image will be written to this file and NOT
-    // streamed back to the browser
-    function Stroke($aStrokeFileName="") {		
-
-	// Fist make a sanity check that user has specified a scale
-	if( empty($this->yscale) ) {
-	    JpGraphError::RaiseL(25031);//('You must specify what scale to use with a call to Graph::SetScale().');
-	}
-
-	// Start by adjusting the margin so that potential titles will fit.
-	$this->AdjustMarginsForTitles();
-
-	// Setup scale constants
-	if( $this->yscale ) $this->yscale->InitConstants($this->img);
-	if( $this->xscale ) $this->xscale->InitConstants($this->img);
-	if( $this->y2scale ) $this->y2scale->InitConstants($this->img);
-	
-	$n=count($this->ynscale);
-	for($i=0; $i < $n; ++$i) {
-	  if( $this->ynscale[$i] ) $this->ynscale[$i]->InitConstants($this->img);
-	}
-
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-
-	// Do any pre-stroke adjustment that is needed by the different plot types
-	// (i.e bar plots want's to add an offset to the x-labels etc)
-	for($i=0; $i < count($this->plots) ; ++$i ) {
-	    $this->plots[$i]->PreStrokeAdjust($this);
-	    $this->plots[$i]->DoLegend($this);
-	}
-		
-	// Any plots on the second Y scale?
-	if( $this->y2scale != null ) {
-	    for($i=0; $i<count($this->y2plots)	; ++$i ) {
-		$this->y2plots[$i]->PreStrokeAdjust($this);
-		$this->y2plots[$i]->DoLegend($this);
-	    }
-	}
-
-	// Any plots on the extra Y axises?
-	$n = count($this->ynaxis);
-	for($i=0; $i<$n	; ++$i ) {
-	    if( $this->ynplots == null || $this->ynplots[$i] == null) {
-		JpGraphError::RaiseL(25032,$i);//("No plots for Y-axis nbr:$i");
-	    } 
-	    $m = count($this->ynplots[$i]); 
-	    for($j=0; $j < $m; ++$j ) {
-		$this->ynplots[$i][$j]->PreStrokeAdjust($this);
-		$this->ynplots[$i][$j]->DoLegend($this);
-	    }
-	}
-
-		
-	// Bail out if any of the Y-axis not been specified and
-	// has no plots. (This means it is impossible to do autoscaling and
-	// no other scale was given so we can't possible draw anything). If you use manual
-	// scaling you also have to supply the tick steps as well.
-	if( (!$this->yscale->IsSpecified() && count($this->plots)==0) ||
-	    ($this->y2scale!=null && !$this->y2scale->IsSpecified() && count($this->y2plots)==0) ) {
-	    //$e = "n=".count($this->y2plots)."\n";
-	    // $e = "Can't draw unspecified Y-scale.<br>\nYou have either:<br>\n";
-	    // $e .= "1. Specified an Y axis for autoscaling but have not supplied any plots<br>\n";
-	    // $e .= "2. Specified a scale manually but have forgot to specify the tick steps";
-	    JpGraphError::RaiseL(25026);
-	}
-		
-	// Bail out if no plots and no specified X-scale
-	if( (!$this->xscale->IsSpecified() && count($this->plots)==0 && count($this->y2plots)==0) )
-	    JpGraphError::RaiseL(25034);//("<strong>JpGraph: Can't draw unspecified X-scale.</strong><br>No plots.<br>");
-
-	//Check if we should autoscale y-axis
-	if( !$this->yscale->IsSpecified() && count($this->plots)>0 ) {
-	    list($min,$max) = $this->GetPlotsYMinMax($this->plots);
- 	    $lres = $this->GetLinesYMinMax($this->lines);
-	    if( is_array($lres) ) {
-		list($linmin,$linmax) = $lres ;
-		$min = min($min,$linmin);
-		$max = max($max,$linmax);
-	    }
-	    $tres = $this->GetTextsYMinMax();
-	    if( is_array($tres) ) {
-		list($tmin,$tmax) = $tres ;
-		$min = min($min,$tmin);
-		$max = max($max,$tmax);
-	    }
-	    $this->yscale->AutoScale($this->img,$min,$max,
-				     $this->img->plotheight/$this->ytick_factor);
-	}
-	elseif( $this->yscale->IsSpecified() && 
-		( $this->yscale->auto_ticks || !$this->yscale->ticks->IsSpecified()) ) {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    $min = $this->yscale->scale[0];
-	    $max = $this->yscale->scale[1];
-	    $this->yscale->AutoScale($this->img,$min,$max,
-				     $this->img->plotheight/$this->ytick_factor,
-				     $this->yscale->auto_ticks);
-	}
-
-	if( $this->y2scale != null) {
-	  
-	    if( !$this->y2scale->IsSpecified() && count($this->y2plots)>0 ) {
-		list($min,$max) = $this->GetPlotsYMinMax($this->y2plots);
-		$lres = $this->GetLinesYMinMax($this->y2lines);
-		if( is_array($lres) ) {
-		    list($linmin,$linmax) = $lres ;
-		    $min = min($min,$linmin);
-		    $max = max($max,$linmax);
-		}
-		$tres = $this->GetTextsYMinMax(true);
-		if( is_array($tres) ) {
-		    list($tmin,$tmax) = $tres ;
-		    $min = min($min,$tmin);
-		    $max = max($max,$tmax);
-		}
-		$this->y2scale->AutoScale($this->img,$min,$max,$this->img->plotheight/$this->ytick_factor);
-	    }			
-	    elseif( $this->y2scale->IsSpecified() && 
-		    ( $this->y2scale->auto_ticks || !$this->y2scale->ticks->IsSpecified()) ) {
-		// The tick calculation will use the user suplied min/max values to determine
-		// the ticks. If auto_ticks is false the exact user specifed min and max
-		// values will be used for the scale. 
-		// If auto_ticks is true then the scale might be slightly adjusted
-		// so that the min and max values falls on an even major step.
-		$min = $this->y2scale->scale[0];
-		$max = $this->y2scale->scale[1];
-		$this->y2scale->AutoScale($this->img,$min,$max,
-					  $this->img->plotheight/$this->ytick_factor,
-					  $this->y2scale->auto_ticks);
-	    }
-	}
-
-	//
-	// Autoscale the multiple Y-axis
-	//
-	$n = count($this->ynaxis);
-	for( $i=0; $i < $n; ++$i ) {
-	  if( $this->ynscale[$i] != null) {
-	    if( !$this->ynscale[$i]->IsSpecified() && count($this->ynplots[$i])>0 ) {
-	      list($min,$max) = $this->GetPlotsYMinMax($this->ynplots[$i]);
-	      $this->ynscale[$i]->AutoScale($this->img,$min,$max,$this->img->plotheight/$this->ytick_factor);
-	    }			
-	    elseif( $this->ynscale[$i]->IsSpecified() && 
-		    ( $this->ynscale[$i]->auto_ticks || !$this->ynscale[$i]->ticks->IsSpecified()) ) {
-		// The tick calculation will use the user suplied min/max values to determine
-		// the ticks. If auto_ticks is false the exact user specifed min and max
-		// values will be used for the scale. 
-		// If auto_ticks is true then the scale might be slightly adjusted
-		// so that the min and max values falls on an even major step.
-	      $min = $this->ynscale[$i]->scale[0];
-	      $max = $this->ynscale[$i]->scale[1];
-	      $this->ynscale[$i]->AutoScale($this->img,$min,$max,
-					    $this->img->plotheight/$this->ytick_factor,
-					    $this->ynscale[$i]->auto_ticks);
-	    }
-	  }
-	}
-		
-
-	//Check if we should autoscale x-axis
-	if( !$this->xscale->IsSpecified() ) {
-	    if( substr($this->axtype,0,4) == "text" ) {
-		$max=0;
-		$n = count($this->plots);
-		for($i=0; $i < $n; ++$i ) {
-		    $p = $this->plots[$i];
-		    // We need some unfortunate sub class knowledge here in order
-		    // to increase number of data points in case it is a line plot
-		    // which has the barcenter set. If not it could mean that the
-		    // last point of the data is outside the scale since the barcenter
-		    // settings means that we will shift the entire plot half a tick step
-		    // to the right in oder to align with the center of the bars.
-		    if( is_a($p,'BarPlot') || empty($p->barcenter)) {
-			$max=max($max,$p->numpoints-1);
-		    }
-		    else {
-			$max=max($max,$p->numpoints);
-		    }
-		}
-		$min=0;
-		if( $this->y2axis != null ) {
-		    foreach( $this->y2plots as $p ) {
-			$max=max($max,$p->numpoints-1);
-		    }		    
-		}
-		$n = count($this->ynaxis);
-		for( $i=0; $i < $n; ++$i ) {
-		    if( $this->ynaxis[$i] != null) {
-			foreach( $this->ynplots[$i] as $p ) {
-			    $max=max($max,$p->numpoints-1);
-			}		    
-		    }
-		}
-		
-		$this->xscale->Update($this->img,$min,$max);
-		$this->xscale->ticks->Set($this->xaxis->tick_step,1);
-		$this->xscale->ticks->SupressMinorTickMarks();
-	    }
-	    else {
-		list($min,$max) = $this->GetXMinMax();
-
-		$lres = $this->GetLinesXMinMax($this->lines);
-		if( $lres ) {
-		    list($linmin,$linmax) = $lres ;
-		    $min = min($min,$linmin);
-		    $max = max($max,$linmax);
-		}
-		$lres = $this->GetLinesXMinMax($this->y2lines);
-		if( $lres ) {
-		    list($linmin,$linmax) = $lres ;
-		    $min = min($min,$linmin);
-		    $max = max($max,$linmax);
-		}
-
-		$tres = $this->GetTextsXMinMax();
-		if( $tres ) {
-		    list($tmin,$tmax) = $tres ;
-		    $min = min($min,$tmin);
-		    $max = max($max,$tmax);
-		}
-
-		$tres = $this->GetTextsXMinMax(true);
-		if( $tres ) {
-		    list($tmin,$tmax) = $tres ;
-		    $min = min($min,$tmin);
-		    $max = max($max,$tmax);
-		}
-
-		$this->xscale->AutoScale($this->img,$min,$max,round($this->img->plotwidth/$this->xtick_factor));
-	    }
-			
-	    //Adjust position of y-axis and y2-axis to minimum/maximum of x-scale
-	    if( !is_numeric($this->yaxis->pos) && !is_string($this->yaxis->pos) )
-	    	$this->yaxis->SetPos($this->xscale->GetMinVal());
-	    if( $this->y2axis != null ) {
-		if( !is_numeric($this->y2axis->pos) && !is_string($this->y2axis->pos) )
-		    $this->y2axis->SetPos($this->xscale->GetMaxVal());
-		$this->y2axis->SetTitleSide(SIDE_RIGHT);
-	    }
-
-	    $n = count($this->ynaxis);
-	    $nY2adj = $this->y2axis != null ? $this->iYAxisDeltaPos : 0;
-	    for( $i=0; $i < $n; ++$i ) { 
-		if( $this->ynaxis[$i] != null ) {
-		    if( !is_numeric($this->ynaxis[$i]->pos) && !is_string($this->ynaxis[$i]->pos) ) {
-			$this->ynaxis[$i]->SetPos($this->xscale->GetMaxVal());
-		  $this->ynaxis[$i]->SetPosAbsDelta($i*$this->iYAxisDeltaPos + $nY2adj);
-		    }
-		    $this->ynaxis[$i]->SetTitleSide(SIDE_RIGHT);
-		}
-	    }
-	}	
-	elseif( $this->xscale->IsSpecified() &&  
-		( $this->xscale->auto_ticks || !$this->xscale->ticks->IsSpecified()) ) {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    $min = $this->xscale->scale[0];
-	    $max = $this->xscale->scale[1];
-
-
-	    $this->xscale->AutoScale($this->img,$min,$max,
-				     $this->img->plotwidth/$this->xtick_factor,
-				     false);
-
-	    if( $this->y2axis != null ) {
-		if( !is_numeric($this->y2axis->pos) && !is_string($this->y2axis->pos) )
-		    $this->y2axis->SetPos($this->xscale->GetMaxVal());
-		$this->y2axis->SetTitleSide(SIDE_RIGHT);
-	    }
-
-	}
-		
-	// If we have a negative values and x-axis position is at 0
-	// we need to supress the first and possible the last tick since
-	// they will be drawn on top of the y-axis (and possible y2 axis)
-	// The test below might seem strange the reasone being that if
-	// the user hasn't specified a value for position this will not
-	// be set until we do the stroke for the axis so as of now it
-	// is undefined.
-	// For X-text scale we ignore all this since the tick are usually
-	// much further in and not close to the Y-axis. Hence the test 
-	// for 'text'	
-
-	if( ($this->yaxis->pos==$this->xscale->GetMinVal() || 
-	     (is_string($this->yaxis->pos) && $this->yaxis->pos=='min')) &&  
-	    !is_numeric($this->xaxis->pos) && $this->yscale->GetMinVal() < 0 && 
-	    substr($this->axtype,0,4) != 'text' && $this->xaxis->pos!="min" ) {
-
-	    //$this->yscale->ticks->SupressZeroLabel(false);
-	    $this->xscale->ticks->SupressFirst();
-	    if( $this->y2axis != null ) {
-		$this->xscale->ticks->SupressLast();
-	    }
-	}
-	elseif( !is_numeric($this->yaxis->pos) && $this->yaxis->pos=='max' ) {
-	    $this->xscale->ticks->SupressLast();
-	}
-	
-
-	if( !$_csim ) {
-	    $this->StrokePlotArea();
-	    if( $this->iIconDepth == DEPTH_BACK ) {
-		$this->StrokeIcons();
-	    }
-	}
-	$this->StrokeAxis(false);
-
-	// Stroke bands
-	if( $this->bands != null && !$_csim) 
-	    for($i=0; $i < count($this->bands); ++$i) {
-		// Stroke all bands that asks to be in the background
-		if( $this->bands[$i]->depth == DEPTH_BACK )
-		    $this->bands[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-	    }
-
-	if( $this->y2bands != null && $this->y2scale != null && !$_csim )
-	    for($i=0; $i < count($this->y2bands); ++$i) {
-		// Stroke all bands that asks to be in the foreground
-		if( $this->y2bands[$i]->depth == DEPTH_BACK )
-		    $this->y2bands[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }
-
-
-	if( $this->grid_depth == DEPTH_BACK && !$_csim) {
-	    $this->ygrid->Stroke();
-	    $this->xgrid->Stroke();
-	}
-				
-	// Stroke Y2-axis 
-	if( $this->y2axis != null && !$_csim) {		
-	    $this->y2axis->Stroke($this->xscale); 				
-	    $this->y2grid->Stroke();
-	}
-
-	// Stroke yn-axis
-	$n = count($this->ynaxis); 
-	for( $i=0; $i < $n; ++$i ) {
-	    $this->ynaxis[$i]->Stroke($this->xscale); 				
-	}
-	
-	$oldoff=$this->xscale->off;
-	if(substr($this->axtype,0,4)=="text") {
-	    if( $this->text_scale_abscenteroff > -1 ) {
-		// For a text scale the scale factor is the number of pixel per step. 
-		// Hence we can use the scale factor as a substitute for number of pixels
-		// per major scale step and use that in order to adjust the offset so that
-		// an object of width "abscenteroff" becomes centered.
-		$this->xscale->off += round($this->xscale->scale_factor/2)-round($this->text_scale_abscenteroff/2);
-	    }
-	    else {
-		$this->xscale->off += 
-		    ceil($this->xscale->scale_factor*$this->text_scale_off*$this->xscale->ticks->minor_step);
-	    }
-	}
-
-	if( $this->iDoClipping ) {
-	    $oldimage = $this->img->CloneCanvasH();
-	}
-
-	if( ! $this->y2orderback ) {
-	    // Stroke all plots for Y axis
-	    for($i=0; $i < count($this->plots); ++$i) {
-		$this->plots[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-		$this->plots[$i]->StrokeMargin($this->img);
-	    }						
-	}
-
-	// Stroke all plots for Y2 axis
-	if( $this->y2scale != null )
-	    for($i=0; $i< count($this->y2plots); ++$i ) {	
-		$this->y2plots[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }		
-
-	if( $this->y2orderback ) {
-	    // Stroke all plots for Y1 axis
-	    for($i=0; $i < count($this->plots); ++$i) {
-		$this->plots[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-		$this->plots[$i]->StrokeMargin($this->img);
-	    }						
-	}
-
-	$n = count($this->ynaxis); 
-	for( $i=0; $i < $n; ++$i ) {
-	    $m = count($this->ynplots[$i]);
-	    for( $j=0; $j < $m; ++$j ) { 
-		$this->ynplots[$i][$j]->Stroke($this->img,$this->xscale,$this->ynscale[$i]);
-		$this->ynplots[$i][$j]->StrokeMargin($this->img);
-	    }
-	}
-
-	if( $this->iIconDepth == DEPTH_FRONT) {
-	    $this->StrokeIcons();
-	}
-	
-	if( $this->iDoClipping ) {
-	    // Clipping only supports graphs at 0 and 90 degrees
-	    if( $this->img->a == 0 ) {
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->plotwidth+1,$this->img->plotheight);
-	    }
-	    elseif( $this->img->a == 90 ) {
-		$adj = ($this->img->height - $this->img->width)/2;
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->plotheight+1,$this->img->plotwidth);
-	    }
-	    else {
-		JpGraphError::RaiseL(25035,$this->img->a);//('You have enabled clipping. Cliping is only supported for graphs at 0 or 90 degrees rotation. Please adjust you current angle (='.$this->img->a.' degrees) or disable clipping.');
-	    }
-	    $this->img->Destroy();
-	    $this->img->SetCanvasH($oldimage);
-	}
-
-	$this->xscale->off=$oldoff;
-		
-	if( $this->grid_depth == DEPTH_FRONT && !$_csim ) {
-	    $this->ygrid->Stroke();
-	    $this->xgrid->Stroke();
-	}
-
-	// Stroke bands
-	if( $this->bands!= null )
-	    for($i=0; $i < count($this->bands); ++$i) {
-		// Stroke all bands that asks to be in the foreground
-		if( $this->bands[$i]->depth == DEPTH_FRONT )
-		    $this->bands[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-	    }
-
-	if( $this->y2bands!= null && $this->y2scale != null )
-	    for($i=0; $i < count($this->y2bands); ++$i) {
-		// Stroke all bands that asks to be in the foreground
-		if( $this->y2bands[$i]->depth == DEPTH_FRONT )
-		    $this->y2bands[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }
-
-
-	// Stroke any lines added
-	if( $this->lines != null ) {
-	    for($i=0; $i < count($this->lines); ++$i) {
-		$this->lines[$i]->Stroke($this->img,$this->xscale,$this->yscale);
-	    }
-	}
-
-	if( $this->y2lines != null && $this->y2scale != null ) {
-	    for($i=0; $i < count($this->y2lines); ++$i) {
-		$this->y2lines[$i]->Stroke($this->img,$this->xscale,$this->y2scale);
-	    }
-	}
-
-	// Finally draw the axis again since some plots may have nagged
-	// the axis in the edges.However we do no stroke the labels again
-	// since any user defined callback would be called twice. It also
-	// enhances performance.
-
-	if( !$_csim ) {
-	    $this->StrokeAxis();
-	}
-
-	if( $this->y2scale != null && !$_csim ) 
-	    $this->y2axis->Stroke($this->xscale,false); 	
-		
-	if( !$_csim ) {
-	    $this->StrokePlotBox();
-	}
-		
-	// The titles and legends never gets rotated so make sure
-	// that the angle is 0 before stroking them				
-	$aa = $this->img->SetAngle(0);
-	$this->StrokeTitles();
-	$this->footer->Stroke($this->img);
-	$this->legend->Stroke($this->img);		
-	$this->img->SetAngle($aa);	
-	$this->StrokeTexts();	
-	$this->StrokeTables();
-
-	if( !$_csim ) {
-
-	    $this->img->SetAngle($aa);	
-			
-	    // Draw an outline around the image map	
-	    if(_JPG_DEBUG) {
-		$this->DisplayClientSideaImageMapAreas();		
-	    }
-	    
-	    // Adjust the appearance of the image
-	    $this->AdjustSaturationBrightnessContrast();
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		    //JpGraphError::Raise('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.');
-		}
-	       
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName);		
-	    }
-	}
-    }
-
-    function SetAxisLabelBackground($aType,$aXFColor='lightgray',$aXColor='black',$aYFColor='lightgray',$aYColor='black') {
-	$this->iAxisLblBgType = $aType;
-	$this->iXAxisLblBgFillColor = $aXFColor;
-	$this->iXAxisLblBgColor = $aXColor;
-	$this->iYAxisLblBgFillColor = $aYFColor;
-	$this->iYAxisLblBgColor = $aYColor;
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    function StrokeAxisLabelBackground() {
-	// Types 
-	// 0 = No background
-	// 1 = Only X-labels, length of axis
-	// 2 = Only Y-labels, length of axis
-	// 3 = As 1 but extends to width of graph
-	// 4 = As 2 but extends to height of graph
-	// 5 = Combination of 3 & 4
-	// 6 = Combination of 1 & 2
- 
-	$t = $this->iAxisLblBgType ;
-	if( $t < 1 ) return;
-	// Stroke optional X-axis label background color
-	if( $t == 1 || $t == 3 || $t == 5 || $t == 6 ) {
-	    $this->img->PushColor($this->iXAxisLblBgFillColor);
-	    if( $t == 1 || $t == 6 ) {
-		$xl = $this->img->left_margin;
-		$yu = $this->img->height - $this->img->bottom_margin + 1;
-		$xr = $this->img->width - $this->img->right_margin ;
-		$yl = $this->img->height-1-$this->frame_weight;
-	    }
-	    else { // t==3 || t==5
-		$xl = $this->frame_weight;
-		$yu = $this->img->height - $this->img->bottom_margin + 1;
-		$xr = $this->img->width - 1 - $this->frame_weight;
-		$yl = $this->img->height-1-$this->frame_weight;
-	    }
-
-	    $this->img->FilledRectangle($xl,$yu,$xr,$yl);
-	    $this->img->PopColor();
-
-	    // Check if we should add the vertical lines at left and right edge
-	    if( $this->iXAxisLblBgColor !== '' ) {
-		$this->img->PushColor($this->iXAxisLblBgColor);
-		if( $t == 1 || $t == 6 ) {
-		    $this->img->Line($xl,$yu,$xl,$yl);
-		    $this->img->Line($xr,$yu,$xr,$yl);
-		}
-		else {
-		    $xl = $this->img->width - $this->img->right_margin ;
-		    $this->img->Line($xl,$yu-1,$xr,$yu-1);
-		}
-		$this->img->PopColor();
-	    }
-	}
-
-	if( $t == 2 || $t == 4 || $t == 5 || $t == 6 ) {
-	    $this->img->PushColor($this->iYAxisLblBgFillColor);
-	    if( $t == 2 || $t == 6 ) {	    
-		$xl = $this->frame_weight;
-		$yu = $this->frame_weight+$this->img->top_margin;
-		$xr = $this->img->left_margin - 1;
-		$yl = $this->img->height - $this->img->bottom_margin + 1;
-	    }
-	    else {
-		$xl = $this->frame_weight;
-		$yu = $this->frame_weight;
-		$xr = $this->img->left_margin - 1;
-		$yl = $this->img->height-1-$this->frame_weight;
-	    }
-
-	    $this->img->FilledRectangle($xl,$yu,$xr,$yl);
-	    $this->img->PopColor();
-
-	    // Check if we should add the vertical lines at left and right edge
-	    if( $this->iXAxisLblBgColor !== '' ) {
-		$this->img->PushColor($this->iXAxisLblBgColor);
-		if( $t == 2 || $t == 6 ) {
-		    $this->img->Line($xl,$yu-1,$xr,$yu-1);
-		    $this->img->Line($xl,$yl-1,$xr,$yl-1);		    
-		}
-		else {
-		    $this->img->Line($xr+1,$yu,$xr+1,$this->img->top_margin);		    
-		}
-		$this->img->PopColor();
-	    }
-
-	}
-    }
-
-    function StrokeAxis($aStrokeLabels=true) {
-	
-	if( $aStrokeLabels ) {
-	    $this->StrokeAxisLabelBackground();
-	}
-
-	// Stroke axis
-	if( $this->iAxisStyle != AXSTYLE_SIMPLE ) {
-	    switch( $this->iAxisStyle ) {
-	        case AXSTYLE_BOXIN :
-	            $toppos = SIDE_DOWN;
-		    $bottompos = SIDE_UP;
-	            $leftpos = SIDE_RIGHT;
-	            $rightpos = SIDE_LEFT;
-	            break;
-		case AXSTYLE_BOXOUT :
-		    $toppos = SIDE_UP;
-	            $bottompos = SIDE_DOWN;	    
-	            $leftpos = SIDE_LEFT;
-		    $rightpos = SIDE_RIGHT;
-	            break;
-		case AXSTYLE_YBOXIN:
-	            $toppos = -100;
-		    $bottompos = SIDE_UP;
-	            $leftpos = SIDE_RIGHT;
-	            $rightpos = SIDE_LEFT;
-		    break;
-		case AXSTYLE_YBOXOUT:
-		    $toppos = -100;
-	            $bottompos = SIDE_DOWN;	    
-	            $leftpos = SIDE_LEFT;
-		    $rightpos = SIDE_RIGHT;
-		    break;
-		default:
-	            JpGRaphError::RaiseL(25036,$this->iAxisStyle); //('Unknown AxisStyle() : '.$this->iAxisStyle);
-	            break;
-	    }
-	    $this->xaxis->SetPos('min');
-	    
-	    // By default we hide the first label so it doesn't cross the
-	    // Y-axis in case the positon hasn't been set by the user.
-	    // However, if we use a box we always want the first value
-	    // displayed so we make sure it will be displayed.
-	    $this->xscale->ticks->SupressFirst(false);
-	    
-	    $this->xaxis->SetLabelSide(SIDE_DOWN);
-	    $this->xaxis->scale->ticks->SetSide($bottompos);
-	    $this->xaxis->Stroke($this->yscale);
-
-	    if( $toppos != -100 ) {
-		// To avoid side effects we work on a new copy
-		$maxis = $this->xaxis;
-		$maxis->SetPos('max');
-		$maxis->SetLabelSide(SIDE_UP);
-		$maxis->SetLabelMargin(7);
-		$this->xaxis->scale->ticks->SetSide($toppos);
-		$maxis->Stroke($this->yscale);
-	    }
-
-	    $this->yaxis->SetPos('min');
-	    $this->yaxis->SetLabelMargin(10);
-	    $this->yaxis->SetLabelSide(SIDE_LEFT);
-	    $this->yaxis->scale->ticks->SetSide($leftpos);
-	    $this->yaxis->Stroke($this->xscale);
-
-	    $myaxis = $this->yaxis;
-	    $myaxis->SetPos('max');
-	    $myaxis->SetLabelMargin(10);
-	    $myaxis->SetLabelSide(SIDE_RIGHT);
-	    $myaxis->title->Set('');
-	    $myaxis->scale->ticks->SetSide($rightpos);
-	    $myaxis->Stroke($this->xscale);
-	    
-	}
-	else {
-	    $this->xaxis->Stroke($this->yscale,$aStrokeLabels);
-	    $this->yaxis->Stroke($this->xscale,$aStrokeLabels);		
-	}
-    }
-
-
-    // Private helper function for backgound image
-    function LoadBkgImage($aImgFormat='',$aFile='',$aImgStr='') {
-	if( $aImgStr != '' ) {
-	    return Image::CreateFromString($aImgStr);
-	}
-	if( $aFile == '' )
-	    $aFile = $this->background_image;
-	// Remove case sensitivity and setup appropriate function to create image
-	// Get file extension. This should be the LAST '.' separated part of the filename
-	$e = explode('.',$aFile);
-	$ext = strtolower($e[count($e)-1]);
-	if ($ext == "jpeg")  {
-	    $ext = "jpg";
-	}
-	
-	if( trim($ext) == '' ) 
-	    $ext = 'png';  // Assume PNG if no extension specified
-
-	if( $aImgFormat == '' )
-	    $imgtag = $ext;
-	else
-	    $imgtag = $aImgFormat;
-
-	$supported = imagetypes();
-	if( ( $ext == 'jpg' && !($supported & IMG_JPG) ) ||
-	    ( $ext == 'gif' && !($supported & IMG_GIF) ) ||
-	    ( $ext == 'png' && !($supported & IMG_PNG) ) ) {
-	    JpGraphError::RaiseL(25037,$aFile);//('The image format of your background image ('.$aFile.') is not supported in your system configuration. ');
-	}
-
-
-	if( $imgtag == "jpg" || $imgtag == "jpeg")
-	{
-	    $f = "imagecreatefromjpeg";
-	    $imgtag = "jpg";
-	}
-	else
-	{
-	    $f = "imagecreatefrom".$imgtag;
-	}
-
-	// Compare specified image type and file extension
-	if( $imgtag != $ext ) {
-	    //$t = "Background image seems to be of different type (has different file extension) than specified imagetype. Specified: '".$aImgFormat."'File: '".$aFile."'";
-	    JpGraphError::RaiseL(25038, $aImgFormat, $aFile);
-	}
-
-	$img = @$f($aFile);
-	if( !$img ) {
-	    JpGraphError::RaiseL(25039,$aFile);//(" Can't read background image: '".$aFile."'");   
-	}
-	return $img;
-    }	
-
-    function StrokeBackgroundGrad() {
-	if( $this->bkg_gradtype < 0  ) 
-	    return;
-	$grad = new Gradient($this->img);
-	if( $this->bkg_gradstyle == BGRAD_PLOT ) {
-	    $xl = $this->img->left_margin;
-	    $yt = $this->img->top_margin;
-	    $xr = $xl + $this->img->plotwidth+1 ;
-	    $yb = $yt + $this->img->plotheight ;
-	    $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->bkg_gradfrom,$this->bkg_gradto,$this->bkg_gradtype);
-	}
-	else {
-	    $xl = 0;
-	    $yt = 0;
-	    $xr = $xl + $this->img->width - 1;
-	    $yb = $yt + $this->img->height;
-	    if( $this->doshadow  ) {
-		$xr -= $this->shadow_width; 
-		$yb -= $this->shadow_width; 
-	    }
-	    if( $this->doframe ) {
-		$yt += $this->frame_weight;
-		$yb -= $this->frame_weight;
-		$xl += $this->frame_weight;
-		$xr -= $this->frame_weight;
-	    }
-	    $aa = $this->img->SetAngle(0);
-	    $grad->FilledRectangle($xl,$yt,$xr,$yb,$this->bkg_gradfrom,$this->bkg_gradto,$this->bkg_gradtype);
-	    $aa = $this->img->SetAngle($aa);
-	}
-    }
-
-    function StrokeFrameBackground() {
-	if( $this->background_image != "" && $this->background_cflag != "" ) {
-	    JpGraphError::RaiseL(25040);//('It is not possible to specify both a background image and a background country flag.');
-	}
-	if( $this->background_image != "" ) {
-	    $bkgimg = $this->LoadBkgImage($this->background_image_format);
-	    $this->img->_AdjBrightContrast($bkgimg,$this->background_image_bright,
-					   $this->background_image_contr);
-	    $this->img->_AdjSat($bkgimg,$this->background_image_sat);
-	}
-	elseif( $this->background_cflag != "" ) {
-	    if( ! class_exists('FlagImages') ) {
-		JpGraphError::RaiseL(25041);//('In order to use Country flags as backgrounds you must include the "jpgraph_flags.php" file.');
-	    }
-	    $fobj = new FlagImages(FLAGSIZE4);
-	    $dummy='';
-	    $bkgimg = $fobj->GetImgByName($this->background_cflag,$dummy);
-	    $this->background_image_mix = $this->background_cflag_mix;
-	    $this->background_image_type = $this->background_cflag_type;
-	}
-	else {
-	    return ;
-	}
-
-	$bw = ImageSX($bkgimg);
-	$bh = ImageSY($bkgimg);
-
-	// No matter what the angle is we always stroke the image and frame
-	// assuming it is 0 degree
-	$aa = $this->img->SetAngle(0);
-		
-	switch( $this->background_image_type ) {
-	    case BGIMG_FILLPLOT: // Resize to just fill the plotarea
-		$this->FillMarginArea();
-		$this->StrokeFrame();
-		$this->FillPlotArea();
-		$this->img->CopyMerge($bkgimg,
-				 $this->img->left_margin,$this->img->top_margin,
-				 0,0,$this->img->plotwidth+1,$this->img->plotheight,
-				 $bw,$bh,$this->background_image_mix);
-		break;
-	    case BGIMG_FILLFRAME: // Fill the whole area from upper left corner, resize to just fit
-		$hadj=0; $vadj=0;
-		if( $this->doshadow ) {
-		    $hadj = $this->shadow_width;
-		    $vadj = $this->shadow_width;
-		}
-		$this->FillMarginArea();
-		$this->FillPlotArea();
-		$this->img->CopyMerge($bkgimg,0,0,0,0,$this->img->width-$hadj,$this->img->height-$vadj,
-				      $bw,$bh,$this->background_image_mix);
-		$this->StrokeFrame();
-		break;
-	    case BGIMG_COPY: // Just copy the image from left corner, no resizing
-		$this->FillMarginArea();
-		$this->FillPlotArea();
-		$this->img->CopyMerge($bkgimg,0,0,0,0,$bw,$bh,
-				      $bw,$bh,$this->background_image_mix);
-		$this->StrokeFrame();
-		break;
-	    case BGIMG_CENTER: // Center original image in the plot area
-		$this->FillMarginArea();
-		$this->FillPlotArea();
-		$centerx = round($this->img->plotwidth/2+$this->img->left_margin-$bw/2);
-		$centery = round($this->img->plotheight/2+$this->img->top_margin-$bh/2);
-		$this->img->CopyMerge($bkgimg,$centerx,$centery,0,0,$bw,$bh,
-				      $bw,$bh,$this->background_image_mix);
-		$this->StrokeFrame();
-		break;
-	    default:
-		JpGraphError::RaiseL(25042);//(" Unknown background image layout");
-	}			
-	$this->img->SetAngle($aa);		
-    }
-
-    // Private
-    // Draw a frame around the image
-    function StrokeFrame() {
-	if( !$this->doframe ) return;
-
-	if( $this->background_image_type <= 1 && 
-	    ($this->bkg_gradtype < 0 || ($this->bkg_gradtype > 0 && $this->bkg_gradstyle==BGRAD_PLOT)) ) { 
-	    $c = $this->margin_color;
-	}
-	else {
-	    $c = false;
-	}
-	
-	if( $this->doshadow ) {
-	    $this->img->SetColor($this->frame_color);			
-	    $this->img->ShadowRectangle(0,0,$this->img->width,$this->img->height,
-					$c,$this->shadow_width,$this->shadow_color);
-	}
-	elseif( $this->framebevel ) {
-	    if( $c ) {
-		$this->img->SetColor($this->margin_color);
-		$this->img->FilledRectangle(0,0,$this->img->width-1,$this->img->height-1); 
-	    }
-	    $this->img->Bevel(1,1,$this->img->width-2,$this->img->height-2,
-			      $this->framebeveldepth,
-			      $this->framebevelcolor1,$this->framebevelcolor2);
-	    if( $this->framebevelborder ) {
-		$this->img->SetColor($this->framebevelbordercolor);
-		$this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);
-	    }
-	}
-	else {
-	    $this->img->SetLineWeight($this->frame_weight);
-	    if( $c ) {
-		$this->img->SetColor($this->margin_color);
-		$this->img->FilledRectangle(0,0,$this->img->width-1,$this->img->height-1); 
-	    }
-	    $this->img->SetColor($this->frame_color);
-	    $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);		
-	}
-    }
-
-    function FillMarginArea() {
-	$hadj=0; $vadj=0;
-	if( $this->doshadow ) {
-	    $hadj = $this->shadow_width;
-	    $vadj = $this->shadow_width;
-	}
-
-	$this->img->SetColor($this->margin_color);
-//	$this->img->FilledRectangle(0,0,$this->img->width-1-$hadj,$this->img->height-1-$vadj); 
-
-	$this->img->FilledRectangle(0,0,$this->img->width-1-$hadj,$this->img->top_margin); 
-	$this->img->FilledRectangle(0,$this->img->top_margin,$this->img->left_margin,$this->img->height-1-$hadj); 
-	$this->img->FilledRectangle($this->img->left_margin+1,
-				    $this->img->height-$this->img->bottom_margin,
-				    $this->img->width-1-$hadj,
-				    $this->img->height-1-$hadj); 
-	$this->img->FilledRectangle($this->img->width-$this->img->right_margin,
-				    $this->img->top_margin+1,
-				    $this->img->width-1-$hadj,
-				    $this->img->height-$this->img->bottom_margin-1); 
-    }
-
-    function FillPlotArea() {
-	$this->img->PushColor($this->plotarea_color);
-	$this->img->FilledRectangle($this->img->left_margin,
-				    $this->img->top_margin,
-				    $this->img->width-$this->img->right_margin,
-				    $this->img->height-$this->img->bottom_margin);	
-	$this->img->PopColor();
-    }
-    
-    // Stroke the plot area with either a solid color or a background image
-    function StrokePlotArea() {
-	// Note: To be consistent we really should take a possible shadow
-	// into account. However, that causes some problem for the LinearScale class
-	// since in the current design it does not have any links to class Graph which
-	// means it has no way of compensating for the adjusted plotarea in case of a 
-	// shadow. So, until I redesign LinearScale we can't compensate for this.
-	// So just set the two adjustment parameters to zero for now.
-	$boxadj = 0; //$this->doframe ? $this->frame_weight : 0 ;
-	$adj = 0; //$this->doshadow ? $this->shadow_width : 0 ;
-
-	if( $this->background_image != "" || $this->background_cflag != "" ) {
-	    $this->StrokeFrameBackground();
-	}
-	else {
-	    $aa = $this->img->SetAngle(0);
-	    $this->StrokeFrame();
-	    $aa = $this->img->SetAngle($aa);
-	    $this->StrokeBackgroundGrad();
-	    if( $this->bkg_gradtype < 0 || 
-		($this->bkg_gradtype > 0 && $this->bkg_gradstyle==BGRAD_MARGIN) ) {
-		$this->FillPlotArea();
-	    }
-	}	
-    }	
-
-    function StrokeIcons() {
-	$n = count($this->iIcons);
-	for( $i=0; $i < $n; ++$i ) {
-	    $this->iIcons[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale);
-	}
-    }
-	
-    function StrokePlotBox() {
-	// Should we draw a box around the plot area?
-	if( $this->boxed ) {
-	    $this->img->SetLineWeight(1);
-	    $this->img->SetLineStyle('solid');
-	    $this->img->SetColor($this->box_color);
-	    for($i=0; $i < $this->box_weight; ++$i ) {
-		$this->img->Rectangle(
-		    $this->img->left_margin-$i,$this->img->top_margin-$i,
-		    $this->img->width-$this->img->right_margin+$i,
-		    $this->img->height-$this->img->bottom_margin+$i);
-	    }
-	}						
-    }		
-
-    function SetTitleBackgroundFillStyle($aStyle,$aColor1='black',$aColor2='white') {
-	$this->titlebkg_fillstyle = $aStyle;
-	$this->titlebkg_scolor1 = $aColor1;
-	$this->titlebkg_scolor2 = $aColor2;
-    }
-
-    function SetTitleBackground($aBackColor='gray', $aStyle=TITLEBKG_STYLE1, $aFrameStyle=TITLEBKG_FRAME_NONE, $aFrameColor='black', $aFrameWeight=1, $aBevelHeight=3, $aEnable=true) {
-	$this->titlebackground = $aEnable;
-	$this->titlebackground_color = $aBackColor;
-	$this->titlebackground_style = $aStyle;
-	$this->titlebackground_framecolor = $aFrameColor;
-	$this->titlebackground_framestyle = $aFrameStyle;
-	$this->titlebackground_frameweight = $aFrameWeight;	
-	$this->titlebackground_bevelheight = $aBevelHeight ;
-    }
-
-
-    function StrokeTitles() {
-
-	$margin=3;
-
-	if( $this->titlebackground ) {
-
-	    // Find out height
-	    $this->title->margin += 2 ;
-	    $h = $this->title->GetTextHeight($this->img)+$this->title->margin+$margin;
-	    if( $this->subtitle->t != "" && !$this->subtitle->hide ) {
-		$h += $this->subtitle->GetTextHeight($this->img)+$margin+
-		    $this->subtitle->margin;
-		$h += 2;
-	    }
-	    if( $this->subsubtitle->t != "" && !$this->subsubtitle->hide ) {
-		$h += $this->subsubtitle->GetTextHeight($this->img)+$margin+
-		    $this->subsubtitle->margin;
-		$h += 2;
-	    }
-	    $this->img->PushColor($this->titlebackground_color);
-	    if( $this->titlebackground_style === TITLEBKG_STYLE1 ) {
-		// Inside the frame
-		if( $this->framebevel ) {
-		    $x1 = $y1 = $this->framebeveldepth + 1 ;
-		    $x2 = $this->img->width - $this->framebeveldepth - 2 ; 
-		    $this->title->margin += $this->framebeveldepth + 1 ;
-		    $h += $y1 ;
-		    $h += 2;
-		}
-		else {
-		    $x1 = $y1 = $this->frame_weight;
-		    $x2 = $this->img->width - 2*$x1;
-		}
-	    }
-	    elseif( $this->titlebackground_style === TITLEBKG_STYLE2 ) {
-		// Cover the frame as well
-		$x1 = $y1 = 0;
-		$x2 = $this->img->width - 1 ;
-	    }
-	    elseif( $this->titlebackground_style === TITLEBKG_STYLE3 ) {
-		// Cover the frame as well (the difference is that
-		// for style==3 a bevel frame border is on top
-		// of the title background)
-		$x1 = $y1 = 0;
-		$x2 = $this->img->width - 1 ;
-		$h += $this->framebeveldepth ;
-		$this->title->margin += $this->framebeveldepth ;
-	    }
-	    else {
-		JpGraphError::RaiseL(25043);//('Unknown title background style.');
-	    }
-
-	    if( $this->titlebackground_framestyle === 3 ) {
-		$h += $this->titlebackground_bevelheight*2 + 1  ;
-		$this->title->margin += $this->titlebackground_bevelheight ;
-	    }
-
-	    if( $this->doshadow ) {
-		$x2 -= $this->shadow_width ;
-	    }
-	    
-	    $indent=0;
-	    if( $this->titlebackground_framestyle == TITLEBKG_FRAME_BEVEL ) {
-		$ind = $this->titlebackground_bevelheight;
-	    }
-
-	    if( $this->titlebkg_fillstyle==TITLEBKG_FILLSTYLE_HSTRIPED ) {
-		$this->img->FilledRectangle2($x1+$ind,$y1+$ind,$x2-$ind,$h-$ind,
-					     $this->titlebkg_scolor1,
-					     $this->titlebkg_scolor2);
-	    }
-	    elseif( $this->titlebkg_fillstyle==TITLEBKG_FILLSTYLE_VSTRIPED ) {
-		$this->img->FilledRectangle2($x1+$ind,$y1+$ind,$x2-$ind,$h-$ind,
-					     $this->titlebkg_scolor1,
-					     $this->titlebkg_scolor2,2);
-	    }
-	    else {
-		// Solid fill
-		$this->img->FilledRectangle($x1,$y1,$x2,$h);
-	    }
-	    $this->img->PopColor();
-
-	    $this->img->PushColor($this->titlebackground_framecolor);
-	    $this->img->SetLineWeight($this->titlebackground_frameweight);
-	    if( $this->titlebackground_framestyle == TITLEBKG_FRAME_FULL ) {
-		// Frame background
-		$this->img->Rectangle($x1,$y1,$x2,$h);
-	    }
-	    elseif( $this->titlebackground_framestyle == TITLEBKG_FRAME_BOTTOM ) {
-		// Bottom line only
-		$this->img->Line($x1,$h,$x2,$h);
-	    }
-	    elseif( $this->titlebackground_framestyle == TITLEBKG_FRAME_BEVEL ) {
-		$this->img->Bevel($x1,$y1,$x2,$h,$this->titlebackground_bevelheight);
-	    }
-	    $this->img->PopColor();
-
-	    // This is clumsy. But we neeed to stroke the whole graph frame if it is
-	    // set to bevel to get the bevel shading on top of the text background
-	    if( $this->framebevel && $this->doframe && 
-		$this->titlebackground_style === 3 ) {
-		$this->img->Bevel(1,1,$this->img->width-2,$this->img->height-2,
-				  $this->framebeveldepth,
-				  $this->framebevelcolor1,$this->framebevelcolor2);
-		if( $this->framebevelborder ) {
-		    $this->img->SetColor($this->framebevelbordercolor);
-		    $this->img->Rectangle(0,0,$this->img->width-1,$this->img->height-1);
-		}
-	    }
-	}
-
-	// Stroke title
-	$y = $this->title->margin; 
-	if( $this->title->halign == 'center' ) 
-	    $this->title->Center(0,$this->img->width,$y);
-	elseif( $this->title->halign == 'left' ) {
-	    $this->title->SetPos($this->title->margin+2,$y);
-	}
-	elseif( $this->title->halign == 'right' ) {
-	    $indent = 0;
-	    if( $this->doshadow ) 
-		$indent = $this->shadow_width+2;
-	    $this->title->SetPos($this->img->width-$this->title->margin-$indent,$y,'right');	    
-	}
-	$this->title->Stroke($this->img);
-		
-	// ... and subtitle
-	$y += $this->title->GetTextHeight($this->img) + $margin + $this->subtitle->margin;
-	if( $this->subtitle->halign == 'center' ) 
-	    $this->subtitle->Center(0,$this->img->width,$y);
-	elseif( $this->subtitle->halign == 'left' ) {
-	    $this->subtitle->SetPos($this->subtitle->margin+2,$y);
-	}
-	elseif( $this->subtitle->halign == 'right' ) {
-	    $indent = 0;
-	    if( $this->doshadow ) 
-		$indent = $this->shadow_width+2;
-	    $this->subtitle->SetPos($this->img->width-$this->subtitle->margin-$indent,$y,'right'); 
-	}
-	$this->subtitle->Stroke($this->img);
-
-	// ... and subsubtitle
-	$y += $this->subtitle->GetTextHeight($this->img) + $margin + $this->subsubtitle->margin;
-	if( $this->subsubtitle->halign == 'center' ) 
-	    $this->subsubtitle->Center(0,$this->img->width,$y);
-	elseif( $this->subsubtitle->halign == 'left' ) {
-	    $this->subsubtitle->SetPos($this->subsubtitle->margin+2,$y);
-	}
-	elseif( $this->subsubtitle->halign == 'right' ) {
-	    $indent = 0;
-	    if( $this->doshadow ) 
-		$indent = $this->shadow_width+2;
-	    $this->subsubtitle->SetPos($this->img->width-$this->subsubtitle->margin-$indent,$y,'right'); 
-	}
-	$this->subsubtitle->Stroke($this->img);
-
-	// ... and fancy title
-	$this->tabtitle->Stroke($this->img);
-
-    }
-
-    function StrokeTexts() {
-	// Stroke any user added text objects
-	if( $this->texts != null ) {
-	    for($i=0; $i < count($this->texts); ++$i) {
-		$this->texts[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale);
-	    }
-	}
-
-	if( $this->y2texts != null && $this->y2scale != null ) {
-	    for($i=0; $i < count($this->y2texts); ++$i) {
-		$this->y2texts[$i]->StrokeWithScale($this->img,$this->xscale,$this->y2scale);
-	    }
-	}
-
-    }
-
-    function StrokeTables() {
-	if( $this->iTables != null ) {
-	    $n = count($this->iTables);
-	    for( $i=0; $i < $n; ++$i ) {
-		$this->iTables[$i]->StrokeWithScale($this->img,$this->xscale,$this->yscale);
-	    }
-	}
-    }
-
-    function DisplayClientSideaImageMapAreas() {
-	// Debug stuff - display the outline of the image map areas
-	$csim='';
-	foreach ($this->plots as $p) {
-	    $csim.= $p->GetCSIMareas();
-	}
-	$csim .= $this->legend->GetCSIMareas();
-	if (preg_match_all("/area shape=\"(\w+)\" coords=\"([0-9\, ]+)\"/", $csim, $coords)) {
-	    $this->img->SetColor($this->csimcolor);
-	    $n = count($coords[0]);
-	    for ($i=0; $i < $n; $i++) {
-		if ($coords[1][$i]=="poly") {
-		    preg_match_all('/\s*([0-9]+)\s*,\s*([0-9]+)\s*,*/',$coords[2][$i],$pts);
-		    $this->img->SetStartPoint($pts[1][count($pts[0])-1],$pts[2][count($pts[0])-1]);
-		    $m = count($pts[0]);
-		    for ($j=0; $j < $m; $j++) {
-			$this->img->LineTo($pts[1][$j],$pts[2][$j]);
-		    }
-		} else if ($coords[1][$i]=="rect") {
-		    $pts = preg_split('/,/', $coords[2][$i]);
-		    $this->img->SetStartPoint($pts[0],$pts[1]);
-		    $this->img->LineTo($pts[2],$pts[1]);
-		    $this->img->LineTo($pts[2],$pts[3]);
-		    $this->img->LineTo($pts[0],$pts[3]);
-		    $this->img->LineTo($pts[0],$pts[1]);					
-		}
-	    }
-	}
-    }
-
-    function AdjustSaturationBrightnessContrast() {
-	// Adjust the brightness and contrast of the image
-	if( $this->image_contr || $this->image_bright )
-	    $this->img->AdjBrightContrast($this->image_bright,$this->image_contr);
-	if( $this->image_sat )											 
-	    $this->img->AdjSat($this->image_sat);
-    }
-
-    // Text scale offset in fractions of a major scale step
-    function SetTextScaleOff($aOff) {
-	$this->text_scale_off = $aOff;
-	$this->xscale->text_scale_off = $aOff;
-    }
-
-    // Text width of bar to be centered in absolute pixels
-    function SetTextScaleAbsCenterOff($aOff) {
-	$this->text_scale_abscenteroff = $aOff;
-    }
-
-    // Get Y min and max values for added lines
-    function GetLinesYMinMax( $aLines ) {
-	$n = count($aLines);
-	if( $n == 0 ) return false;
-	$min = $aLines[0]->scaleposition ;
-	$max = $min ;
-	$flg = false;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $aLines[$i]->direction == HORIZONTAL ) {
-		$flg = true ;
-		$v = $aLines[$i]->scaleposition ;
-		if( $min > $v ) $min = $v ;
-		if( $max < $v ) $max = $v ;
-	    }
-	}
-	return $flg ? array($min,$max) : false ;
-    }
-
-    // Get X min and max values for added lines
-    function GetLinesXMinMax( $aLines ) {
-	$n = count($aLines);
-	if( $n == 0 ) return false ;
-	$min = $aLines[0]->scaleposition ;
-	$max = $min ;
-	$flg = false;
-	for( $i=0; $i < $n; ++$i ) {
-	    if( $aLines[$i]->direction == VERTICAL ) {
-		$flg = true ;
-		$v = $aLines[$i]->scaleposition ;
-		if( $min > $v ) $min = $v ;
-		if( $max < $v ) $max = $v ;
-	    }
-	}
-	return $flg ? array($min,$max) : false ;
-    }
-
-    // Get min and max values for all included plots
-    function GetPlotsYMinMax(&$aPlots) {
-	$n = count($aPlots);
-	$i=0;
-	do {
-	    list($xmax,$max) = $aPlots[$i]->Max();
-	} while( ++$i < $n && !is_numeric($max) );
-	
-	$i=0;
-	do {
-           list($xmin,$min) = $aPlots[$i]->Min();
-       } while( ++$i < $n && !is_numeric($min) );
-	
-	if( !is_numeric($min) || !is_numeric($max) ) {
-	    JpGraphError::RaiseL(25044);//('Cannot use autoscaling since it is impossible to determine a valid min/max value  of the Y-axis (only null values).');
-	}
-
-	list($xmax,$max) = $aPlots[0]->Max();
-	list($xmin,$min) = $aPlots[0]->Min();
-	for($i=0; $i < count($aPlots); ++$i ) {
-	    list($xmax,$ymax)=$aPlots[$i]->Max();
-	    list($xmin,$ymin)=$aPlots[$i]->Min();
-	    if (is_numeric($ymax)) $max=max($max,$ymax);
-	    if (is_numeric($ymin)) $min=min($min,$ymin);
-	}
-	if( $min == '' ) $min = 0;
-	if( $max == '' ) $max = 0;
-	if( $min == 0 && $max == 0 ) {
-	    // Special case if all values are 0
-	    $min=0;$max=1;			
-	}
-	return array($min,$max);
-    }
-
-} // Class
-
-
-//===================================================
-// CLASS TTF
-// Description: Handle TTF font names
-//===================================================
-class TTF {
-    var $font_files,$style_names;
-//---------------
-// CONSTRUCTOR
-    function TTF() {
-	$this->style_names=array(FS_NORMAL=>'normal',FS_BOLD=>'bold',FS_ITALIC=>'italic',FS_BOLDITALIC=>'bolditalic');
-	// File names for available fonts
-	$this->font_files=array(
-	    FF_COURIER => array(FS_NORMAL=>'cour.ttf', FS_BOLD=>'courbd.ttf', FS_ITALIC=>'couri.ttf', FS_BOLDITALIC=>'courbi.ttf' ),
-	    FF_GEORGIA => array(FS_NORMAL=>'georgia.ttf', FS_BOLD=>'georgiab.ttf', FS_ITALIC=>'georgiai.ttf', FS_BOLDITALIC=>'' ),
-	    FF_TREBUCHE =>array(FS_NORMAL=>'trebuc.ttf', FS_BOLD=>'trebucbd.ttf',   FS_ITALIC=>'trebucit.ttf', FS_BOLDITALIC=>'trebucbi.ttf' ),
-	    FF_VERDANA => array(FS_NORMAL=>'verdana.ttf', FS_BOLD=>'verdanab.ttf',  FS_ITALIC=>'verdanai.ttf', FS_BOLDITALIC=>'' ),
-	    FF_TIMES =>   array(FS_NORMAL=>'times.ttf',   FS_BOLD=>'timesbd.ttf',   FS_ITALIC=>'timesi.ttf',   FS_BOLDITALIC=>'timesbi.ttf' ),
-	    FF_COMIC =>   array(FS_NORMAL=>'comic.ttf',   FS_BOLD=>'comicbd.ttf',   FS_ITALIC=>'',         FS_BOLDITALIC=>'' ),
-	    FF_ARIAL =>   array(FS_NORMAL=>'arial.ttf',   FS_BOLD=>'arialbd.ttf',   FS_ITALIC=>'ariali.ttf',   FS_BOLDITALIC=>'arialbi.ttf' ) ,
-	    FF_VERA =>    array(FS_NORMAL=>'Vera.ttf',   FS_BOLD=>'VeraBd.ttf',   FS_ITALIC=>'VeraIt.ttf',   FS_BOLDITALIC=>'VeraBI.ttf' ),
-	    FF_VERAMONO => array(FS_NORMAL=>'VeraMono.ttf', FS_BOLD=>'VeraMoBd.ttf', FS_ITALIC=>'VeraMoIt.ttf', FS_BOLDITALIC=>'VeraMoBI.ttf' ),
-	    FF_VERASERIF => array(FS_NORMAL=>'VeraSe.ttf', FS_BOLD=>'VeraSeBd.ttf', FS_ITALIC=>'', FS_BOLDITALIC=>'' ) ,
-	    FF_SIMSUN =>  array(FS_NORMAL=>'simsun.ttc',  FS_BOLD=>'simhei.ttf',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),
-	    FF_CHINESE => array(FS_NORMAL=>CHINESE_TTF_FONT, FS_BOLD=>'', FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
- 	    FF_MINCHO =>  array(FS_NORMAL=>MINCHO_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),
- 	    FF_PMINCHO => array(FS_NORMAL=>PMINCHO_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),    
- 	    FF_GOTHIC  => array(FS_NORMAL=>GOTHIC_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),    
- 	    FF_PGOTHIC => array(FS_NORMAL=>PGOTHIC_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' ),    
- 	    FF_MINCHO =>  array(FS_NORMAL=>PMINCHO_TTF_FONT,  FS_BOLD=>'',   FS_ITALIC=>'',   FS_BOLDITALIC=>'' )   
-);
-    }
-
-//---------------
-// PUBLIC METHODS	
-    // Create the TTF file from the font specification
-    function File($family,$style=FS_NORMAL) {
-	
-	if( $family == FF_HANDWRT || $family==FF_BOOK ) {
-	    JpGraphError::RaiseL(25045);//('Font families FF_HANDWRT and FF_BOOK are no longer available due to copyright problem with these fonts. Fonts can no longer be distributed with JpGraph. Please download fonts from http://corefonts.sourceforge.net/');
-	}
-
-	$fam = @$this->font_files[$family];
-	if( !$fam ) {
-	    JpGraphError::RaiseL(25046,$family);//("Specified TTF font family (id=$family) is unknown or does not exist. Please note that TTF fonts are not distributed with JpGraph for copyright reasons. You can find the MS TTF WEB-fonts (arial, courier etc) for download at http://corefonts.sourceforge.net/");
-	}
-	$f = @$fam[$style];
-
-	if( $f==='' )
-	    JpGraphError::RaiseL(25047,$this->style_names[$style],$this->font_files[$family][FS_NORMAL]);//('Style "'.$this->style_names[$style].'" is not available for font family '.$this->font_files[$family][FS_NORMAL].'.');
-	if( !$f ) {
-	    JpGraphError::RaiseL(25048,$fam);//("Unknown font style specification [$fam].");
-	}
-
-	if ($family >= FF_MINCHO && $family <= FF_PGOTHIC) {
-	    $f = MBTTF_DIR.$f;
-	} else {
-	    $f = TTF_DIR.$f;
-	}
-
-	if( file_exists($f) === false || is_readable($f) === false ) {
-	    JpGraphError::RaiseL(25049,$f);//("Font file \"$f\" is not readable or does not exist.");
-	}
-	return $f;
-    }
-} // Class
-
-//===================================================
-// CLASS LineProperty
-// Description: Holds properties for a line
-//===================================================
-class LineProperty {
-    var $iWeight=1, $iColor="black",$iStyle="solid";
-    var $iShow=true;
-	
-//---------------
-// PUBLIC METHODS	
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->iWeight = $aWeight;
-    }
-	
-    function SetStyle($aStyle) {
-	$this->iStyle = $aStyle;
-    }
-		
-    function Show($aShow=true) {
-	$this->iShow=$aShow;
-    }
-	
-    function Stroke(&$aImg,$aX1,$aY1,$aX2,$aY2) {
-	if( $this->iShow ) {
-	    $aImg->PushColor($this->iColor);
-	    $oldls = $aImg->line_style;
-	    $oldlw = $aImg->line_weight;
-	    $aImg->SetLineWeight($this->iWeight);
-	    $aImg->SetLineStyle($this->iStyle);			
-	    $aImg->StyleLine($aX1,$aY1,$aX2,$aY2);
-	    $aImg->PopColor($this->iColor);
-	    $aImg->line_style = $oldls;
-	    $aImg->line_weight = $oldlw;
-
-	}
-    }
-}
-
-
-//===================================================
-// CLASS Text
-// Description: Arbitrary text object that can be added to the graph
-//===================================================
-class Text {
-    var $t,$x=0,$y=0,$halign="left",$valign="top",$color=array(0,0,0);
-    var $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=10;
-    var $hide=false, $dir=0;
-    var $boxed=false;	// Should the text be boxed
-    var $paragraph_align="left";
-    var $margin=0;
-    var $icornerradius=0,$ishadowwidth=3;
-    var $iScalePosY=null,$iScalePosX=null;
-    var $iWordwrap=0;
-    var $fcolor='white',$bcolor='black',$shadow=false;
-    var $iCSIMarea='',$iCSIMalt='',$iCSIMtarget='';
-
-//---------------
-// CONSTRUCTOR
-
-    // Create new text at absolute pixel coordinates
-    function Text($aTxt="",$aXAbsPos=0,$aYAbsPos=0) {
-	if( ! is_string($aTxt) ) {
-	    JpGraphError::RaiseL(25050);//('First argument to Text::Text() must be s atring.');
-	}
-	$this->t = $aTxt;
-	$this->x = round($aXAbsPos);
-	$this->y = round($aYAbsPos);
-	$this->margin = 0;
-    }
-//---------------
-// PUBLIC METHODS	
-    // Set the string in the text object
-    function Set($aTxt) {
-	$this->t = $aTxt;
-    }
-	
-    // Alias for Pos()
-    function SetPos($aXAbsPos=0,$aYAbsPos=0,$aHAlign="left",$aVAlign="top") {
-	$this->Pos($aXAbsPos,$aYAbsPos,$aHAlign,$aVAlign);
-    }
-    
-    // Specify the position and alignment for the text object
-    function Pos($aXAbsPos=0,$aYAbsPos=0,$aHAlign="left",$aVAlign="top") {
-	$this->x = $aXAbsPos;
-	$this->y = $aYAbsPos;
-	$this->halign = $aHAlign;
-	$this->valign = $aVAlign;
-    }
-
-    function SetScalePos($aX,$aY) {
-	$this->iScalePosX = $aX;
-	$this->iScalePosY = $aY;
-    }
-	
-    // Specify alignment for the text
-    function Align($aHAlign,$aVAlign="top",$aParagraphAlign="") {
-	$this->halign = $aHAlign;
-	$this->valign = $aVAlign;
-	if( $aParagraphAlign != "" )
-	    $this->paragraph_align = $aParagraphAlign;
-    }		
-    
-    // Alias
-    function SetAlign($aHAlign,$aVAlign="top",$aParagraphAlign="") {
-	$this->Align($aHAlign,$aVAlign,$aParagraphAlign);
-    }
-
-    // Specifies the alignment for a multi line text
-    function ParagraphAlign($aAlign) {
-	$this->paragraph_align = $aAlign;
-    }
-
-    // Specifies the alignment for a multi line text
-    function SetParagraphAlign($aAlign) {
-	$this->paragraph_align = $aAlign;
-    }
-
-    function SetShadow($aShadowColor='gray',$aShadowWidth=3) {
-	$this->ishadowwidth=$aShadowWidth;
-	$this->shadow=$aShadowColor;
-	$this->boxed=true;
-    }
-
-    function SetWordWrap($aCol) {
-	$this->iWordwrap = $aCol ;
-    }
-	
-    // Specify that the text should be boxed. fcolor=frame color, bcolor=border color,
-    // $shadow=drop shadow should be added around the text.
-    function SetBox($aFrameColor=array(255,255,255),$aBorderColor=array(0,0,0),$aShadowColor=false,$aCornerRadius=4,$aShadowWidth=3) {
-	if( $aFrameColor==false )
-	    $this->boxed=false;
-	else
-	    $this->boxed=true;
-	$this->fcolor=$aFrameColor;
-	$this->bcolor=$aBorderColor;
-	// For backwards compatibility when shadow was just true or false
-	if( $aShadowColor === true )
-	    $aShadowColor = 'gray';
-	$this->shadow=$aShadowColor;
-	$this->icornerradius=$aCornerRadius;
-	$this->ishadowwidth=$aShadowWidth;
-    }
-	
-    // Hide the text
-    function Hide($aHide=true) {
-	$this->hide=$aHide;
-    }
-	
-    // This looks ugly since it's not a very orthogonal design 
-    // but I added this "inverse" of Hide() to harmonize
-    // with some classes which I designed more recently (especially) 
-    // jpgraph_gantt
-    function Show($aShow=true) {
-	$this->hide=!$aShow;
-    }
-	
-    // Specify font
-    function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) {
-	$this->font_family=$aFamily;
-	$this->font_style=$aStyle;
-	$this->font_size=$aSize;
-    }
-			
-    // Center the text between $left and $right coordinates
-    function Center($aLeft,$aRight,$aYAbsPos=false) {
-	$this->x = $aLeft + ($aRight-$aLeft	)/2;
-	$this->halign = "center";
-	if( is_numeric($aYAbsPos) )
-	    $this->y = $aYAbsPos;		
-    }
-	
-    // Set text color
-    function SetColor($aColor) {
-	$this->color = $aColor;
-    }
-	
-    function SetAngle($aAngle) {
-	$this->SetOrientation($aAngle);
-    }
-	
-    // Orientation of text. Note only TTF fonts can have an arbitrary angle
-    function SetOrientation($aDirection=0) {
-	if( is_numeric($aDirection) )
-	    $this->dir=$aDirection;	
-	elseif( $aDirection=="h" )
-	    $this->dir = 0;
-	elseif( $aDirection=="v" )
-	    $this->dir = 90;
-	else JpGraphError::RaiseL(25051);//(" Invalid direction specified for text.");
-    }
-	
-    // Total width of text
-    function GetWidth(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$w = $aImg->GetTextWidth($this->t,$this->dir);
-	return $w;	
-    }
-	
-    // Hight of font
-    function GetFontHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$h = $aImg->GetFontHeight();
-	return $h;
-
-    }
-
-    function GetTextHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	$h = $aImg->GetTextHeight($this->t,$this->dir);
-	return $h;
-    }
-
-    function GetHeight(&$aImg) {
-	// Synonym for GetTextHeight()
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	$h = $aImg->GetTextHeight($this->t,$this->dir);
-	return $h;
-    }
-
-    // Set the margin which will be interpretated differently depending
-    // on the context.
-    function SetMargin($aMarg) {
-	$this->margin = $aMarg;
-    }
-
-    function StrokeWithScale(&$aImg,$axscale,$ayscale) {
-	if( $this->iScalePosX === null ||
-	    $this->iScalePosY === null ) {
-	    $this->Stroke($aImg);
-	}
-	else {
-	    $this->Stroke($aImg,
-			  round($axscale->Translate($this->iScalePosX)),
-			  round($ayscale->Translate($this->iScalePosY)));
-	}
-    }
-
-    function SetCSIMTarget($aTarget,$aAlt=null) {
-	$this->iCSIMtarget = $aTarget;
-	$this->iCSIMalt = $aAlt;
-    }
-
-    function GetCSIMareas() {
-	if( $this->iCSIMtarget !== '' ) 
-	    return $this->iCSIMarea;
-	else
-	    return '';
-    }
-
-    // Display text in image
-    function Stroke(&$aImg,$x=null,$y=null) {
-
-	if( !empty($x) ) $this->x = round($x);
-	if( !empty($y) ) $this->y = round($y);
-
-	// Insert newlines
-	if( $this->iWordwrap > 0 ) {
-	    $this->t = wordwrap($this->t,$this->iWordwrap,"\n");
-	}
-
-	// If position been given as a fraction of the image size
-	// calculate the absolute position
-	if( $this->x < 1 && $this->x > 0 ) $this->x *= $aImg->width;
-	if( $this->y < 1 && $this->y > 0 ) $this->y *= $aImg->height;
-
-	$aImg->PushColor($this->color);	
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$aImg->SetTextAlign($this->halign,$this->valign);
-	if( $this->boxed ) {
-	    if( $this->fcolor=="nofill" ) 
-		$this->fcolor=false;		
-	    $aImg->SetLineWeight(1);
-	    $bbox = $aImg->StrokeBoxedText($this->x,$this->y,$this->t,
-				   $this->dir,$this->fcolor,$this->bcolor,$this->shadow,
-				   $this->paragraph_align,5,5,$this->icornerradius,
-				   $this->ishadowwidth);
-	}
-	else {
-	    $bbox = $aImg->StrokeText($this->x,$this->y,$this->t,$this->dir,$this->paragraph_align);
-	}
-
-	// Create CSIM targets
-	$coords = $bbox[0].','.$bbox[1].','.$bbox[2].','.$bbox[3].','.$bbox[4].','.$bbox[5].','.$bbox[6].','.$bbox[7];
-	$this->iCSIMarea = "<area shape=\"poly\" coords=\"$coords\" href=\"".htmlentities($this->iCSIMtarget)."\"";
-	$this->iCSIMarea .= " alt=\"".$this->iCSIMalt."\" title=\"".$this->iCSIMalt."\" />\n";
-
-	$aImg->PopColor($this->color);	
-
-    }
-} // Class
-
-class GraphTabTitle extends Text{
-    var $corner = 6 , $posx = 7, $posy = 4;
-    var $color='darkred',$fillcolor='lightyellow',$bordercolor='black';
-    var $align = 'left', $width=TABTITLE_WIDTHFIT;
-    function GraphTabTitle() {
-	$this->t = '';
-	$this->font_style = FS_BOLD;
-	$this->hide = true;
-    }
-
-    function SetColor($aTxtColor,$aFillColor='lightyellow',$aBorderColor='black') {
-	$this->color = $aTxtColor;
-	$this->fillcolor = $aFillColor;
-	$this->bordercolor = $aBorderColor;
-    }
-
-    function SetFillColor($aFillColor) {
-	$this->fillcolor = $aFillColor;
-    }
-
-    function SetTabAlign($aAlign) {
-	// Synonym for SetPos
-	$this->align = $aAlign;
-    }
-
-    function SetPos($aAlign) {
-	$this->align = $aAlign;
-    }
-    
-    function SetWidth($aWidth) {
-	$this->width = $aWidth ;
-    }
-
-    function Set($t) {
-	$this->t = $t;
-	$this->hide = false;
-    }
-
-    function SetCorner($aD) {
-	$this->corner = $aD ;
-    }
-
-    function Stroke(&$aImg) {
-	if( $this->hide ) 
-	    return;
-	$this->boxed = false;
-	$w = $this->GetWidth($aImg) + 2*$this->posx;
-	$h = $this->GetTextHeight($aImg) + 2*$this->posy;
-
-	$x = $aImg->left_margin;
-	$y = $aImg->top_margin;
-
-	if( $this->width === TABTITLE_WIDTHFIT ) {
-	    if( $this->align == 'left' ) {
-		$p = array($x,                $y,
-			   $x,                $y-$h+$this->corner,
-			   $x + $this->corner,$y-$h,
-			   $x + $w - $this->corner, $y-$h,
-			   $x + $w, $y-$h+$this->corner,
-			   $x + $w, $y);
-	    }
-	    elseif( $this->align == 'center' ) {
-		$x += round($aImg->plotwidth/2) - round($w/2);
-		$p = array($x, $y,
-			   $x, $y-$h+$this->corner,
-			   $x + $this->corner, $y-$h,
-			   $x + $w - $this->corner, $y-$h,
-			   $x + $w, $y-$h+$this->corner,
-			   $x + $w, $y);
-	    }
-	    else {
-		$x += $aImg->plotwidth -$w;
-		$p = array($x, $y,
-			   $x, $y-$h+$this->corner,
-			   $x + $this->corner,$y-$h,
-			   $x + $w - $this->corner, $y-$h,
-			   $x + $w, $y-$h+$this->corner,
-			   $x + $w, $y);
-	    }
-	}
-	else {
-	    if( $this->width === TABTITLE_WIDTHFULL )
-		$w = $aImg->plotwidth ;
-	    else
-		$w = $this->width ;
-
-	    // Make the tab fit the width of the plot area
-	    $p = array($x,                $y,
-		       $x,                $y-$h+$this->corner,
-		       $x + $this->corner,$y-$h,
-		       $x + $w - $this->corner, $y-$h,
-		       $x + $w, $y-$h+$this->corner,
-		       $x + $w, $y);
-	    
-	}
-	if( $this->halign == 'left' ) {
-	    $aImg->SetTextAlign('left','bottom');
-	    $x += $this->posx;
-	    $y -= $this->posy;
-	}
-	elseif( $this->halign == 'center' ) {
-	    $aImg->SetTextAlign('center','bottom');
-	    $x += $w/2; 
-	    $y -= $this->posy;
-	}
-	else {
-	    $aImg->SetTextAlign('right','bottom');
-	    $x += $w - $this->posx;
-	    $y -= $this->posy;
-	}
-
-	$aImg->SetColor($this->fillcolor);
-	$aImg->FilledPolygon($p);
-
-	$aImg->SetColor($this->bordercolor);
-	$aImg->Polygon($p,true);
-	
-	$aImg->SetColor($this->color);
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$aImg->StrokeText($x,$y,$this->t,0,'center');
-    }
-
-}
-
-//===================================================
-// CLASS SuperScriptText
-// Description: Format a superscript text
-//===================================================
-class SuperScriptText extends Text {
-    var $iSuper="";
-    var $sfont_family="",$sfont_style="",$sfont_size=8;
-    var $iSuperMargin=2,$iVertOverlap=4,$iSuperScale=0.65;
-    var $iSDir=0;
-    var $iSimple=false;
-
-    function SuperScriptText($aTxt="",$aSuper="",$aXAbsPos=0,$aYAbsPos=0) {
-	parent::Text($aTxt,$aXAbsPos,$aYAbsPos);
-	$this->iSuper = $aSuper;
-    }
-
-    function FromReal($aVal,$aPrecision=2) {
-	// Convert a floating point number to scientific notation
-	$neg=1.0;
-	if( $aVal < 0 ) {
-	    $neg = -1.0;
-	    $aVal = -$aVal;
-	}
-		
-	$l = floor(log10($aVal));
-	$a = sprintf("%0.".$aPrecision."f",round($aVal / pow(10,$l),$aPrecision));
-	$a *= $neg;
-	if( $this->iSimple && ($a == 1 || $a==-1) ) $a = '';
-	
-	if( $a != '' )
-	    $this->t = $a.' * 10';
-	else {
-	    if( $neg == 1 )
-		$this->t = '10';
-	    else
-		$this->t = '-10';
-	}
-	$this->iSuper = $l;
-    }
-
-    function Set($aTxt,$aSuper="") {
-	$this->t = $aTxt;
-	$this->iSuper = $aSuper;
-    }
-
-    function SetSuperFont($aFontFam,$aFontStyle=FS_NORMAL,$aFontSize=8) {
-	$this->sfont_family = $aFontFam;
-	$this->sfont_style = $aFontStyle;
-	$this->sfont_size = $aFontSize;
-    }
-
-    // Total width of text
-    function GetWidth(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$w = $aImg->GetTextWidth($this->t);
-	$aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size);
-	$w += $aImg->GetTextWidth($this->iSuper);
-	$w += $this->iSuperMargin;
-	return $w;
-    }
-	
-    // Hight of font (approximate the height of the text)
-    function GetFontHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	$h = $aImg->GetFontHeight();
-	$aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size);
-	$h += $aImg->GetFontHeight();
-	return $h;
-    }
-
-    // Hight of text
-    function GetTextHeight(&$aImg) {
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$h = $aImg->GetTextHeight($this->t);
-	$aImg->SetFont($this->sfont_family,$this->sfont_style,$this->sfont_size);
-	$h += $aImg->GetTextHeight($this->iSuper);
-	return $h;
-    }
-
-    function Stroke(&$aImg,$ax=-1,$ay=-1) {
-	
-        // To position the super script correctly we need different
-	// cases to handle the alignmewnt specified since that will
-	// determine how we can interpret the x,y coordinates
-	
-	$w = parent::GetWidth($aImg);
-	$h = parent::GetTextHeight($aImg);
-	switch( $this->valign ) {
-	    case 'top':
-		$sy = $this->y;
-		break;
-	    case 'center':
-		$sy = $this->y - $h/2;
-		break;
-	    case 'bottom':
-		$sy = $this->y - $h;
-		break;
-	    default:
-		JpGraphError::RaiseL(25052);//('PANIC: Internal error in SuperScript::Stroke(). Unknown vertical alignment for text');
-		break;
-	}
-
-	switch( $this->halign ) {
-	    case 'left':
-		$sx = $this->x + $w;
-		break;
-	    case 'center':
-		$sx = $this->x + $w/2;
-		break;
-	    case 'right':
-		$sx = $this->x;
-		break;
-	    default:
-		JpGraphError::RaiseL(25053);//('PANIC: Internal error in SuperScript::Stroke(). Unknown horizontal alignment for text');
-		break;
-	}
-
-	$sx += $this->iSuperMargin;
-	$sy += $this->iVertOverlap;
-
-	// Should we automatically determine the font or
-	// has the user specified it explicetly?
-	if( $this->sfont_family == "" ) {
-	    if( $this->font_family <= FF_FONT2 ) {
-		if( $this->font_family == FF_FONT0 ) {
-		    $sff = FF_FONT0;
-		}
-		elseif( $this->font_family == FF_FONT1 ) {
-		    if( $this->font_style == FS_NORMAL )
-			$sff = FF_FONT0;
-		    else
-			$sff = FF_FONT1;
-		}
-		else {
-		    $sff = FF_FONT1;
-		}
-		$sfs = $this->font_style;
-		$sfz = $this->font_size;
-	    }
-	    else {
-		// TTF fonts
-		$sff = $this->font_family;
-		$sfs = $this->font_style;
-		$sfz = floor($this->font_size*$this->iSuperScale);		
-		if( $sfz < 8 ) $sfz = 8;
-	    }	    
-	    $this->sfont_family = $sff;
-	    $this->sfont_style = $sfs;
-	    $this->sfont_size = $sfz;	    
-	} 
-	else {
-	    $sff = $this->sfont_family;
-	    $sfs = $this->sfont_style;
-	    $sfz = $this->sfont_size;	    
-	}
-
-	parent::Stroke($aImg,$ax,$ay);
-
-
-	// For the builtin fonts we need to reduce the margins
-	// since the bounding bx reported for the builtin fonts
-	// are much larger than for the TTF fonts.
-	if( $sff <= FF_FONT2 ) {
-	    $sx -= 2;
-	    $sy += 3;
-	}
-
-	$aImg->SetTextAlign('left','bottom');	
-	$aImg->SetFont($sff,$sfs,$sfz);
-	$aImg->PushColor($this->color);	
-	$aImg->StrokeText($sx,$sy,$this->iSuper,$this->iSDir,'left');
-	$aImg->PopColor();	
-    }
-}
-
-
-//===================================================
-// CLASS Grid
-// Description: responsible for drawing grid lines in graph
-//===================================================
-class Grid {
-    var $img;
-    var $scale;
-    var $grid_color='#DDDDDD',$grid_mincolor='#DDDDDD';
-    var $type="solid";
-    var $show=false, $showMinor=false,$weight=1;
-    var $fill=false,$fillcolor=array('#EFEFEF','#BBCCFF');
-//---------------
-// CONSTRUCTOR
-    function Grid(&$aAxis) {
-	$this->scale = &$aAxis->scale;
-	$this->img = &$aAxis->img;
-    }
-//---------------
-// PUBLIC METHODS
-    function SetColor($aMajColor,$aMinColor=false) {
-	$this->grid_color=$aMajColor;
-	if( $aMinColor === false ) 
-	    $aMinColor = $aMajColor ;
-	$this->grid_mincolor = $aMinColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-	
-    // Specify if grid should be dashed, dotted or solid
-    function SetLineStyle($aType) {
-	$this->type = $aType;
-    }
-	
-    // Decide if both major and minor grid should be displayed
-    function Show($aShowMajor=true,$aShowMinor=false) {
-	$this->show=$aShowMajor;
-	$this->showMinor=$aShowMinor;
-    }
-    
-    function SetFill($aFlg=true,$aColor1='lightgray',$aColor2='lightblue') {
-	$this->fill = $aFlg;
-	$this->fillcolor = array( $aColor1, $aColor2 );
-    }
-	
-    // Display the grid
-    function Stroke() {
-	if( $this->showMinor ) {
-	    $tmp = $this->grid_color;
-	    $this->grid_color = $this->grid_mincolor;
-	    $this->DoStroke($this->scale->ticks->ticks_pos);
-
-	    $this->grid_color = $tmp;
-	    $this->DoStroke($this->scale->ticks->maj_ticks_pos);
-	}
-	else {
-	    $this->DoStroke($this->scale->ticks->maj_ticks_pos);
-	}
-    }
-	
-//--------------
-// Private methods	
-    // Draw the grid
-    function DoStroke(&$aTicksPos) {
-	if( !$this->show )
-	    return;	
-	$nbrgrids = count($aTicksPos);	
-
-	if( $this->scale->type=="y" ) {
-	    $xl=$this->img->left_margin;
-	    $xr=$this->img->width-$this->img->right_margin;
-	    
-	    if( $this->fill ) {
-		// Draw filled areas
-		$y2 = $aTicksPos[0];
-		$i=1;
-		while( $i < $nbrgrids ) {
-		    $y1 = $y2;
-		    $y2 = $aTicksPos[$i++];
-		    $this->img->SetColor($this->fillcolor[$i & 1]);
-		    $this->img->FilledRectangle($xl,$y1,$xr,$y2);
-		}
-	    }
-
-	    $this->img->SetColor($this->grid_color);
-	    $this->img->SetLineWeight($this->weight);
-
-	    // Draw grid lines
-	    for($i=0; $i<$nbrgrids; ++$i) {
-		$y=$aTicksPos[$i];
-		if( $this->type == "solid" )
-		    $this->img->Line($xl,$y,$xr,$y);
-		elseif( $this->type == "dotted" )
-		    $this->img->DashedLine($xl,$y,$xr,$y,1,6);
-		elseif( $this->type == "dashed" )
-		    $this->img->DashedLine($xl,$y,$xr,$y,2,4);
-		elseif( $this->type == "longdashed" )
-		    $this->img->DashedLine($xl,$y,$xr,$y,8,6);
-	    }
-	}
-	elseif( $this->scale->type=="x" ) {	
-	    $yu=$this->img->top_margin;
-	    $yl=$this->img->height-$this->img->bottom_margin;
-	    $limit=$this->img->width-$this->img->right_margin;
-
-	    if( $this->fill ) {
-		// Draw filled areas
-		$x2 = $aTicksPos[0];
-		$i=1;
-		while( $i < $nbrgrids ) {
-		    $x1 = $x2;
-		    $x2 = min($aTicksPos[$i++],$limit) ;
-		    $this->img->SetColor($this->fillcolor[$i & 1]);
-		    $this->img->FilledRectangle($x1,$yu,$x2,$yl);
-		}
-	    }
-
-	    $this->img->SetColor($this->grid_color);
-	    $this->img->SetLineWeight($this->weight);
-
-	    // We must also test for limit since we might have
-	    // an offset and the number of ticks is calculated with
-	    // assumption offset==0 so we might end up drawing one
-	    // to many gridlines
-	    $i=0;
-	    $x=$aTicksPos[$i];	    
-	    while( $i<count($aTicksPos) && ($x=$aTicksPos[$i]) <= $limit ) {
-		if( $this->type == "solid" )				
-		    $this->img->Line($x,$yl,$x,$yu);
-		elseif( $this->type == "dotted" )
-		    $this->img->DashedLine($x,$yl,$x,$yu,1,6);
-		elseif( $this->type == "dashed" )
-		    $this->img->DashedLine($x,$yl,$x,$yu,2,4);
-		elseif( $this->type == "longdashed" )
-		    $this->img->DashedLine($x,$yl,$x,$yu,8,6);	
-		++$i;  
-	    }
-	}	
-	else {
-	    JpGraphError::RaiseL(25054,$this->scale->type);//('Internal error: Unknown grid axis ['.$this->scale->type.']');
-	}
-	return true;
-    }
-} // Class
-
-//===================================================
-// CLASS Axis
-// Description: Defines X and Y axis. Notes that at the
-// moment the code is not really good since the axis on
-// several occasion must know wheter it's an X or Y axis.
-// This was a design decision to make the code easier to
-// follow. 
-//===================================================
-class Axis {
-    var $pos = false;
-    var $weight=1;
-    var $color=array(0,0,0),$label_color=array(0,0,0);
-    var $img=null,$scale=null; 
-    var $hide=false;
-    var $ticks_label=false, $ticks_label_colors=null;
-    var $show_first_label=true,$show_last_label=true;
-    var $label_step=1; // Used by a text axis to specify what multiple of major steps
-    // should be labeled.
-    var $tick_step=1;
-    var $labelPos=0;   // Which side of the axis should the labels be?
-    var $title=null,$title_adjust,$title_margin,$title_side=SIDE_LEFT;
-    var $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=10,$label_angle=0;
-    var $tick_label_margin=7;
-    var $label_halign = '',$label_valign = '', $label_para_align='left';
-    var $hide_line=false,$hide_labels=false;
-    var $iDeltaAbsPos=0;
-    //var $hide_zero_label=false;
-
-//---------------
-// CONSTRUCTOR
-    function Axis(&$img,&$aScale,$color=array(0,0,0)) {
-	$this->img = &$img;
-	$this->scale = &$aScale;
-	$this->color = $color;
-	$this->title=new Text("");
-		
-	if( $aScale->type=="y" ) {
-	    $this->title_margin = 25;
-	    $this->title_adjust="middle";
-	    $this->title->SetOrientation(90);
-	    $this->tick_label_margin=7;
-	    $this->labelPos=SIDE_LEFT;
-	    //$this->SetLabelFormat('%.1f');
-	}
-	else {
-	    $this->title_margin = 5;
-	    $this->title_adjust="high";
-	    $this->title->SetOrientation(0);			
-	    $this->tick_label_margin=7;
-	    $this->labelPos=SIDE_DOWN;
-	    $this->title_side=SIDE_DOWN;
-	    //$this->SetLabelFormat('%.0f');
-	}
-    }
-//---------------
-// PUBLIC METHODS	
-	
-    function SetLabelFormat($aFormStr) {
-	$this->scale->ticks->SetLabelFormat($aFormStr);
-    }
-	
-    function SetLabelFormatString($aFormStr,$aDate=false) {
-	$this->scale->ticks->SetLabelFormat($aFormStr,$aDate);
-    }
-	
-    function SetLabelFormatCallback($aFuncName) {
-	$this->scale->ticks->SetFormatCallback($aFuncName);
-    }
-
-    function SetLabelAlign($aHAlign,$aVAlign="top",$aParagraphAlign='left') {
-	$this->label_halign = $aHAlign;
-	$this->label_valign = $aVAlign;
-	$this->label_para_align = $aParagraphAlign;
-    }		
-
-    // Don't display the first label
-    function HideFirstTickLabel($aShow=false) {
-	$this->show_first_label=$aShow;
-    }
-
-    function HideLastTickLabel($aShow=false) {
-	$this->show_last_label=$aShow;
-    }
-
-    // Manually specify the major and (optional) minor tick position and labels
-    function SetTickPositions($aMajPos,$aMinPos=NULL,$aLabels=NULL) {
-	$this->scale->ticks->SetTickPositions($aMajPos,$aMinPos,$aLabels);
-    }
-
-    // Manually specify major tick positions and optional labels
-    function SetMajTickPositions($aMajPos,$aLabels=NULL) {
-	$this->scale->ticks->SetTickPositions($aMajPos,NULL,$aLabels);
-    }
-
-    // Hide minor or major tick marks
-    function HideTicks($aHideMinor=true,$aHideMajor=true) {
-	$this->scale->ticks->SupressMinorTickMarks($aHideMinor);
-	$this->scale->ticks->SupressTickMarks($aHideMajor);
-    }
-
-    // Hide zero label
-    function HideZeroLabel($aFlag=true) {
-	$this->scale->ticks->SupressZeroLabel();
-	//$this->hide_zero_label = $aFlag;
-    }
-	
-    function HideFirstLastLabel() {
-	// The two first calls to ticks method will supress 
-	// automatically generated scale values. However, that
-	// will not affect manually specified value, e.g text-scales.
-	// therefor we also make a kludge here to supress manually
-	// specified scale labels.
-	$this->scale->ticks->SupressLast();
-	$this->scale->ticks->SupressFirst();
-	$this->show_first_label	= false;
-	$this->show_last_label = false;
-    }
-	
-    // Hide the axis
-    function Hide($aHide=true) {
-	$this->hide=$aHide;
-    }
-
-    // Hide the actual axis-line, but still print the labels
-    function HideLine($aHide=true) {
-	$this->hide_line = $aHide;
-    }
-
-    function HideLabels($aHide=true) {
-	$this->hide_labels = $aHide;
-    }
-    
-
-    // Weight of axis
-    function SetWeight($aWeight) {
-	$this->weight = $aWeight;
-    }
-
-    // Axis color
-    function SetColor($aColor,$aLabelColor=false) {
-	$this->color = $aColor;
-	if( !$aLabelColor ) $this->label_color = $aColor;
-	else $this->label_color = $aLabelColor;
-    }
-	
-    // Title on axis
-    function SetTitle($aTitle,$aAdjustAlign="high") {
-	$this->title->Set($aTitle);
-	$this->title_adjust=$aAdjustAlign;
-    }
-	
-    // Specify distance from the axis
-    function SetTitleMargin($aMargin) {
-	$this->title_margin=$aMargin;
-    }
-	
-    // Which side of the axis should the axis title be?
-    function SetTitleSide($aSideOfAxis) {
-	$this->title_side = $aSideOfAxis;
-    }
-
-    // Utility function to set the direction for tick marks
-    function SetTickDirection($aDir) {
-    	// Will be deprecated from 1.7    	
-    	if( ERR_DEPRECATED )
-	    JpGraphError::RaiseL(25055);//('Axis::SetTickDirection() is deprecated. Use Axis::SetTickSide() instead');
-	$this->scale->ticks->SetSide($aDir);
-    }
-    
-    function SetTickSide($aDir) {
-	$this->scale->ticks->SetSide($aDir);
-    }
-	
-    // Specify text labels for the ticks. One label for each data point
-    function SetTickLabels($aLabelArray,$aLabelColorArray=null) {
-	$this->ticks_label = $aLabelArray;
-	$this->ticks_label_colors = $aLabelColorArray;
-    }
-	
-    // How far from the axis should the labels be drawn
-    function SetTickLabelMargin($aMargin) {
-	if( ERR_DEPRECATED )    	
-	    JpGraphError::RaiseL(25056);//('SetTickLabelMargin() is deprecated. Use Axis::SetLabelMargin() instead.');
-      	$this->tick_label_margin=$aMargin;
-    }
-
-    function SetLabelMargin($aMargin) {
-	$this->tick_label_margin=$aMargin;
-    }
-	
-    // Specify that every $step of the ticks should be displayed starting
-    // at $start
-    // DEPRECATED FUNCTION: USE SetTextTickInterval() INSTEAD
-    function SetTextTicks($step,$start=0) {
-	JpGraphError::RaiseL(25057);//(" SetTextTicks() is deprecated. Use SetTextTickInterval() instead.");		
-    }
-
-    // Specify that every $step of the ticks should be displayed starting
-    // at $start	
-    function SetTextTickInterval($aStep,$aStart=0) {
-	$this->scale->ticks->SetTextLabelStart($aStart);
-	$this->tick_step=$aStep;
-    }
-	 
-    // Specify that every $step tick mark should have a label 
-    // should be displayed starting
-    function SetTextLabelInterval($aStep,$aStart=0) {
-	if( $aStep < 1 )
-	    JpGraphError::RaiseL(25058);//(" Text label interval must be specified >= 1.");
-	$this->scale->ticks->SetTextLabelStart($aStart);
-	$this->label_step=$aStep;
-    }
-	
-    // Which side of the axis should the labels be on?
-    function SetLabelPos($aSidePos) {
-    	// This will be deprecated from 1.7
-	if( ERR_DEPRECATED )    	
-	    JpGraphError::RaiseL(25059);//('SetLabelPos() is deprecated. Use Axis::SetLabelSide() instead.');
-	$this->labelPos=$aSidePos;
-    }
-    
-    function SetLabelSide($aSidePos) {
-	$this->labelPos=$aSidePos;
-    }
-
-    // Set the font
-    function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) {
-	$this->font_family = $aFamily;
-	$this->font_style = $aStyle;
-	$this->font_size = $aSize;
-    }
-
-    // Position for axis line on the "other" scale
-    function SetPos($aPosOnOtherScale) {
-	$this->pos=$aPosOnOtherScale;
-    }
-
-    // Set the position of the axis to be X-pixels delta to the right 
-    // of the max X-position (used to position the multiple Y-axis)
-    function SetPosAbsDelta($aDelta) {
-      $this->iDeltaAbsPos=$aDelta;
-    }
-	
-    // Specify the angle for the tick labels
-    function SetLabelAngle($aAngle) {
-	$this->label_angle = $aAngle;
-    }	
-	
-    // Stroke the axis.
-    function Stroke($aOtherAxisScale,$aStrokeLabels=true) {		
-	if( $this->hide ) return;		
-	if( is_numeric($this->pos) ) {
-	    $pos=$aOtherAxisScale->Translate($this->pos);
-	}
-	else {	// Default to minimum of other scale if pos not set		
-	    if( ($aOtherAxisScale->GetMinVal() >= 0 && $this->pos==false) || $this->pos=="min" ) {
-		$pos = $aOtherAxisScale->scale_abs[0];
-	    }
-	    elseif($this->pos == "max") {
-		$pos = $aOtherAxisScale->scale_abs[1];
-	    }
-	    else { // If negative set x-axis at 0
-		$this->pos=0;
-		$pos=$aOtherAxisScale->Translate(0);
-	    }
-	}	
-	$pos += $this->iDeltaAbsPos;
-	$this->img->SetLineWeight($this->weight);
-	$this->img->SetColor($this->color);		
-	$this->img->SetFont($this->font_family,$this->font_style,$this->font_size);
-	if( $this->scale->type == "x" ) {
-	    if( !$this->hide_line ) 
-		$this->img->FilledRectangle($this->img->left_margin,$pos,
-					    $this->img->width-$this->img->right_margin,$pos+$this->weight-1);
-	    if( $this->title_side == SIDE_DOWN ) {
-		$y = $pos + $this->img->GetFontHeight() + $this->title_margin + $this->title->margin;
-		$yalign = 'top';
-	    }
-	    else {
-		$y = $pos - $this->img->GetFontHeight() - $this->title_margin - $this->title->margin;
-		$yalign = 'bottom';
-	    }
-
-	    if( $this->title_adjust=="high" )
-		$this->title->Pos($this->img->width-$this->img->right_margin,$y,"right",$yalign);
-	    elseif( $this->title_adjust=="middle" || $this->title_adjust=="center" ) 
-		$this->title->Pos(($this->img->width-$this->img->left_margin-$this->img->right_margin)/2+$this->img->left_margin,$y,"center",$yalign);
-	    elseif($this->title_adjust=="low")
-		$this->title->Pos($this->img->left_margin,$y,"left",$yalign);
-	    else {	
-		JpGraphError::RaiseL(25060,$this->title_adjust);//('Unknown alignment specified for X-axis title. ('.$this->title_adjust.')');
-	    }
-	}
-	elseif( $this->scale->type == "y" ) {
-	    // Add line weight to the height of the axis since
-	    // the x-axis could have a width>1 and we want the axis to fit nicely together.
-	    if( !$this->hide_line ) 
-		$this->img->FilledRectangle($pos-$this->weight+1,$this->img->top_margin,
-					    $pos,$this->img->height-$this->img->bottom_margin+$this->weight-1);
-	    $x=$pos ;
-	    if( $this->title_side == SIDE_LEFT ) {
-		$x -= $this->title_margin;
-		$x -= $this->title->margin;
-		$halign="right";
-	    }
-	    else {
-		$x += $this->title_margin;
-		$x += $this->title->margin;
-		$halign="left";
-	    }
-	    // If the user has manually specified an hor. align
-	    // then we override the automatic settings with this
-	    // specifed setting. Since default is 'left' we compare
-	    // with that. (This means a manually set 'left' align
-	    // will have no effect.)
-	    if( $this->title->halign != 'left' ) 
-		$halign = $this->title->halign;
-	    if( $this->title_adjust=="high" ) 
-		$this->title->Pos($x,$this->img->top_margin,$halign,"top"); 
-	    elseif($this->title_adjust=="middle" || $this->title_adjust=="center")  
-		$this->title->Pos($x,($this->img->height-$this->img->top_margin-$this->img->bottom_margin)/2+$this->img->top_margin,$halign,"center");
-	    elseif($this->title_adjust=="low")
-		$this->title->Pos($x,$this->img->height-$this->img->bottom_margin,$halign,"bottom");
-	    else	
-		JpGraphError::RaiseL(25061,$this->title_adjust);//('Unknown alignment specified for Y-axis title. ('.$this->title_adjust.')');
-		
-	}
-	$this->scale->ticks->Stroke($this->img,$this->scale,$pos);
-	if( $aStrokeLabels ) {
-	    if( !$this->hide_labels )
-		$this->StrokeLabels($pos);
-	    $this->title->Stroke($this->img);
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-    // Draw all the tick labels on major tick marks
-    function StrokeLabels($aPos,$aMinor=false,$aAbsLabel=false) {
-
-	$this->img->SetColor($this->label_color);
-	$this->img->SetFont($this->font_family,$this->font_style,$this->font_size);
-	$yoff=$this->img->GetFontHeight()/2;
-
-	// Only draw labels at major tick marks
-	$nbr = count($this->scale->ticks->maj_ticks_label);
-
-	// We have the option to not-display the very first mark
-	// (Usefull when the first label might interfere with another
-	// axis.)
-	$i = $this->show_first_label ? 0 : 1 ;
-	if( !$this->show_last_label ) --$nbr;
-	// Now run through all labels making sure we don't overshoot the end
-	// of the scale.	
-	$ncolor=0;
-	if( isset($this->ticks_label_colors) )
-	    $ncolor=count($this->ticks_label_colors);
-	
-	while( $i<$nbr ) {
-	    // $tpos holds the absolute text position for the label
-	    $tpos=$this->scale->ticks->maj_ticklabels_pos[$i];
-
-	    // Note. the $limit is only used for the x axis since we
-	    // might otherwise overshoot if the scale has been centered
-	    // This is due to us "loosing" the last tick mark if we center.
-	    if( $this->scale->type=="x" && $tpos > $this->img->width-$this->img->right_margin+1 ) {
-	    	return; 
-	    }
-	    // we only draw every $label_step label
-	    if( ($i % $this->label_step)==0 ) {
-
-		// Set specific label color if specified
-		if( $ncolor > 0 )
-		    $this->img->SetColor($this->ticks_label_colors[$i % $ncolor]);
-		
-		// If the label has been specified use that and in other case
-		// just label the mark with the actual scale value 
-		$m=$this->scale->ticks->GetMajor();
-				
-		// ticks_label has an entry for each data point and is the array
-		// that holds the labels set by the user. If the user hasn't 
-		// specified any values we use whats in the automatically asigned
-		// labels in the maj_ticks_label
-		if( isset($this->ticks_label[$i*$m]) )
-		    $label=$this->ticks_label[$i*$m];
-		else {
-		    if( $aAbsLabel ) 
-			$label=abs($this->scale->ticks->maj_ticks_label[$i]);
-		    else
-			$label=$this->scale->ticks->maj_ticks_label[$i];
-		    if( $this->scale->textscale && $this->scale->ticks->label_formfunc == '' ) {
-			++$label;
-		    }
-		}
-					
-		//if( $this->hide_zero_label && $label==0.0 ) {
-		//	++$i;
-		//	continue;
-		//}					
-					
-		if( $this->scale->type == "x" ) {
-		    if( $this->labelPos == SIDE_DOWN ) {
-			if( $this->label_angle==0 || $this->label_angle==90 ) {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign('center','top');
-			    else
-			    	$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			    
-			}
-			else {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign("right","top");
-			    else
-				$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			}
-
-			$this->img->StrokeText($tpos,$aPos+$this->tick_label_margin+1,$label,
-					       $this->label_angle,$this->label_para_align);
-		    }
-		    else {
-			if( $this->label_angle==0 || $this->label_angle==90 ) {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign("center","bottom");
-			    else
-			    	$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			}
-			else {
-			    if( $this->label_halign=='' && $this->label_valign=='')
-				$this->img->SetTextAlign("right","bottom");
-			    else
-			    	$this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			}
-			$this->img->StrokeText($tpos,$aPos-$this->tick_label_margin-1,$label,
-					       $this->label_angle,$this->label_para_align);
-		    }
-		}
-		else {
-		    // scale->type == "y"
-		    //if( $this->label_angle!=0 ) 
-		    //JpGraphError::Raise(" Labels at an angle are not supported on Y-axis");
-		    if( $this->labelPos == SIDE_LEFT ) { // To the left of y-axis					
-			if( $this->label_halign=='' && $this->label_valign=='')	
-			    $this->img->SetTextAlign("right","center");
-			else
-			    $this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			$this->img->StrokeText($aPos-$this->tick_label_margin,$tpos,$label,$this->label_angle,$this->label_para_align);	
-		    }
-		    else { // To the right of the y-axis
-			if( $this->label_halign=='' && $this->label_valign=='')	
-			    $this->img->SetTextAlign("left","center");
-			else
-			    $this->img->SetTextAlign($this->label_halign,$this->label_valign);
-			$this->img->StrokeText($aPos+$this->tick_label_margin,$tpos,$label,$this->label_angle,$this->label_para_align);	
-		    }
-		}
-	    }
-	    ++$i;	
-	}								
-    }			
-
-} // Class
-
-//===================================================
-// CLASS Ticks
-// Description: Abstract base class for drawing linear and logarithmic
-// tick marks on axis
-//===================================================
-class Ticks {
-    var $minor_abs_size=3, $major_abs_size=5;
-    var $direction=1; // Should ticks be in(=1) the plot area or outside (=-1)?
-    var $scale;
-    var $is_set=false;
-    var $precision;
-    var $supress_zerolabel=false,$supress_first=false;
-    var $supress_last=false,$supress_tickmarks=false,$supress_minor_tickmarks=false;
-    var $mincolor="",$majcolor="";
-    var $weight=1;
-    var $label_formatstr='';   // C-style format string to use for labels
-    var $label_formfunc='';
-    var $label_dateformatstr='';
-    var $label_usedateformat=FALSE;
-
-
-//---------------
-// CONSTRUCTOR
-    function Ticks(&$aScale) {
-	$this->scale=&$aScale;
-	$this->precision = -1;
-    }
-
-//---------------
-// PUBLIC METHODS	
-    // Set format string for automatic labels
-    function SetLabelFormat($aFormatString,$aDate=FALSE) {
-	$this->label_formatstr=$aFormatString;
-	$this->label_usedateformat=$aDate;
-    }
-
-    function SetLabelDateFormat($aFormatString) {
-	$this->label_dateformatstr=$aFormatString;
-    }
-	
-    function SetFormatCallback($aCallbackFuncName) {
-	$this->label_formfunc = $aCallbackFuncName;
-    }
-	
-    // Don't display the first zero label
-    function SupressZeroLabel($aFlag=true) {
-	$this->supress_zerolabel=$aFlag;
-    }
-	
-    // Don't display minor tick marks
-    function SupressMinorTickMarks($aHide=true) {
-	$this->supress_minor_tickmarks=$aHide;
-    }
-	
-    // Don't display major tick marks
-    function SupressTickMarks($aHide=true) {
-	$this->supress_tickmarks=$aHide;
-    }
-	
-    // Hide the first tick mark
-    function SupressFirst($aHide=true) {
-	$this->supress_first=$aHide;
-    }
-	
-    // Hide the last tick mark
-    function SupressLast($aHide=true) {
-	$this->supress_last=$aHide;
-    }
-
-    // Size (in pixels) of minor tick marks
-    function GetMinTickAbsSize() {
-	return $this->minor_abs_size;
-    }
-	
-    // Size (in pixels) of major tick marks
-    function GetMajTickAbsSize() {
-	return $this->major_abs_size;		
-    }
-	
-    function SetSize($aMajSize,$aMinSize=3) {
-	$this->major_abs_size = $aMajSize;		
-	$this->minor_abs_size = $aMinSize;		
-    }
-
-    // Have the ticks been specified
-    function IsSpecified() {
-	return $this->is_set;
-    }
-	
-    // Set the distance between major and minor tick marks
-    function Set($aMaj,$aMin) {
-	// "Virtual method"
-	// Should be implemented by the concrete subclass
-	// if any action is wanted.
-    }
-	
-    // Specify number of decimals in automatic labels
-    // Deprecated from 1.4. Use SetFormatString() instead
-    function SetPrecision($aPrecision) { 	
-    	if( ERR_DEPRECATED )
-	    JpGraphError::RaiseL(25063);//('Ticks::SetPrecision() is deprecated. Use Ticks::SetLabelFormat() (or Ticks::SetFormatCallback()) instead');
-	$this->precision=$aPrecision;
-    }
-
-    function SetSide($aSide) {
-	$this->direction=$aSide;
-    }
-	
-    // Which side of the axis should the ticks be on
-    function SetDirection($aSide=SIDE_RIGHT) {
-	$this->direction=$aSide;
-    }
-	
-    // Set colors for major and minor tick marks
-    function SetMarkColor($aMajorColor,$aMinorColor="") {
-	$this->SetColor($aMajorColor,$aMinorColor);
-    }
-    
-    function SetColor($aMajorColor,$aMinorColor="") {
-	$this->majcolor=$aMajorColor;
-		
-	// If not specified use same as major
-	if( $aMinorColor=="" ) 
-	    $this->mincolor=$aMajorColor;
-	else
-	    $this->mincolor=$aMinorColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-	
-} // Class
-
-//===================================================
-// CLASS LinearTicks
-// Description: Draw linear ticks on axis
-//===================================================
-class LinearTicks extends Ticks {
-    var $minor_step=1, $major_step=2;
-    var $xlabel_offset=0,$xtick_offset=0;
-    var $label_offset=0; // What offset should the displayed label have
-    // i.e should we display 0,1,2 or 1,2,3,4 or 2,3,4 etc
-    var $text_label_start=0;
-    var $iManualTickPos = NULL, $iManualMinTickPos = NULL, $iManualTickLabels = NULL;
-    var $maj_ticks_pos = array(), $maj_ticklabels_pos = array(), 
-	$ticks_pos = array(), $maj_ticks_label = array();
-
-//---------------
-// CONSTRUCTOR
-    function LinearTicks() {
-	$this->precision = -1;
-    }
-
-//---------------
-// PUBLIC METHODS	
-	
-	
-    // Return major step size in world coordinates
-    function GetMajor() {
-	return $this->major_step;
-    }
-	
-    // Return minor step size in world coordinates
-    function GetMinor() {
-	return $this->minor_step;
-    }
-	
-    // Set Minor and Major ticks (in world coordinates)
-    function Set($aMajStep,$aMinStep=false) {
-	if( $aMinStep==false ) 
-	    $aMinStep=$aMajStep;
-    	
-	if( $aMajStep <= 0 || $aMinStep <= 0 ) {
-	    JpGraphError::RaiseL(25064);
-//(" Minor or major step size is 0. Check that you haven't got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem.");
-	}
-		
-	$this->major_step=$aMajStep;
-	$this->minor_step=$aMinStep;
-	$this->is_set = true;
-    }
-
-    function SetMajTickPositions($aMajPos,$aLabels=NULL) {
-	$this->SetTickPositions($aMajPos,NULL,$aLabels);
-    }
-
-    function SetTickPositions($aMajPos,$aMinPos=NULL,$aLabels=NULL) {
-	if( !is_array($aMajPos) || ($aMinPos!==NULL && !is_array($aMinPos)) ) {
-	    JpGraphError::RaiseL(25065);//('Tick positions must be specifued as an array()');
-	    return;
-	}
-	$n=count($aMajPos);
-	if( is_array($aLabels) && (count($aLabels) != $n) ) {
-	    JpGraphError::RaiseL(25066);//('When manually specifying tick positions and labels the number of labels must be the same as the number of specified ticks.');
-	    return;
-	}
-	$this->iManualTickPos = $aMajPos;
-	$this->iManualMinTickPos = $aMinPos;
-	$this->iManualTickLabels = $aLabels;
-    }
-
-    // Specify all the tick positions manually and possible also the exact labels 
-    function _doManualTickPos($aScale) { 
-	$n=count($this->iManualTickPos);
-	$m=count($this->iManualMinTickPos);
-	$doLbl=count($this->iManualTickLabels) > 0;
-	$this->use_manualtickpos=true;
-
-	$this->maj_ticks_pos = array();
-	$this->maj_ticklabels_pos = array();
-	$this->ticks_pos = array();
-
-	// Now loop through the supplied positions and translate them to screen coordinates
-	// and store them in the maj_label_positions
-	$minScale = $aScale->scale[0];
-	$maxScale = $aScale->scale[1];
-	$j=0;
-	for($i=0; $i < $n ; ++$i ) {
-	    // First make sure that the first tick is not lower than the lower scale value
-	    if( !isset($this->iManualTickPos[$i])  || 
-		$this->iManualTickPos[$i] < $minScale  || $this->iManualTickPos[$i] > $maxScale) {
-		continue;
-	    }
-
-
-	    $this->maj_ticks_pos[$j] = $aScale->Translate($this->iManualTickPos[$i]);
-	    $this->maj_ticklabels_pos[$j] = $this->maj_ticks_pos[$j];	
-
-	    // Set the minor tick marks the same as major if not specified
-	    if( $m <= 0 ) {
-		$this->ticks_pos[$j] = $this->maj_ticks_pos[$j];
-	    }
-
-	    if( $doLbl ) { 
-		$this->maj_ticks_label[$j] = $this->iManualTickLabels[$i];
-	    }
-	    else {
-		$this->maj_ticks_label[$j]=$this->_doLabelFormat($this->iManualTickPos[$i],$i,$n);
-	    }
-	    ++$j;
-	}
-
-	// Some sanity check
-	if( count($this->maj_ticks_pos) < 2 ) {
-	    JpGraphError::RaiseL(25067);//('Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tickl marks.');
-	}
-
-	// Setup the minor tick marks
-	$j=0;
-	for($i=0; $i < $m; ++$i ) {
-	    if(  empty($this->iManualMinTickPos[$i]) || 
-		 $this->iManualMinTickPos[$i] < $minScale  || $this->iManualMinTickPos[$i] > $maxScale) 
-		continue;
-	    $this->ticks_pos[$j] = $aScale->Translate($this->iManualMinTickPos[$i]);
-	    ++$j;
-	}
-    }
-
-    function _doAutoTickPos($aScale) {
-	$maj_step_abs = $aScale->scale_factor*$this->major_step;		
-	$min_step_abs = $aScale->scale_factor*$this->minor_step;		
-
-	if( $min_step_abs==0 || $maj_step_abs==0 ) {
-	    JpGraphError::RaiseL(25068);//("A plot has an illegal scale. This could for example be that you are trying to use text autoscaling to draw a line plot with only one point or that the plot area is too small. It could also be that no input data value is numeric (perhaps only '-' or 'x')");
-	}
-	// We need to make this an int since comparing it below
-	// with the result from round() can give wrong result, such that
-	// (40 < 40) == TRUE !!!
-	$limit = (int)$aScale->scale_abs[1];	
-
-	if( $aScale->textscale ) {
-	    // This can only be true for a X-scale (horizontal)
-	    // Define ticks for a text scale. This is slightly different from a 
-	    // normal linear type of scale since the position might be adjusted
-	    // and the labels start at on
-	    $label = (float)$aScale->GetMinVal()+$this->text_label_start+$this->label_offset;	
-	    $start_abs=$aScale->scale_factor*$this->text_label_start;
-	    $nbrmajticks=ceil(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1;	
-	    $x = $aScale->scale_abs[0]+$start_abs+$this->xlabel_offset*$min_step_abs;	
-	    for( $i=0; $label <= $aScale->GetMaxVal()+$this->label_offset; ++$i ) {
-		// Apply format to label
-		$this->maj_ticks_label[$i]=$this->_doLabelFormat($label,$i,$nbrmajticks);
-		$label+=$this->major_step;
-
-		// The x-position of the tick marks can be different from the labels.
-		// Note that we record the tick position (not the label) so that the grid
-		// happen upon tick marks and not labels.
-		$xtick=$aScale->scale_abs[0]+$start_abs+$this->xtick_offset*$min_step_abs+$i*$maj_step_abs;
-		$this->maj_ticks_pos[$i]=$xtick;
-		$this->maj_ticklabels_pos[$i] = round($x);				
-		$x += $maj_step_abs;
-	    }
-	}
-	else {
-	    $label = $aScale->GetMinVal();	
-	    $abs_pos = $aScale->scale_abs[0];
-	    $j=0; $i=0;
-	    $step = round($maj_step_abs/$min_step_abs);
-	    if( $aScale->type == "x" ) {
-		// For a normal linear type of scale the major ticks will always be multiples
-		// of the minor ticks. In order to avoid any rounding issues the major ticks are
-		// defined as every "step" minor ticks and not calculated separately
-		$nbrmajticks=ceil(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1; 
-		while( round($abs_pos) <= $limit ) {
-		    $this->ticks_pos[] = round($abs_pos);
-		    $this->ticks_label[] = $label;
-		    if( $i % $step == 0 && $j < $nbrmajticks ) {
-			$this->maj_ticks_pos[$j] = round($abs_pos);
-			$this->maj_ticklabels_pos[$j] = round($abs_pos);
-			$this->maj_ticks_label[$j]=$this->_doLabelFormat($label,$j,$nbrmajticks);
-			++$j;
-		    }
-		    ++$i;
-		    $abs_pos += $min_step_abs;
-		    $label+=$this->minor_step;
-		}
-	    }
-	    elseif( $aScale->type == "y" ) {
-		$nbrmajticks=floor(($aScale->GetMaxVal()-$aScale->GetMinVal())/$this->major_step)+1;
-		while( round($abs_pos) >= $limit ) {
-		    $this->ticks_pos[$i] = round($abs_pos); 
-		    $this->ticks_label[$i]=$label;
-		    if( $i % $step == 0 && $j < $nbrmajticks) {
-			$this->maj_ticks_pos[$j] = round($abs_pos);
-			$this->maj_ticklabels_pos[$j] = round($abs_pos);
-			$this->maj_ticks_label[$j]=$this->_doLabelFormat($label,$j,$nbrmajticks);
-			++$j;
-		    }
-		    ++$i;
-		    $abs_pos += $min_step_abs;
-		    $label += $this->minor_step;
-		}	
-	    }
-	}	
-    }
-
-    function _doLabelFormat($aVal,$aIdx,$aNbrTicks) {
-
-	// If precision hasn't been specified set it to a sensible value
-	if( $this->precision==-1 ) { 
-	    $t = log10($this->minor_step);
-	    if( $t > 0 )
-		$precision = 0;
-	    else
-		$precision = -floor($t);
-	}
-	else
-	    $precision = $this->precision;
-
-	if( $this->label_formfunc != '' ) {
-	    $f=$this->label_formfunc;
-	    $l = call_user_func($f,$aVal);
-	}	
-	elseif( $this->label_formatstr != '' || $this->label_dateformatstr != '' ) {
-	    if( $this->label_usedateformat ) {
-		// Adjust the value to take daylight savings into account
-		if (date("I",$aVal)==1) // DST
-		    $aVal+=3600;
-		$l = date($this->label_formatstr,$aVal);
-		if( $this->label_formatstr == 'W' ) {
-		    // If we use week formatting then add a single 'w' in front of the
-		    // week number to differentiate it from dates
-		    $l = 'w'.$l;
-		}
-	    }
-	    else {
-		if( $this->label_dateformatstr !== '' ) {
-		    // Adjust the value to take daylight savings into account
-		    if (date("I",$aVal)==1) // DST
-			$aVal+=3600;
-		    $l = date($this->label_dateformatstr,$aVal);
-		    if( $this->label_formatstr == 'W' ) {
-			// If we use week formatting then add a single 'w' in front of the
-			// week number to differentiate it from dates
-			$l = 'w'.$l;
-		    }
-		}
-		else
-		    $l = sprintf($this->label_formatstr,$aVal);
-	    }
-	}
-	else {
-	    $l = sprintf('%01.'.$precision.'f',round($aVal,$precision));
-	}
-	
-	if( ($this->supress_zerolabel && $l==0) ||  ($this->supress_first && $aIdx==0) ||
-	    ($this->supress_last  && $aIdx==$aNbrTicks-1) ) {
-	    $l='';
-	}
-	return $l;
-    }
-
-    // Stroke ticks on either X or Y axis
-    function _StrokeTicks(&$aImg,$aScale,$aPos) {
-	$hor = $aScale->type == 'x';
-	$aImg->SetLineWeight($this->weight);	
-
-	// We need to make this an int since comparing it below
-	// with the result from round() can give wrong result, such that
-	// (40 < 40) == TRUE !!!
-	$limit = (int)$aScale->scale_abs[1];
-		
-	// A text scale doesn't have any minor ticks
-	if( !$aScale->textscale ) {
-	    // Stroke minor ticks
-	    $yu = $aPos - $this->direction*$this->GetMinTickAbsSize();
-	    $xr = $aPos + $this->direction*$this->GetMinTickAbsSize();
-	    $n = count($this->ticks_pos);
-	    for($i=0; $i < $n; ++$i ) {
-		if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) {
-		    if( $this->mincolor!="" ) $aImg->PushColor($this->mincolor);
-		    if( $hor ) {
-			//if( $this->ticks_pos[$i] <= $limit ) 
-			$aImg->Line($this->ticks_pos[$i],$aPos,$this->ticks_pos[$i],$yu); 
-		    }
-		    else {
-			//if( $this->ticks_pos[$i] >= $limit ) 
-			$aImg->Line($aPos,$this->ticks_pos[$i],$xr,$this->ticks_pos[$i]); 
-		    }
-		    if( $this->mincolor!="" ) $aImg->PopColor();
-		}
-	    }
-	}
-
-	// Stroke major ticks
-	$yu = $aPos - $this->direction*$this->GetMajTickAbsSize();
-	$xr = $aPos + $this->direction*$this->GetMajTickAbsSize();
-	$nbrmajticks=ceil(($aScale->GetMaxVal()-$aScale->GetMinVal()-$this->text_label_start )/$this->major_step)+1;
-	$n = count($this->maj_ticks_pos);
-	for($i=0; $i < $n ; ++$i ) {
-	    if(!($this->xtick_offset > 0 && $i==$nbrmajticks-1) && !$this->supress_tickmarks) {
-		if( $this->majcolor!="" ) $aImg->PushColor($this->majcolor);
-		if( $hor ) {
-		    //if( $this->maj_ticks_pos[$i] <= $limit ) 
-		    $aImg->Line($this->maj_ticks_pos[$i],$aPos,$this->maj_ticks_pos[$i],$yu); 
-		}
-		else {
-		    //if( $this->maj_ticks_pos[$i] >= $limit ) 
-		    $aImg->Line($aPos,$this->maj_ticks_pos[$i],$xr,$this->maj_ticks_pos[$i]); 
-		}
-		if( $this->majcolor!="" ) $aImg->PopColor();
-	    }
-	}
-	
-    }
-
-    // Draw linear ticks
-    function Stroke(&$aImg,$aScale,$aPos) {
-	if( $this->iManualTickPos != NULL ) 
-	    $this->_doManualTickPos($aScale);
-	else 
-	    $this->_doAutoTickPos($aScale);
-	$this->_StrokeTicks($aImg,$aScale,$aPos, $aScale->type == 'x' );
-    }
-
-//---------------
-// PRIVATE METHODS
-    // Spoecify the offset of the displayed tick mark with the tick "space"
-    // Legal values for $o is [0,1] used to adjust where the tick marks and label 
-    // should be positioned within the major tick-size
-    // $lo specifies the label offset and $to specifies the tick offset
-    // this comes in handy for example in bar graphs where we wont no offset for the
-    // tick but have the labels displayed halfway under the bars.
-    function SetXLabelOffset($aLabelOff,$aTickOff=-1) {
-	$this->xlabel_offset=$aLabelOff;
-	if( $aTickOff==-1 )	// Same as label offset
-	    $this->xtick_offset=$aLabelOff;
-	else
-	    $this->xtick_offset=$aTickOff;
-	if( $aLabelOff>0 )
-	    $this->SupressLast();	// The last tick wont fit
-    }
-
-    // Which tick label should we start with?
-    function SetTextLabelStart($aTextLabelOff) {
-	$this->text_label_start=$aTextLabelOff;
-    }
-	
-} // Class
-
-//===================================================
-// CLASS LinearScale
-// Description: Handle linear scaling between screen and world 
-//===================================================
-class LinearScale {
-    var $scale=array(0,0);
-    var $scale_abs=array(0,0);
-    var $scale_factor; // Scale factor between world and screen
-    var $world_size;	// Plot area size in world coordinates
-    var $world_abs_size; // Plot area size in pixels
-    var $off; // Offset between image edge and plot area
-    var $type; // is this x or y scale ?
-    var $ticks=null; // Store ticks
-    var $text_scale_off = 0;
-    var $autoscale_min=false; // Forced minimum value, auto determine max
-    var $autoscale_max=false; // Forced maximum value, auto determine min
-    var $gracetop=0,$gracebottom=0;
-    var $intscale=false; // Restrict autoscale to integers
-    var $textscale=false; // Just a flag to let the Plot class find out if
-    // we are a textscale or not. This is a cludge since
-    // this ionformatyion is availabale in Graph::axtype but
-    // we don't have access to the graph object in the Plots
-    // stroke method. So we let graph store the status here
-    // when the linear scale is created. A real cludge...
-    var $auto_ticks=false; // When using manual scale should the ticks be automatically set?
-    var $name = 'lin';
-//---------------
-// CONSTRUCTOR
-    function LinearScale($aMin=0,$aMax=0,$aType="y") {
-	assert($aType=="x" || $aType=="y" );
-	assert($aMin<=$aMax);
-		
-	$this->type=$aType;
-	$this->scale=array($aMin,$aMax);		
-	$this->world_size=$aMax-$aMin;	
-	$this->ticks = new LinearTicks();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    // Check if scale is set or if we should autoscale
-    // We should do this is either scale or ticks has not been set
-    function IsSpecified() {
-	if( $this->GetMinVal()==$this->GetMaxVal() ) {		// Scale not set
-	    return false;
-	}
-	return true;
-    }
-	
-    // Set the minimum data value when the autoscaling is used. 
-    // Usefull if you want a fix minimum (like 0) but have an
-    // automatic maximum
-    function SetAutoMin($aMin) {
-	$this->autoscale_min=$aMin;
-    }
-
-    // Set the minimum data value when the autoscaling is used. 
-    // Usefull if you want a fix minimum (like 0) but have an
-    // automatic maximum
-    function SetAutoMax($aMax) {
-	$this->autoscale_max=$aMax;
-    }
-
-    // If the user manually specifies a scale should the ticks
-    // still be set automatically?
-    function SetAutoTicks($aFlag=true) {
-	$this->auto_ticks = $aFlag;
-    }
-
-    // Specify scale "grace" value (top and bottom)
-    function SetGrace($aGraceTop,$aGraceBottom=0) {
-	if( $aGraceTop<0 || $aGraceBottom < 0  )
-	    JpGraphError::RaiseL(25069);//(" Grace must be larger then 0");
-	$this->gracetop=$aGraceTop;
-	$this->gracebottom=$aGraceBottom;
-    }
-	
-    // Get the minimum value in the scale
-    function GetMinVal() {
-	return $this->scale[0];
-    }
-	
-    // get maximum value for scale
-    function GetMaxVal() {
-	return $this->scale[1];
-    }
-		
-    // Specify a new min/max value for sclae	
-    function Update(&$aImg,$aMin,$aMax) {
-	$this->scale=array($aMin,$aMax);		
-	$this->world_size=$aMax-$aMin;		
-	$this->InitConstants($aImg);					
-    }
-	
-    // Translate between world and screen
-    function Translate($aCoord) {
-	if( !is_numeric($aCoord) ) {
-	    if( $aCoord != '' && $aCoord != '-' && $aCoord != 'x' ) 
-		JpGraphError::RaiseL(25070);//('Your data contains non-numeric values.');
-	    return 0;
-	}
-	else {
-	    return $this->off + ($aCoord - $this->scale[0])*$this->scale_factor;
-	}
-    }
-	
-    // Relative translate (don't include offset) usefull when we just want
-    // to know the relative position (in pixels) on the axis
-    function RelTranslate($aCoord) {
-	if( !is_numeric($aCoord) ) {
-	    if( $aCoord != '' && $aCoord != '-' && $aCoord != 'x'  ) 
-		JpGraphError::RaiseL(25070);//('Your data contains non-numeric values.');
-	    return 0;
-	}
-	else { 
-	    return ($aCoord - $this->scale[0]) * $this->scale_factor; 
-	}
-    }
-	
-    // Restrict autoscaling to only use integers
-    function SetIntScale($aIntScale=true) {
-	$this->intscale=$aIntScale;
-    }
-	
-    // Calculate an integer autoscale
-    function IntAutoScale(&$img,$min,$max,$maxsteps,$majend=true) {
-	// Make sure limits are integers
-	$min=floor($min);
-	$max=ceil($max);
-	if( abs($min-$max)==0 ) {
-	    --$min; ++$max;
-	}
-	$maxsteps = floor($maxsteps);
-		
-	$gracetop=round(($this->gracetop/100.0)*abs($max-$min));
-	$gracebottom=round(($this->gracebottom/100.0)*abs($max-$min));
-	if( is_numeric($this->autoscale_min) ) {
-	    $min = ceil($this->autoscale_min);
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.');
-	    }
-	}
-
-	if( is_numeric($this->autoscale_max) ) {
-	    $max = ceil($this->autoscale_max);
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.');
-	    }
-	}
-
-	if( abs($min-$max ) == 0 ) {
-	    ++$max;
-	    --$min;
-	}
-			
-	$min -= $gracebottom;
-	$max += $gracetop;		
-
-	// First get tickmarks as multiples of 1, 10, ...	
-	if( $majend ) {
-	    list($num1steps,$adj1min,$adj1max,$maj1step) = 
-		$this->IntCalcTicks($maxsteps,$min,$max,1);
-	}
-	else {
-	    $adj1min = $min;
-	    $adj1max = $max;
-	    list($num1steps,$maj1step) = 
-		$this->IntCalcTicksFreeze($maxsteps,$min,$max,1);
-	}
-
-	if( abs($min-$max) > 2 ) {
-	    // Then get tick marks as 2:s 2, 20, ...
-	    if( $majend ) {
-		list($num2steps,$adj2min,$adj2max,$maj2step) = 
-		    $this->IntCalcTicks($maxsteps,$min,$max,5);
-	    }
-	    else {
-		$adj2min = $min;
-		$adj2max = $max;
-		list($num2steps,$maj2step) = 
-		    $this->IntCalcTicksFreeze($maxsteps,$min,$max,5);
-	    }
-	}
-	else {
-	    $num2steps = 10000;	// Dummy high value so we don't choose this
-	}
-	
-	if( abs($min-$max) > 5 ) {	
-	    // Then get tickmarks as 5:s 5, 50, 500, ...
-	    if( $majend ) {
-		list($num5steps,$adj5min,$adj5max,$maj5step) = 
-		    $this->IntCalcTicks($maxsteps,$min,$max,2);
-	    }
-	    else {
-		$adj5min = $min;
-		$adj5max = $max;
-		list($num5steps,$maj5step) = 
-		    $this->IntCalcTicksFreeze($maxsteps,$min,$max,2);
-	    }
-	}
-	else {
-	    $num5steps = 10000;	// Dummy high value so we don't choose this		
-	}
-	
-	// Check to see whichof 1:s, 2:s or 5:s fit better with
-	// the requested number of major ticks		
-	$match1=abs($num1steps-$maxsteps);		
-	$match2=abs($num2steps-$maxsteps);
-	if( !empty($maj5step) && $maj5step > 1 )
-	    $match5=abs($num5steps-$maxsteps);
-	else
-	    $match5=10000; 	// Dummy high value 
-		
-	// Compare these three values and see which is the closest match
-	// We use a 0.6 weight to gravitate towards multiple of 5:s 
-	if( $match1 < $match2 ) {
-	    if( $match1 < $match5 )
-		$r=1;			
-	    else 
-		$r=3;
-	}
-	else {
-	    if( $match2 < $match5 )
-		$r=2;			
-	    else 
-		$r=3;		
-	}	
-	// Minsteps are always the same as maxsteps for integer scale
-	switch( $r ) {
-	    case 1:
-		$this->ticks->Set($maj1step,$maj1step);
-		$this->Update($img,$adj1min,$adj1max);
-		break;			
-	    case 2:
-		$this->ticks->Set($maj2step,$maj2step);
-		$this->Update($img,$adj2min,$adj2max);		
-		break;									
-	    case 3:
-		$this->ticks->Set($maj5step,$maj5step);		
-		$this->Update($img,$adj5min,$adj5max);
-		break;	
-	    default:
-		JpGraphError::RaiseL(25073,$r);//('Internal error. Integer scale algorithm comparison out of bound (r=$r)');
-	}		
-    }
-	
-	
-    // Calculate autoscale. Used if user hasn't given a scale and ticks
-    // $maxsteps is the maximum number of major tickmarks allowed.
-    function AutoScale(&$img,$min,$max,$maxsteps,$majend=true) {
-	if( $this->intscale ) {	
-	    $this->IntAutoScale($img,$min,$max,$maxsteps,$majend);
-	    return;
-	}
-	if( abs($min-$max) < 0.00001 ) {
-	    // We need some difference to be able to autoscale
-	    // make it 5% above and 5% below value
-	    if( $min==0 && $max==0 ) {		// Special case
-		$min=-1; $max=1;
-	    }
-	    else {
-		$delta = (abs($max)+abs($min))*0.005;
-		$min -= $delta;
-		$max += $delta;
-	    }
-	}
-		
-	$gracetop=($this->gracetop/100.0)*abs($max-$min);
-	$gracebottom=($this->gracebottom/100.0)*abs($max-$min);
-	if( is_numeric($this->autoscale_min) ) {
-	    $min = $this->autoscale_min;
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25071);//('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.');
-	    }
-	    if( abs($min-$max ) < 0.00001 )
-		$max *= 1.2;
-	}
-
-	if( is_numeric($this->autoscale_max) ) {
-	    $max = $this->autoscale_max;
-	    if( $min >= $max ) {
-		JpGraphError::RaiseL(25072);//('You have specified a max value with SetAutoMax() which is smaller than the miminum value used for the scale. This is not possible.');
-	    }
-	    if( abs($min-$max ) < 0.00001 )
-		$min *= 0.8;
-	}
-
-	
-	$min -= $gracebottom;
-	$max += $gracetop;
-
-	// First get tickmarks as multiples of 0.1, 1, 10, ...	
-	if( $majend ) {
-	    list($num1steps,$adj1min,$adj1max,$min1step,$maj1step) = 
-		$this->CalcTicks($maxsteps,$min,$max,1,2);
-	}
-	else {
-	    $adj1min=$min;
-	    $adj1max=$max;
-	    list($num1steps,$min1step,$maj1step) = 
-		$this->CalcTicksFreeze($maxsteps,$min,$max,1,2,false);
-	}
-		
-	// Then get tick marks as 2:s 0.2, 2, 20, ...
-	if( $majend ) {
-	    list($num2steps,$adj2min,$adj2max,$min2step,$maj2step) = 
-		$this->CalcTicks($maxsteps,$min,$max,5,2);
-	}
-	else {
-	    $adj2min=$min;
-	    $adj2max=$max;
-	    list($num2steps,$min2step,$maj2step) = 
-		$this->CalcTicksFreeze($maxsteps,$min,$max,5,2,false);
-	}
-		
-	// Then get tickmarks as 5:s 0.05, 0.5, 5, 50, ...
-	if( $majend ) {
-	    list($num5steps,$adj5min,$adj5max,$min5step,$maj5step) = 
-		$this->CalcTicks($maxsteps,$min,$max,2,5);		
-	}
-	else {
-	    $adj5min=$min;
-	    $adj5max=$max;
-	    list($num5steps,$min5step,$maj5step) = 
-		$this->CalcTicksFreeze($maxsteps,$min,$max,2,5,false);
-	}
-
-	// Check to see whichof 1:s, 2:s or 5:s fit better with
-	// the requested number of major ticks		
-	$match1=abs($num1steps-$maxsteps);		
-	$match2=abs($num2steps-$maxsteps);
-	$match5=abs($num5steps-$maxsteps);
-	// Compare these three values and see which is the closest match
-	// We use a 0.8 weight to gravitate towards multiple of 5:s 
-	$r=$this->MatchMin3($match1,$match2,$match5,0.8);
-	switch( $r ) {
-	    case 1:
-		$this->Update($img,$adj1min,$adj1max);
-		$this->ticks->Set($maj1step,$min1step);
-		break;			
-	    case 2:
-		$this->Update($img,$adj2min,$adj2max);		
-		$this->ticks->Set($maj2step,$min2step);
-		break;									
-	    case 3:
-		$this->Update($img,$adj5min,$adj5max);
-		$this->ticks->Set($maj5step,$min5step);		
-		break;			
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    // This method recalculates all constants that are depending on the
-    // margins in the image. If the margins in the image are changed
-    // this method should be called for every scale that is registred with
-    // that image. Should really be installed as an observer of that image.
-    function InitConstants(&$img) {
-	if( $this->type=="x" ) {
-	    $this->world_abs_size=$img->width - $img->left_margin - $img->right_margin;
-	    $this->off=$img->left_margin;
-	    $this->scale_factor = 0;
-	    if( $this->world_size > 0 )
-		$this->scale_factor=$this->world_abs_size/($this->world_size*1.0);
-	}
-	else { // y scale
-	    $this->world_abs_size=$img->height - $img->top_margin - $img->bottom_margin; 
-	    $this->off=$img->top_margin+$this->world_abs_size;			
-	    $this->scale_factor = 0;			
-	    if( $this->world_size > 0 ) {
-		$this->scale_factor=-$this->world_abs_size/($this->world_size*1.0);	
-	    }
-	}
-	$size = $this->world_size * $this->scale_factor;
-	$this->scale_abs=array($this->off,$this->off + $size);	
-    }
-	
-    // Initialize the conversion constants for this scale
-    // This tries to pre-calculate as much as possible to speed up the
-    // actual conversion (with Translate()) later on
-    // $start	=scale start in absolute pixels (for x-scale this is an y-position
-    //				 and for an y-scale this is an x-position
-    // $len 		=absolute length in pixels of scale 			
-    function SetConstants($aStart,$aLen) {
-	$this->world_abs_size=$aLen;
-	$this->off=$aStart;
-		
-	if( $this->world_size<=0 ) {
-	    // This should never ever happen !!
-	    JpGraphError::RaiseL(25074);
-//("You have unfortunately stumbled upon a bug in JpGraph. It seems like the scale range is ".$this->world_size." [for ".$this->type." scale] <br> Please report Bug #01 to jpgraph@aditus.nu and include the script that gave this error. This problem could potentially be caused by trying to use \"illegal\" values in the input data arrays (like trying to send in strings or only NULL values) which causes the autoscaling to fail.");
-
-	}
-		
-	// scale_factor = number of pixels per world unit
-	$this->scale_factor=$this->world_abs_size/($this->world_size*1.0);
-		
-	// scale_abs = start and end points of scale in absolute pixels
-	$this->scale_abs=array($this->off,$this->off+$this->world_size*$this->scale_factor);		
-    }
-	
-	
-    // Calculate number of ticks steps with a specific division
-    // $a is the divisor of 10**x to generate the first maj tick intervall
-    // $a=1, $b=2 give major ticks with multiple of 10, ...,0.1,1,10,...
-    // $a=5, $b=2 give major ticks with multiple of 2:s ...,0.2,2,20,...
-    // $a=2, $b=5 give major ticks with multiple of 5:s ...,0.5,5,50,...
-    // We return a vector of
-    // 	[$numsteps,$adjmin,$adjmax,$minstep,$majstep]
-    // If $majend==true then the first and last marks on the axis will be major
-    // labeled tick marks otherwise it will be adjusted to the closest min tick mark
-    function CalcTicks($maxsteps,$min,$max,$a,$b,$majend=true) {
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    $ld=0;
-	else
-	    $ld=floor(log10($diff));
-
-	// Gravitate min towards zero if we are close		
-	if( $min>0 && $min < pow(10,$ld) ) $min=0;
-		
-	//$majstep=pow(10,$ld-1)/$a; 
-	$majstep=pow(10,$ld)/$a; 
-	$minstep=$majstep/$b;
-	
-	$adjmax=ceil($max/$minstep)*$minstep;
-	$adjmin=floor($min/$minstep)*$minstep;	
-	$adjdiff = $adjmax-$adjmin;
-	$numsteps=$adjdiff/$majstep; 
-	
-	while( $numsteps>$maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=$adjdiff/$majstep;
-	    ++$ld;
-	}
-
-	$minstep=$majstep/$b;
-	$adjmin=floor($min/$minstep)*$minstep;	
-	$adjdiff = $adjmax-$adjmin;		
-	if( $majend ) {
-	    $adjmin = floor($min/$majstep)*$majstep;	
-	    $adjdiff = $adjmax-$adjmin;		
-	    $adjmax = ceil($adjdiff/$majstep)*$majstep+$adjmin;
-	}
-	else
-	    $adjmax=ceil($max/$minstep)*$minstep;
-
-	return array($numsteps,$adjmin,$adjmax,$minstep,$majstep);
-    }
-
-    function CalcTicksFreeze($maxsteps,$min,$max,$a,$b) {
-	// Same as CalcTicks but don't adjust min/max values
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    $ld=0;
-	else
-	    $ld=floor(log10($diff));
-
-	//$majstep=pow(10,$ld-1)/$a; 
-	$majstep=pow(10,$ld)/$a; 
-	$minstep=$majstep/$b;
-	$numsteps=floor($diff/$majstep); 
-	
-	while( $numsteps > $maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=floor($diff/$majstep);
-	    ++$ld;
-	}
-	$minstep=$majstep/$b;
-	return array($numsteps,$minstep,$majstep);
-    }
-
-	
-    function IntCalcTicks($maxsteps,$min,$max,$a,$majend=true) {
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    JpGraphError::RaiseL(25075);//('Can\'t automatically determine ticks since min==max.');
-	else
-	    $ld=floor(log10($diff));
-		
-	// Gravitate min towards zero if we are close		
-	if( $min>0 && $min < pow(10,$ld) ) $min=0;
-		
-	if( $ld == 0 ) $ld=1;
-	
-	if( $a == 1 ) 
-	    $majstep = 1;
-	else
-	    $majstep=pow(10,$ld)/$a; 
-	$adjmax=ceil($max/$majstep)*$majstep;
-
-	$adjmin=floor($min/$majstep)*$majstep;	
-	$adjdiff = $adjmax-$adjmin;
-	$numsteps=$adjdiff/$majstep; 
-	while( $numsteps>$maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=$adjdiff/$majstep;
-	    ++$ld;
-	}
-		
-	$adjmin=floor($min/$majstep)*$majstep;	
-	$adjdiff = $adjmax-$adjmin;		
-	if( $majend ) {
-	    $adjmin = floor($min/$majstep)*$majstep;	
-	    $adjdiff = $adjmax-$adjmin;		
-	    $adjmax = ceil($adjdiff/$majstep)*$majstep+$adjmin;
-	}
-	else
-	    $adjmax=ceil($max/$majstep)*$majstep;
-			
-	return array($numsteps,$adjmin,$adjmax,$majstep);		
-    }
-
-
-    function IntCalcTicksFreeze($maxsteps,$min,$max,$a) {
-	// Same as IntCalcTick but don't change min/max values
-	$diff=$max-$min; 
-	if( $diff==0 )
-	    JpGraphError::RaiseL(25075);//('Can\'t automatically determine ticks since min==max.');
-	else
-	    $ld=floor(log10($diff));
-		
-	if( $ld == 0 ) $ld=1;
-	
-	if( $a == 1 ) 
-	    $majstep = 1;
-	else
-	    $majstep=pow(10,$ld)/$a; 
-
-	$numsteps=floor($diff/$majstep); 
-	while( $numsteps > $maxsteps ) {
-	    $majstep=pow(10,$ld)/$a; 
-	    $numsteps=floor($diff/$majstep);
-	    ++$ld;
-	}
-					
-	return array($numsteps,$majstep);		
-    }
-
-
-	
-    // Determine the minimum of three values witha  weight for last value
-    function MatchMin3($a,$b,$c,$weight) {
-	if( $a < $b ) {
-	    if( $a < ($c*$weight) ) 
-		return 1; // $a smallest
-	    else 
-		return 3; // $c smallest
-	}
-	elseif( $b < ($c*$weight) ) 
-	    return 2; // $b smallest
-	return 3; // $c smallest
-    }
-} // Class
-//===================================================
-// CLASS ImgStreamCache
-// Description: Handle caching of graphs to files
-//===================================================
-class ImgStreamCache {
-    var $cache_dir;
-    var $img=null;
-    var $timeout=0; 	// Infinite timeout
-    //---------------
-    // CONSTRUCTOR
-    function ImgStreamCache(&$aImg, $aCacheDir=CACHE_DIR) {
-	$this->img = &$aImg;
-	$this->cache_dir = $aCacheDir;
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // Specify a timeout (in minutes) for the file. If the file is older then the
-    // timeout value it will be overwritten with a newer version.
-    // If timeout is set to 0 this is the same as infinite large timeout and if
-    // timeout is set to -1 this is the same as infinite small timeout
-    function SetTimeout($aTimeout) {
-	$this->timeout=$aTimeout;	
-    }
-	
-    // Output image to browser and also write it to the cache
-    function PutAndStream(&$aImage,$aCacheFileName,$aInline,$aStrokeFileName) {
-	// Some debugging code to brand the image with numbe of colors
-	// used
-	GLOBAL $gJpgBrandTiming;
-	
-	if( $gJpgBrandTiming ) {
-	    global $tim;
-	    $t=$tim->Pop()/1000.0;
-	    $c=$aImage->SetColor("black");
-	    $t=sprintf(BRAND_TIME_FORMAT,round($t,3));
-	    imagestring($this->img->img,2,5,$this->img->height-20,$t,$c);			
-	}
-
-	// Check if we should stroke the image to an arbitrary file
-	if( _FORCE_IMGTOFILE ) {
-	    $aStrokeFileName = _FORCE_IMGDIR.GenImgName();
-	}
-
-	if( $aStrokeFileName!="" ) {
-	    if( $aStrokeFileName == "auto" )
-		$aStrokeFileName = GenImgName();
-	    if( file_exists($aStrokeFileName) ) {
-		// Delete the old file
-		if( !@unlink($aStrokeFileName) )
-		    JpGraphError::RaiseL(25111,$aStrokeFileName);//(" Can't delete cached image $aStrokeFileName. Permission problem?");
-	    }
-	    $aImage->Stream($aStrokeFileName);
-	    return;
-	}
-
-	if( $aCacheFileName != "" && USE_CACHE) {
-
-	    $aCacheFileName = $this->cache_dir . $aCacheFileName;
-	    if( file_exists($aCacheFileName) ) {
-		if( !$aInline ) {
-		    // If we are generating image off-line (just writing to the cache)
-		    // and the file exists and is still valid (no timeout)
-		    // then do nothing, just return.
-		    $diff=time()-filemtime($aCacheFileName);
-		    if( $diff < 0 )
-			JpGraphError::RaiseL(25112,$aCacheFileName);//(" Cached imagefile ($aCacheFileName) has file date in the future!!");
-		    if( $this->timeout>0 && ($diff <= $this->timeout*60) ) 
-			return;		
-		}			
-		if( !@unlink($aCacheFileName) )
-		    JpGraphError::RaiseL(25113,$aStrokeFileName);//(" Can't delete cached image $aStrokeFileName. Permission problem?");
-		$aImage->Stream($aCacheFileName);	
-	    }
-	    else {
-		$this->MakeDirs(dirname($aCacheFileName));
-		if( !is_writeable(dirname($aCacheFileName)) ) {
-		    JpGraphError::RaiseL(25114,$aCacheFileName);//('PHP has not enough permissions to write to the cache file '.$aCacheFileName.'. Please make sure that the user running PHP has write permission for this file if you wan to use the cache system with JpGraph.');
-		}
-		$aImage->Stream($aCacheFileName);
-	    }
-			
-	    $res=true;
-	    // Set group to specified
-	    if( CACHE_FILE_GROUP != "" )
-		$res = @chgrp($aCacheFileName,CACHE_FILE_GROUP);
-	    if( CACHE_FILE_MOD != "" )
-		$res = @chmod($aCacheFileName,CACHE_FILE_MOD);
-	    if( !$res )
-		JpGraphError::RaiseL(25115,$aStrokeFileName);//(" Can't set permission for cached image $aStrokeFileName. Permission problem?");
-			
-	    $aImage->Destroy();
-	    if( $aInline ) {
-		if ($fh = @fopen($aCacheFileName, "rb") ) {
-		    $this->img->Headers();
-		    fpassthru($fh);
-		    return;
-		}
-		else
-		    JpGraphError::RaiseL(25116,$aFile);//(" Cant open file from cache [$aFile]"); 
-	    }
-	}
-	elseif( $aInline ) {
-	    $this->img->Headers();	 		
-	    $aImage->Stream();	
-	    return;
-	}
-    }
-	
-    // Check if a given image is in cache and in that case
-    // pass it directly on to web browser. Return false if the
-    // image file doesn't exist or exists but is to old
-    function GetAndStream($aCacheFileName) {
-	$aCacheFileName = $this->cache_dir.$aCacheFileName;		 
-	if ( USE_CACHE && file_exists($aCacheFileName) && $this->timeout>=0 ) {
-	    $diff=time()-filemtime($aCacheFileName);
-	    if( $this->timeout>0 && ($diff > $this->timeout*60) ) {
-		return false;		
-	    }
-	    else {
-		if ($fh = @fopen($aCacheFileName, "rb")) {
-		    $this->img->Headers();
-		    fpassthru($fh);
-		    return true;
-		}
-		else
-		    JpGraphError::RaiseL(25117,$aCacheFileName);//(" Can't open cached image \"$aCacheFileName\" for reading.");
-	    }
-	} 
-	return false;
-    }
-	
-    //---------------
-    // PRIVATE METHODS	
-    // Create all necessary directories in a path
-    function MakeDirs($aFile) {
-	$dirs = array();
-	while ( !(file_exists($aFile)) ) {
-	    $dirs[] = $aFile;
-	    $aFile = dirname($aFile);
-	}
-	for ($i = sizeof($dirs)-1; $i>=0; $i--) {
-	    if(! @mkdir($dirs[$i],0777) )
-		JpGraphError::RaiseL(25118,$aFile);//(" Can't create directory $aFile. Make sure PHP has write permission to this directory.");
-	    // We also specify mode here after we have changed group. 
-	    // This is necessary if Apache user doesn't belong the
-	    // default group and hence can't specify group permission
-	    // in the previous mkdir() call
-	    if( CACHE_FILE_GROUP != "" ) {
-		$res=true;
-		$res =@chgrp($dirs[$i],CACHE_FILE_GROUP);
-		$res &= @chmod($dirs[$i],0777);
-		if( !$res )
-		    JpGraphError::RaiseL(25119,$aFile);//(" Can't set permissions for $aFile. Permission problems?");
-	    }
-	}
-	return true;
-    }	
-} // CLASS Cache
-	
-//===================================================
-// CLASS Legend
-// Description: Responsible for drawing the box containing
-// all the legend text for the graph
-//===================================================
-DEFINE('_DEFAULT_LPM_SIZE',8);
-class Legend {
-    var $color=array(0,0,0); // Default fram color
-    var $fill_color=array(235,235,235); // Default fill color
-    var $shadow=true; // Shadow around legend "box"
-    var $shadow_color='gray';
-    var $txtcol=array();
-    var $mark_abs_hsize=_DEFAULT_LPM_SIZE, $mark_abs_vsize=_DEFAULT_LPM_SIZE;
-    var $xmargin=10,$ymargin=3,$shadow_width=2;
-    var $xlmargin=2, $ylmargin='';
-    var $xpos=0.05, $ypos=0.15, $xabspos=-1, $yabspos=-1;
-	var $halign="right", $valign="top";
-    var $font_family=FF_FONT1,$font_style=FS_NORMAL,$font_size=10;
-    var $font_color='black';
-    var $hide=false,$layout_n=1;
-    var $weight=1,$frameweight=1;
-    var $csimareas='';
-    var $reverse = false ;
-//---------------
-// CONSTRUCTOR
-    function Legend() {
-	// Empty
-    }
-//---------------
-// PUBLIC METHODS	
-    function Hide($aHide=true) {
-	$this->hide=$aHide;
-    }
-	
-    function SetHColMargin($aXMarg) {
-	$this->xmargin = $aXMarg;
-    }
-
-    function SetVColMargin($aSpacing) {
-	$this->ymargin = $aSpacing ;
-    }
-
-    function SetLeftMargin($aXMarg) {
-	$this->xlmargin = $aXMarg;
-    }
-
-    // Synonym
-    function SetLineSpacing($aSpacing) {
-	$this->ymargin = $aSpacing ;
-    }
-
-    function SetShadow($aShow='gray',$aWidth=2) {
-	if( is_string($aShow) ) {
-	    $this->shadow_color = $aShow;
-	    $this->shadow=true;
-	}
-	else
-	    $this->shadow=$aShow;
-	$this->shadow_width=$aWidth;
-    }
-
-    function SetMarkAbsSize($aSize) {
-	$this->mark_abs_vsize = $aSize ;
-	$this->mark_abs_hsize = $aSize ;
-    }
-
-    function SetMarkAbsVSize($aSize) {
-	$this->mark_abs_vsize = $aSize ;
-    }
-
-    function SetMarkAbsHSize($aSize) {
-	$this->mark_abs_hsize = $aSize ;
-    }
-
-    function SetLineWeight($aWeight) {
-	$this->weight = $aWeight;
-    }
-
-    function SetFrameWeight($aWeight) {
-	$this->frameweight = $aWeight;
-    }
-	
-    function SetLayout($aDirection=LEGEND_VERT) {
-	$this->layout_n = $aDirection==LEGEND_VERT ? 1 : 99 ;
-    }
-	
-    function SetColumns($aCols) {
-	$this->layout_n = $aCols ;
-    }
-
-    function SetReverse($f=true) {
-	$this->reverse = $f ;
-    }
-
-    // Set color on frame around box
-    function SetColor($aFontColor,$aColor='black') {
-	$this->font_color=$aFontColor;
-	$this->color=$aColor;
-    }
-	
-    function SetFont($aFamily,$aStyle=FS_NORMAL,$aSize=10) {
-	$this->font_family = $aFamily;
-	$this->font_style = $aStyle;
-	$this->font_size = $aSize;
-    }
-	
-    function SetPos($aX,$aY,$aHAlign="right",$aVAlign="top") {
-	$this->Pos($aX,$aY,$aHAlign,$aVAlign);
-    }
-
-    function SetAbsPos($aX,$aY,$aHAlign="right",$aVAlign="top") {
-	$this->xabspos=$aX;
-	$this->yabspos=$aY;
-	$this->halign=$aHAlign;
-	$this->valign=$aVAlign;
-    }
-
-
-    function Pos($aX,$aY,$aHAlign="right",$aVAlign="top") {
-	if( !($aX<1 && $aY<1) )
-	    JpGraphError::RaiseL(25120);//(" Position for legend must be given as percentage in range 0-1");
-	$this->xpos=$aX;
-	$this->ypos=$aY;
-	$this->halign=$aHAlign;
-	$this->valign=$aVAlign;
-    }
-
-    function SetFillColor($aColor) {
-	$this->fill_color=$aColor;
-    }
-	
-    function Add($aTxt,$aColor,$aPlotmark="",$aLinestyle=0,$csimtarget="",$csimalt="") {
-	$this->txtcol[]=array($aTxt,$aColor,$aPlotmark,$aLinestyle,$csimtarget,$csimalt);
-    }
-
-    function GetCSIMAreas() {
-	return $this->csimareas;
-    }
-	
-    function Stroke(&$aImg) {
-	// Constant
-	$fillBoxFrameWeight=1;
-
-	if( $this->hide ) return;
-
-	$aImg->SetFont($this->font_family,$this->font_style,$this->font_size);		
-
-	if( $this->reverse ) {
-	    $this->txtcol = array_reverse($this->txtcol);
-	}
-
-	$n=count($this->txtcol);
-	if( $n == 0 ) return;
-
-	// Find out the max width and height of each column to be able
-        // to size the legend box.
-	$numcolumns = ($n > $this->layout_n ? $this->layout_n : $n);
-	for( $i=0; $i < $numcolumns; ++$i ) {
-	    $colwidth[$i] = $aImg->GetTextWidth($this->txtcol[$i][0]) +
-		            2*$this->xmargin + 2*$this->mark_abs_hsize;
-	    $colheight[$i] = 0;
-	}
-
-	// Find our maximum height in each row
-	$rows = 0 ; $rowheight[0] = 0;
-	for( $i=0; $i < $n; ++$i ) {
-	    $h = max($this->mark_abs_vsize,$aImg->GetTextHeight($this->txtcol[$i][0]))+$this->ymargin;
-	    if( $i % $numcolumns == 0 ) {
-		$rows++;
-		$rowheight[$rows-1] = 0;
-	    }
-	    $rowheight[$rows-1] = max($rowheight[$rows-1],$h);
-	}
-
-	$abs_height = 0;
-	for( $i=0; $i < $rows; ++$i ) {
-	    $abs_height += $rowheight[$i] ;
-	}
-
-	// Make sure that the height is at least as high as mark size + ymargin
-	$abs_height = max($abs_height,$this->mark_abs_vsize);
-
-	// We add 3 extra pixels height to compensate for the difficult in
-	// calculating font height
-	$abs_height += $this->ymargin+3; 
-						
-	// Find out the maximum width in each column
-	for( $i=$numcolumns; $i < $n; ++$i ) {
-	    $colwidth[$i % $numcolumns] = max(
-		$aImg->GetTextWidth($this->txtcol[$i][0])+2*$this->xmargin+2*$this->mark_abs_hsize,$colwidth[$i % $numcolumns]);
-	}
-
-	// Get the total width
-	$mtw = 0;
-	for( $i=0; $i < $numcolumns; ++$i ) {
-	    $mtw += $colwidth[$i] ;
-	}
-
-	// Find out maximum width we need for legend box
-	$abs_width = $mtw+$this->xlmargin;
-
-	if( $this->xabspos === -1  && $this->yabspos === -1 ) {
-	    $this->xabspos = $this->xpos*$aImg->width ;
-	    $this->yabspos = $this->ypos*$aImg->height ;
-	}
-
-	// Positioning of the legend box
-	if( $this->halign=="left" )
-	    $xp = $this->xabspos; 
-	elseif( $this->halign=="center" )
-	    $xp = $this->xabspos - $abs_width/2; 
-	else  
-	    $xp = $aImg->width - $this->xabspos - $abs_width;
-
-	$yp=$this->yabspos;
-	if( $this->valign=="center" )
-	    $yp-=$abs_height/2;
-	elseif( $this->valign=="bottom" )
-	    $yp-=$abs_height;
-			
-	// Stroke legend box
-	$aImg->SetColor($this->color);	
-	$aImg->SetLineWeight($this->frameweight);
-	$aImg->SetLineStyle('solid');
-
-	if( $this->shadow )
-	    $aImg->ShadowRectangle($xp,$yp,$xp+$abs_width+$this->shadow_width,
-				   $yp+$abs_height+$this->shadow_width,
-				   $this->fill_color,$this->shadow_width,$this->shadow_color);
-	else {
-	    $aImg->SetColor($this->fill_color);				
-	    $aImg->FilledRectangle($xp,$yp,$xp+$abs_width,$yp+$abs_height);
-	    $aImg->SetColor($this->color);							
-	    $aImg->Rectangle($xp,$yp,$xp+$abs_width,$yp+$abs_height);
-	}
-
-	// x1,y1 is the position for the legend mark
-	$x1=$xp+$this->mark_abs_hsize+$this->xlmargin;
-	$y1=$yp + $this->ymargin;		
-	
-	$f2 =  round($aImg->GetTextHeight('X')/2);
-
-	$grad = new Gradient($aImg);
-	$patternFactory = null;
-
-	// Now stroke each legend in turn
-	// Each plot has added the following information to  the legend
-	// p[0] = Legend text
-	// p[1] = Color, 
-	// p[2] = For markers a reference to the PlotMark object
-	// p[3] = For lines the line style, for gradient the negative gradient style
-	// p[4] = CSIM target
-	// p[5] = CSIM Alt text
-	$i = 1 ; $row = 0;
-	foreach($this->txtcol as $p) {
-	 
-	    // STROKE DEBUG BOX
-	    if( _JPG_DEBUG ) {
-	        $aImg->SetLineWeight(1);
-	        $aImg->SetColor('red');
-	        $aImg->SetLineStyle('solid');
-	        $aImg->Rectangle($xp,$y1,$xp+$abs_width,$y1+$rowheight[$row]);
-	    }
-
-	    $aImg->SetLineWeight($this->weight);
-	    $x1 = round($x1); $y1=round($y1);
-	    if ( $p[2] && $p[2]->GetType() > -1 ) {
-		// Make a plot mark legend
-		$aImg->SetColor($p[1]);
-		if( is_string($p[3]) || $p[3]>0 ) {
-		    $aImg->SetLineStyle($p[3]);
-		    $aImg->StyleLine($x1-$this->mark_abs_hsize,$y1+$f2,$x1+$this->mark_abs_hsize,$y1+$f2);
-		}
-		// Stroke a mark with the standard size
-		// (As long as it is not an image mark )
-		if( $p[2]->GetType() != MARK_IMG ) {
-		    $p[2]->iFormatCallback = '';
-
-		    // Since size for circles is specified as the radius
-		    // this means that we must half the size to make the total
-		    // width behave as the other marks
-		    if( $p[2]->GetType() == MARK_FILLEDCIRCLE || $p[2]->GetType() == MARK_CIRCLE ) {
-		        $p[2]->SetSize(min($this->mark_abs_vsize,$this->mark_abs_hsize)/2);
-			$p[2]->Stroke($aImg,$x1,$y1+$f2);
-		    }
-		    else {
-		        $p[2]->SetSize(min($this->mark_abs_vsize,$this->mark_abs_hsize));
-			$p[2]->Stroke($aImg,$x1,$y1+$f2);
-		    }
-		}
-	    } 
-	    elseif ( $p[2] && (is_string($p[3]) || $p[3]>0 ) ) {
-		// Draw a styled line
-		$aImg->SetColor($p[1]);
-		$aImg->SetLineStyle($p[3]);
-		$aImg->StyleLine($x1-1,$y1+$f2,$x1+$this->mark_abs_hsize,$y1+$f2);
-		$aImg->StyleLine($x1-1,$y1+$f2+1,$x1+$this->mark_abs_hsize,$y1+$f2+1);
-	    } 
-	    else {
-		// Draw a colored box
-		$color = $p[1] ;
-		// We make boxes slightly larger to better show
-		$boxsize = min($this->mark_abs_vsize,$this->mark_abs_hsize) + 2 ;
-		$ym =  round($y1 + $f2 - $boxsize/2);
-		// We either need to plot a gradient or a 
-		// pattern. To differentiate we use a kludge.
-		// Patterns have a p[3] value of < -100
-		if( $p[3] < -100 ) { 
-		    // p[1][0] == iPattern, p[1][1] == iPatternColor, p[1][2] == iPatternDensity
-		    if( $patternFactory == null ) {
-			$patternFactory = new RectPatternFactory();
-		    }
-		    $prect = $patternFactory->Create($p[1][0],$p[1][1],1);
-		    $prect->SetBackground($p[1][3]);
-		    $prect->SetDensity($p[1][2]+1);
-		    $prect->SetPos(new Rectangle($x1,$ym,$boxsize,$boxsize));
-		    $prect->Stroke($aImg);
-		    $prect=null;
-		}
-		else {
-		    if( is_array($color) && count($color)==2 ) {
-			// The client want a gradient color
-			$grad->FilledRectangle($x1,$ym,
-					       $x1+$boxsize,$ym+$boxsize,
-					       $color[0],$color[1],-$p[3]);
-		    }
-		    else {
-			$aImg->SetColor($p[1]);
-			$aImg->FilledRectangle($x1,$ym,$x1+$boxsize,$ym+$boxsize);
-		    }
-		    $aImg->SetColor($this->color);
-		    $aImg->SetLineWeight($fillBoxFrameWeight);
-		    $aImg->Rectangle($x1,$ym,$x1+$boxsize,$ym+$boxsize);
-		}
-	    }
-	    $aImg->SetColor($this->font_color);
-	    $aImg->SetFont($this->font_family,$this->font_style,$this->font_size);		
-	    $aImg->SetTextAlign("left","top");			
-	    $aImg->StrokeText(round($x1+$this->mark_abs_hsize+$this->xmargin),$y1,$p[0]);
-
-	    // Add CSIM for Legend if defined
-	    if( $p[4] != "" ) {
-		$xe = $x1 + $this->xmargin+$this->mark_abs_hsize+$aImg->GetTextWidth($p[0]);
-		$ye = $y1 + max($this->mark_abs_vsize,$aImg->GetTextHeight($p[0]));
-		$coords = "$x1,$y1,$xe,$y1,$xe,$ye,$x1,$ye";
-		if( ! empty($p[4]) ) {
-		    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".htmlentities($p[4])."\"";
-		    if( !empty($p[5]) ) {
-			$tmp=sprintf($p[5],$p[0]);
-			$this->csimareas .= " title=\"$tmp\"";
-		    }
-		    $this->csimareas .= " alt=\"\" />\n";
-		}
-	    }
-	    if( $i >= $this->layout_n ) {
-		$x1 = $xp+$this->mark_abs_hsize+$this->xlmargin;
-		$y1 += $rowheight[$row++];
-		$i = 1;
-	    }
-	    else {
-		$x1 += $colwidth[($i-1) % $numcolumns] ;
-		++$i;
-	    }
-	}
-    }
-} // Class
-	
-
-//===================================================
-// CLASS DisplayValue
-// Description: Used to print data values at data points
-//===================================================
-class DisplayValue {
-    var $show=false,$format="%.1f",$negformat="";
-    var $iFormCallback='';
-    var $angle=0;
-    var $ff=FF_FONT1,$fs=FS_NORMAL,$fsize=10;
-    var $color="navy",$negcolor="";
-    var $margin=5,$valign="",$halign="center";
-    var $iHideZero=false;
-
-    function Show($aFlag=true) {
-	$this->show=$aFlag;
-    }
-
-    function SetColor($aColor,$aNegcolor="") {
-	$this->color = $aColor;
-	$this->negcolor = $aNegcolor;
-    }
-
-    function SetFont($aFontFamily,$aFontStyle=FS_NORMAL,$aFontSize=10) {
-	$this->ff=$aFontFamily;
-	$this->fs=$aFontStyle;
-	$this->fsize=$aFontSize;
-    }
-
-    function SetMargin($aMargin) {
-	$this->margin = $aMargin;
-    }
-
-    function SetAngle($aAngle) {
-	$this->angle = $aAngle;
-    }
-
-    function SetAlign($aHAlign,$aVAlign='') {
-	$this->halign = $aHAlign;
-	$this->valign = $aVAlign;
-    }
-
-    function SetFormat($aFormat,$aNegFormat="") {
-	$this->format= $aFormat;
-	$this->negformat= $aNegFormat;
-    }
-
-    function SetFormatCallback($aFunc) {
-	$this->iFormCallback = $aFunc;
-    }
-
-    function HideZero($aFlag=true) {
-	$this->iHideZero=$aFlag;
-    }
-
-    function Stroke(&$img,$aVal,$x,$y) {
-	
-	if( $this->show ) 
-	{
-	    if( $this->negformat=="" ) $this->negformat=$this->format;
-	    if( $this->negcolor=="" ) $this->negcolor=$this->color;
-
-	    if( $aVal===NULL || (is_string($aVal) && ($aVal=="" || $aVal=="-" || $aVal=="x" ) ) ) 
-		return;
-
-	    if( is_numeric($aVal) && $aVal==0 && $this->iHideZero ) {
-		return;
-	    }
-
-	    // Since the value is used in different cirumstances we need to check what
-	    // kind of formatting we shall use. For example, to display values in a line
-	    // graph we simply display the formatted value, but in the case where the user
-	    // has already specified a text string we don't fo anything.
-	    if( $this->iFormCallback != '' ) {
-		$f = $this->iFormCallback;
-		$sval = call_user_func($f,$aVal);
-	    }
-	    elseif( is_numeric($aVal) ) {
-		if( $aVal >= 0 )
-		    $sval=sprintf($this->format,$aVal);
-		else
-		    $sval=sprintf($this->negformat,$aVal);
-	    }
-	    else
-		$sval=$aVal;
-
-	    $y = $y-sign($aVal)*$this->margin;
-
-	    $txt = new Text($sval,$x,$y);
-	    $txt->SetFont($this->ff,$this->fs,$this->fsize);
-	    if( $this->valign == "" ) {
-		if( $aVal >= 0 )
-		    $valign = "bottom";
-		else
-		    $valign = "top";
-	    }
-	    else
-		$valign = $this->valign;
-	    $txt->Align($this->halign,$valign);
-
-	    $txt->SetOrientation($this->angle);
-	    if( $aVal > 0 )
-		$txt->SetColor($this->color);
-	    else
-		$txt->SetColor($this->negcolor);
-	    $txt->Stroke($img);
-	}
-    }
-}
-
-//===================================================
-// CLASS Plot
-// Description: Abstract base class for all concrete plot classes
-//===================================================
-class Plot {
-    var $line_weight=1;
-    var $coords=array();
-    var $legend='',$hidelegend=false;
-    var $csimtargets=array();	// Array of targets for CSIM
-    var $csimareas="";			// Resultant CSIM area tags	
-    var $csimalts=null;			// ALT:s for corresponding target
-    var $color="black";
-    var $numpoints=0;
-    var $weight=1;	
-    var $value;
-    var $center=false;
-    var $legendcsimtarget='';
-    var $legendcsimalt='';
-//---------------
-// CONSTRUCTOR
-    function Plot(&$aDatay,$aDatax=false) {
-	$this->numpoints = count($aDatay);
-	if( $this->numpoints==0 )
-	    JpGraphError::RaiseL(25121);//("Empty input data array specified for plot. Must have at least one data point.");
-	$this->coords[0]=$aDatay;
-	if( is_array($aDatax) ) {
-	    $this->coords[1]=$aDatax;
-	    $n = count($aDatax);
-	    for($i=0; $i < $n; ++$i ) {
-		if( is_string($aDatax[$i]) ) {
-		    JpGraphError::RaiseL(25070);
-		}
-	    }
-	}
-	$this->value = new DisplayValue();
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // Stroke the plot
-    // "virtual" function which must be implemented by
-    // the subclasses
-    function Stroke(&$aImg,&$aXScale,&$aYScale) {
-	JpGraphError::RaiseL(25122);//("JpGraph: Stroke() must be implemented by concrete subclass to class Plot");
-    }
-
-    function HideLegend($f=true) {
-	$this->hidelegend = $f;
-    }
-
-    function DoLegend(&$graph) {
-	if( !$this->hidelegend )
-	    $this->Legend($graph);
-    }
-
-    function StrokeDataValue($img,$aVal,$x,$y) {
-	$this->value->Stroke($img,$aVal,$x,$y);
-    }
-	
-    // Set href targets for CSIM	
-    function SetCSIMTargets($aTargets,$aAlts=null) {
-	$this->csimtargets=$aTargets;
-	$this->csimalts=$aAlts;		
-    }
- 	
-    // Get all created areas
-    function GetCSIMareas() {
-	return $this->csimareas;
-    }	
-	
-    // "Virtual" function which gets called before any scale
-    // or axis are stroked used to do any plot specific adjustment
-    function PreStrokeAdjust(&$aGraph) {
-	if( substr($aGraph->axtype,0,4) == "text" && (isset($this->coords[1])) )
-	    JpGraphError::RaiseL(25123);//("JpGraph: You can't use a text X-scale with specified X-coords. Use a \"int\" or \"lin\" scale instead.");
-	return true;	
-    }
-	
-    // Get minimum values in plot
-    function Min() {
-	if( isset($this->coords[1]) )
-	    $x=$this->coords[1];
-	else
-	    $x="";
-	if( $x != "" && count($x) > 0 ) {
-	    $xm=min($x);
-	}
-	else 
-	    $xm=0;
-	$y=$this->coords[0];
-	$cnt = count($y);
-	if( $cnt > 0 ) {
-	    /*
-	    if( ! isset($y[0]) ) {
-		JpGraphError('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)');
-	    }
-	    */
-	    //$ym = $y[0];
-	    $i=0;
-	    while( $i<$cnt && !is_numeric($ym=$y[$i]) )
-		$i++;
-	    while( $i < $cnt) {
-		if( is_numeric($y[$i]) ) 
-		    $ym=min($ym,$y[$i]);
-		++$i;
-	    }			
-	}
-	else 
-	    $ym="";
-	return array($xm,$ym);
-    }
-	
-    // Get maximum value in plot
-    function Max() {
-	if( isset($this->coords[1]) )
-	    $x=$this->coords[1];
-	else
-	    $x="";
-
-	if( $x!="" && count($x) > 0 )
-	    $xm=max($x);
-	else {
-	    $xm = $this->numpoints-1;
-	}
-	$y=$this->coords[0];
-	if( count($y) > 0 ) {
-	    /*
-	    if( !isset($y[0]) ) {
-		JpGraphError::Raise('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)');
-		//$y[0] = 0;
-// Change in 1.5.1 Don't treat this as an error any more. Just silently convert to 0
-// Change in 1.17 Treat his as an error again !! This is the right way to do !!
-	    }
-	    */
-	    $cnt = count($y);
-	    $i=0;
-	    while( $i<$cnt && !is_numeric($ym=$y[$i]) )
-		$i++;				
-	    while( $i < $cnt ) {
-		if( is_numeric($y[$i]) ) 
-		    $ym=max($ym,$y[$i]);
-		++$i;
-	    }
-	    
-	}
-	else 
-	    $ym="";
-	return array($xm,$ym);
-    }
-	
-    function SetColor($aColor) {
-	$this->color=$aColor;
-    }
-	
-    function SetLegend($aLegend,$aCSIM="",$aCSIMAlt="") {
-	$this->legend = $aLegend;
-	$this->legendcsimtarget = $aCSIM;
-	$this->legendcsimalt = $aCSIMAlt;
-    }
-
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-		
-    function SetLineWeight($aWeight=1) {
-	$this->line_weight=$aWeight;
-    }
-	
-    function SetCenter($aCenter=true) {
-	$this->center = $aCenter;
-    }
-	
-    // This method gets called by Graph class to plot anything that should go
-    // into the margin after the margin color has been set.
-    function StrokeMargin(&$aImg) {
-	return true;
-    }
-
-    // Framework function the chance for each plot class to set a legend
-    function Legend(&$aGraph) {
-	if( $this->legend != "" )
-	    $aGraph->legend->Add($this->legend,$this->color,"",0,$this->legendcsimtarget,$this->legendcsimalt);    
-    }
-	
-} // Class
-
-
-//===================================================
-// CLASS PlotLine
-// Description: 
-// Data container class to hold properties for a static
-// line that is drawn directly in the plot area.
-// Usefull to add static borders inside a plot to show
-// for example set-values
-//===================================================
-class PlotLine {
-    var $weight=1;
-    var $color="black";
-    var $direction=-1; 
-    var $scaleposition;
-
-//---------------
-// CONSTRUCTOR
-    function PlotLine($aDir=HORIZONTAL,$aPos=0,$aColor="black",$aWeight=1) {
-	$this->direction = $aDir;
-	$this->color=$aColor;
-	$this->weight=$aWeight;
-	$this->scaleposition=$aPos;
-    }
-	
-//---------------
-// PUBLIC METHODS	
-    function SetPosition($aScalePosition) {
-	$this->scaleposition=$aScalePosition;
-    }
-	
-    function SetDirection($aDir) {
-	$this->direction = $aDir;
-    }
-	
-    function SetColor($aColor) {
-	$this->color=$aColor;
-    }
-	
-    function SetWeight($aWeight) {
-	$this->weight=$aWeight;
-    }
-
-    function PreStrokeAdjust($aGraph) {
-	// Nothing to do
-    }
-	
-    function Stroke(&$aImg,&$aXScale,&$aYScale) {
-	$aImg->SetColor($this->color);
-	$aImg->SetLineWeight($this->weight);		
-	if( $this->direction == VERTICAL ) {
-	    $ymin_abs=$aYScale->Translate($aYScale->GetMinVal());
-	    $ymax_abs=$aYScale->Translate($aYScale->GetMaxVal());
-	    $xpos_abs=$aXScale->Translate($this->scaleposition);
-	    $aImg->Line($xpos_abs, $ymin_abs, $xpos_abs, $ymax_abs);
-	}
-	elseif( $this->direction == HORIZONTAL ) {
-	    $xmin_abs=$aXScale->Translate($aXScale->GetMinVal());
-	    $xmax_abs=$aXScale->Translate($aXScale->GetMaxVal());
-	    $ypos_abs=$aYScale->Translate($this->scaleposition);
-	    $aImg->Line($xmin_abs, $ypos_abs, $xmax_abs, $ypos_abs);
-	}
-	else
-	    JpGraphError::RaiseL(25125);//(" Illegal direction for static line");
-    }
-}
-
-// <EOF>
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_antispam-digits.php b/nightly-test-server/jpgraph/jpgraph_antispam-digits.php
deleted file mode 100644
index 19251ba..0000000
--- a/nightly-test-server/jpgraph/jpgraph_antispam-digits.php
+++ /dev/null
@@ -1,205 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_ANTISPAM.PHP
-// Description:	Genarate anti-spam challenge
-// Created: 	2004-10-07
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class HandDigits {
-    var $digits_thumb30x30 = array();
-    var $iHeight=30, $iWidth=30;
-    function HandDigits() {
-//==========================================================
-// d6-small.jpg
-//==========================================================
-	$this->digits['6'][0]= 645 ;
-	$this->digits['6'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAEBAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwMC'.
-	    'BAQEBwAAAAAAAAABAgMEAAURBiESIjFRBxMUQRUWMmFTYnGRkrHC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAA'.
-	    'AAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDslwiR3oDku8ONttsAvDiVyMcO/ET7ke5/aoOz6k1Vr5htNjW7a7M1yO3NTQU9JUDu'.
-	    'GgrlSn8xyf6p4gXaHJvNps9/mKZtSkGdMjRwpfqAFBLLACRlZUrJONsI2717No1lbZ10kx7XGnRpKWQ/6GVGMfzEJ5VFIVtsOH6e'.
-	    'wyKVhYsia0y22pLThSkJK1uniVgdThOM0ol+StIUhpopIyCFq3H8aUVCwnG3PGe4Rp6fLXJtMdyM0ojcIWvIz3HFnAPfrWTXb6GN'.
-	    'WaLXDwZjVz8pKEfhuIUFg/bAz9sVJ61nt61mxJFslLtq7e5yPqiBT4UDklKw4MDpt+u+9bFiu9riXNu83R+fcr6tohuQ5HQhmK37'.
-	    'paaC8DruScmg6X8KkjZEhbaB9KEyFYSOw26Uqd+e7Qerl5z74DY/1SomP//Z' ; 
-
-//==========================================================
-// d2-small.jpg
-//==========================================================
-	$this->digits['2'][0]= 606 ;
-	$this->digits['2'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEQMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAFAAQHAv/EACsQAAEDBAEC'.
-	    'BAYDAAAAAAAAAAIBAwQABQYRIRIxQVFhcQcTFSJSU5GU0f/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAZEQACAwEAAAAAAAAA'.
-	    'AAAAAAAAARESUUH/2gAMAwEAAhEDEQA/AOqXm/Q8dxmOL4PPSnCSNFixx6nXnkXgRT3Te17JWbGsveueSyLZdbPItNxOKLzTLjou'.
-	    'gYCSoSoY8ISKSbFeUrzkdlnTL1YshskiErkQnFEZaF8kkdBBVdjyi6RNL5+9F486eS/ECVkcBtDt1vZcho5viS8ZCp9C9tAIAm/F'.
-	    'VoPRU+HRtJ5JVRP1kP0PfwP+1VKrHBMliXG4Nw8VgE4xGkuqk2S1wTUNEVdIvgpL9iL6KtNxY7WOwo9tt0RCitj0sR2uCbFPPzH1'.
-	    '7+6rRuSRcljMBMsUy2tky045KOawZk5xtEFBJEROO3hx61kh2rPCIX3MhsyC4QmfTbC6lH8dq5212qwkiG5H6Y/9R2qm+ofxqqsL'.
-	    'DLZ6f//Z' ; 
-
-//==========================================================
-// d9-small.jpg
-//==========================================================
-	$this->digits['9'][0]= 680 ;
-	$this->digits['9'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwP/xAArEAABAwMD'.
-	    'AgYBBQAAAAAAAAABAgMEBQYRABIhE1EUIjEzQUIHMlJhcdH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/xAAYEQEAAwEAAAAAAAAA'.
-	    'AAAAAAAAAREhQf/aAAwDAQACEQMRAD8AkK7brF6X7XpMeGoKhFMLEeT4ZUheEhanF4OcZ2pTgDykk92bZpdCsi7aezLjxkIPUZiV'.
-	    'RSCy8hah7EkZ27yM7V+iscal5bE22Lon1qNDmSKROd8Sl+Ix1lMOlIS4HGgQpbStoUCnlJz8HmsXtW3Lst2rmBAelLMRRekOwnYz'.
-	    'Edls9QKKnOVLyk7UgcbzzrdBthqEJJwZbAI4x1U/7o1TaFa9lG36aXaZTy54VrcXUgrzsGdx+T30aNydweqVw1GS87T6Lb86Q4ha'.
-	    'my/IAYjZBx+snKk99oOQMf1AViE65SY348hzFy6hPKnqtKz7DC1lbqyPrvJKUJ7H+M6Wrt3InP7o1brFNp4bCDGhxGAsqz69VSiQ'.
-	    'ORwBxrrQ7itm1ac7Hp0WoGTIc3PSn0pccdcP2WorycfA1RaRHjxosZqOyhtDTSAhCf2gDAGjVHTd9sKSCumynFEZK1tIJUe58/ro'.
-	    '1V1//9k=' ; 
-
-//==========================================================
-// d5-small.jpg
-//==========================================================
-	$this->digits['5'][0]= 632 ;
-	$this->digits['5'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgIFBwT/xAAoEAABAwME'.
-	    'AQQCAwAAAAAAAAABAgMEBQYRABIhIkEUMVFhBxNCgaH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/EABcRAQEBAQAAAAAAAAAAAAAA'.
-	    'AAABEUH/2gAMAwEAAhEDEQA/ANGvW4YVOeiRX5b4mv5Sin05IdlupPKdo/j2SO3+6TbPNQvOsTVz33KRT4csR3YUF7Dsh5OSFvug'.
-	    'kqG4FPBxnjxpvvi4KZb1pTpU+QwxUi2Y7ZIAefUk5ATxnB9/gbtL/wCH1UpuhPUlZlMVaQ0mS8zJjqZOPfc2TwpIUonI9tw40R1r'.
-	    'WNGq/wBdJR1XT3lqHBUnGCfkfWjRWs1ve249erQqQYjOtN1FqPUpCXQ4WIzQSsJwT0UpRwQPG0nzqyuNHobjsl9kBuWqoOoXtT1/'.
-	    'WppZcA8lKRj64HxqU+3KpAr6plElRVKef3S4E0K9O8pLXVzKcqSsJAB9wSAca6bSoNXeuA1+5pEV+SGFNU1iKVFqI0Vdx2AJUeoz'.
-	    '8DGlTDwG3CAf3q/pI0ah6MDhLz6U+EpXwPoaNMU//9k=' ; 
-
-//==========================================================
-// d1-small.jpg
-//==========================================================
-	$this->digits['1'][0]= 646 ;
-	$this->digits['1'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEwMBIgACEQEDEQH/xAAZAAADAAMAAAAAAAAAAAAAAAAABQYCBAf/xAApEAACAQMD'.
-	    'AwQBBQAAAAAAAAABAgMEBREABiESMUEHEyJRkSNCYXGB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAA'.
-	    'AAAAAAEREv/aAAwDAQACEQMRAD8A6jdd4WLbstILnc4Uq0VoWpkJknb6IjXLHJUePOlez923fcW4r1SxWlqC2UbdKirQif3Xw3yA'.
-	    'OFAGT09/kO3OmV3a20MFRf6lIYPcpy7yRRAzgxjIy2M8YwcdiBzpX6d22VNvUlTXsFkuwkrKqNSfnK7F8OTzwrAY+l5zoxKskudN'.
-	    'EgQPUT9PBkWF3DH+1GPxo1mLnRoAqF2VRgGOFmX/AAgY/GjRUP6hVMFv2FuFqUvUGrpDFJMBnpdyF5bsAQew7Hxzp6LZNT0yQ1DI'.
-	    'wp0QCFBhD0jCsfLZHxbx5xxpTuvb1+v9PV7Ztk9roLPLCjmSSN3mX5ZwqjCgZX7PfWxDQb2in96pv9qq46aTE0bW4x9ceAWAYPwS'.
-	    'PsYzoixgmheBGjIVcYCnjp/jHjHbRpe1JLn9OnopE/a0ykvjwDx47aNMXqP/2Q==' ; 
-
-//==========================================================
-// d8-small.jpg
-//==========================================================
-	$this->digits['8'][0]= 694 ;
-	$this->digits['8'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AFQMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABgcEBf/EACsQAAEDAwMD'.
-	    'AwMFAAAAAAAAAAECAwQFBhEAEiEUMVEHE0EVYYEiIzJCsf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/EABcRAQEBAQAAAAAAAAAA'.
-	    'AAAAAAABERL/2gAMAwEAAhEDEQA/AKL6gVVUa0i1T5QjvTprUJMlxW4R9zgQXe/AH+kaWrntqlWjaq7gpcmotXAw82ht9yY4tch8'.
-	    'uAFC0k7VBXPGMY51ruiaue+bThIj+7NbWqS+7HDxajFf6AlB/k44o8ZOABk4xkL0X0tZiojKrlRuGRJjugqldSlKGf6t7BuUQe3J'.
-	    '44xxxrA1a4KVJipLidri8uLHgqOcfjOPxo0o2hdDvS1CmV2Yl6fS5ioipIQR1CAlKkLKR2UUqAI8g6NRSwuuyHab6s1ufLI/Zai7'.
-	    'UBJOxhTS0+6B32pWSFH4CidOdWU0ukLiN1BLr0zG5Sdm3GRvcPhIT858DvjXNrVsSLnm/VIdTXS6tTnFsxZTSN3jchaTwps+O/z9'.
-	    'tcBVq3hIX0tYqlIiQHdy5CqRHKHXEjAOMgBKjnvyRk4xrQa7OiGt1K5biYZL8SoVEpjOqkFsONtJCNwASeCQrn7aNUKnQYtLp7EC'.
-	    'EylmLHQltptPZKQOBo1FzH//2Q==' ; 
-
-//==========================================================
-// d4-small.jpg
-//==========================================================
-	$this->digits['4'][0]= 643 ;
-	$this->digits['4'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABAYHAv/EAC0QAAIBAwQA'.
-	    'BAMJAAAAAAAAAAECAwQFEQAGEiETFDFBUmGBByIjUVNxobHR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAGBEBAAMBAAAAAAAA'.
-	    'AAAAAAAAAAERIVH/2gAMAwEAAhEDEQA/ANjM00Nxmt1xiWW31CZp5uJwoAAaOQ/n7qfcZHqO5my3q5XX7R6ijiqnNut9u4NyJ4yv'.
-	    'JJyjYr8Xhrn5g599J7x3ulBNU7Zo7dXXXcLQ8kURYi4epYtkALjOePv1nUvbLvV7P3BZm3DR3eh88Kp7pVzBZI6iUhGWRRGWwE44'.
-	    'HX3V+uiL1uHgt+vL/H+aNJQ3CSeCOaFqSaJ1DJKs/TqRkMOvQjvRorHE4pRDLNWLGlRHGUeYIORXs9e5B7OP31E0fmdyb/t0DJ4Q'.
-	    '27bfx3YZzPUIoAAz7IpOD6cuxq0uNumqLfVNDOqXBoZEjnZcqhIPXH4c46+WkdoWOltu3IDDLLLVVR83UVcuPEmmcZZ2/rHoAANG'.
-	    'GI7KIY1ijoLeEQBVCwIoAHpgY6Hy0aZe7mJ2jeHLKcEhusj6aNKgzr//2Q==' ; 
-
-//==========================================================
-// d7-small.jpg
-//==========================================================
-	$this->digits['7'][0]= 658 ;
-	$this->digits['7'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgEFBwT/xAAuEAABAwIE'.
-	    'BAQGAwAAAAAAAAABAgMEBREABiExEhMiQSMyUXEHFBclVJFhk9L/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGREBAQEAAwAA'.
-	    'AAAAAAAAAAAAAAEREiFR/9oADAMBAAIRAxEAPwDXq9mCjZeQ05VZ5ZST4bfEpa3VdglCbqUe+g9MZ5Uq7V8415WXoMSdQ6etgSps'.
-	    '19wpkCMDZKUpv0FZvbi1NzpYasMDLDUbMVXrtQdbeeU23xLWkj5RlLYK0J7anW9gbAjCzkOtsVSUJUdtc6dVZK51UeaFm4LKbhpC'.
-	    'l7EhIFkDW974GbRI2XorUVls1OTdKAOqUpR0Hc3198GITQ6k+hLwrEpoODiDenRfW23bBicg78JXxPpD0mgVOW5PAivNNpahsPW5'.
-	    '8xxQaSVkboQnhsnYm5OHqDGp1IpsalMKjMsMIC3+XZKbJFth62/QOEfMOZqZXp9JcKZTcGmTky3meSi7xQklI81vMR+sXIz/AEgp'.
-	    'Q0qPNu6ea8Q2jqtbp8+2w9h/OKORc/cpHjt1dDSHOtLZ4ekHW23bBjj+o9H/AB539aP94MG0+L//2Q==' ; 
-
-//==========================================================
-// d3-small.jpg
-//==========================================================
-	$this->digits['3'][0]= 662 ;
-	$this->digits['3'][1]= 
-	    '/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-	    'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-	    'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwL/xAArEAABBAED'.
-	    'AwMDBQEAAAAAAAABAgMEBREABhIhMUEiMmETFZEHFkJDUdH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAYEQEBAQEBAAAAAAAA'.
-	    'AAAAAAAAEQExQf/aAAwDAQACEQMRAD8A0vclruBdk3VVLLUNssGRJsZSCtqOjlgJAHvcOD6c4HnOdIbcttw1W5P29cFEhuawqTXS'.
-	    'VsJjnCMBxKkJJx7goAde+ceJfdNxU0UNlyymyXHi6kxWUNl1S3EnkAEIHX2nv86qtTuZr9Q9+1VhRsOoYpYcgSVyAE/TdewkJxnK'.
-	    'sBCjkdPGpnOtFMd3PqsXgfOAgD8Y0aX+11H9rDDjn8lr9yj5J+dGqsqxaw6Cc9cQZU4Sp7zTJsIrKlcUEKwhSin1JABI45GUjqOu'.
-	    'lbOvjbc3Ts9ynjGCy445UuFLYRzbWgrT6fhSCQSMDke+pew2zYVly/d7YchNqkMJZnQpgV9J8IzwWFJyUrAJHYgjvpLbu37G5nR7'.
-	    'vck5C3YRKYEOEVJZj8kjKypXqWvirjk9h+dB9i4faa89TDZUfKlIyT8k+To10a6KTkpcJ/0vL/7o0TS//9k=' ; 
-    } 
-}
-
-class AntiSpam {
-
-    var $iNumber='';
-
-    function AntiSpam($aNumber='') {
-	$this->iNumber = $aNumber;
-    }
-
-    function Rand($aLen) {
-	$d='';
-	for($i=0; $i < $aLen; ++$i) {
-	    $d .= rand(1,9);
-	}
-	$this->iNumber = $d;
-	return $d;
-    }
-
-    function Stroke() {
-
-	$n=strlen($this->iNumber);
-	for($i=0; $i < $n; ++$i ) {
-	    if( !is_numeric($this->iNumber[$i]) || $this->iNumber[$i]==0 ) {
-		return false;
-	    }
-	}
-
-	$dd = new HandDigits();
-	$n = strlen($this->iNumber);
-	$img = @imagecreatetruecolor($n*$dd->iWidth, $dd->iHeight);
-	if( $img < 1 ) {
-	    return false;
-	}
-	$start=0;
-	for($i=0; $i < $n; ++$i ) {
-	    $size = $dd->digits[$this->iNumber[$i]][0];
-	    $dimg = imagecreatefromstring(base64_decode($dd->digits[$this->iNumber[$i]][1]));
-	    imagecopy($img,$dimg,$start,0,0,0,imagesx($dimg), $dd->iHeight);
-	    $start += imagesx($dimg);
-	}
-	$resimg = @imagecreatetruecolor($start+4, $dd->iHeight+4);
-	if( $resimg < 1 ) {
-	    return false;
-	}
-	imagecopy($resimg,$img,2,2,0,0,$start, $dd->iHeight);
-	header("Content-type: image/jpeg");
-	imagejpeg($resimg);
-	return true;
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_antispam.php b/nightly-test-server/jpgraph/jpgraph_antispam.php
deleted file mode 100644
index d7f9283..0000000
--- a/nightly-test-server/jpgraph/jpgraph_antispam.php
+++ /dev/null
@@ -1,625 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_ANTISPAM.PHP
-// Description:	Genarate anti-spam challenge
-// Created: 	2004-10-07
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-class HandDigits {
-    var $chars = array();
-    var $iHeight=30, $iWidth=30;
-    function HandDigits() {
-
-//==========================================================
-// lj-small.jpg
-//==========================================================
-$this->chars['j'][0]= 658 ;
-$this->chars['j'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUGBAf/xAAsEAACAQMDAwMBCQAAAAAAAAAB'.
-'AgMEBREAEjEGIUEUUXGBBxMVIiNSYWKC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwEC/8QAGhEAAwADAQAAAAAAAAAAAAAAAAECERIh'.
-'Mv/aAAwDAQACEQMRAD8A6veK2st8zRWSyV1dUBfvHaGVI4hknsS7AFv4AyM57ayWbqeS+11xtT2etttwo4YqhEqnQs5bcAfyk4AZ'.
-'SOeD441TKRTyingUBG4/ah8j684+dSFzh/BvtaslejMUu9DPQTDnLx4lQ/ONw1TGBm0jdRWqguEMghEisWilgDmNs4Ze+MEEEH40'.
-'aUVFTa7JeLjRXu4GjhmnNbSfqFQVlA3rkckOjH/Q99Glmkl0C/Q06pvsvT9vttXHDF6T1KrWbs5gRgQJM+FDlQxPhjpF1XcVq+qe'.
-'jEoKiOecXBqh2TDDYIXLKuP6549xk8auI6aJqV45oknWdNswkAIkGMYIxjGO2NR1F0LZY5qkWqkS1xrM0M8lMSJpY+TGrnJiQ577'.
-'cEgeNHhi7D3qC3UN69M8tIakRhgrh9o748+eNGtcCiKjjpkQKlMTEg3ZwoxtHHtgfTRpYXArvp//2Q==' ; 
-
-//==========================================================
-// lf-small.jpg
-//==========================================================
-$this->chars['f'][0]= 633 ;
-$this->chars['f'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQFBgcC/8QAKxAAAgEDAwMCBQUAAAAAAAAA'.
-'AQIDBBEhAAUGEjFBEyIHFFFhoRUzYnGS/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQP/xAAaEQACAwEBAAAAAAAAAAAAAAAAAQIRMRIh'.
-'/9oADAMBAAIRAxEAPwDcnmLoIkiSYsouC3tA++O2lU9WkqVjJ+YdhZLsQI/4/YfQm50kZP0vbmaCSU0SRNIH6sghb9INs3t38dvp'.
-'akUuz8x5DwdN5peS1jV1dSipSiVUigIcdQjQ26lIB/c6r3F86SZpE/zCFJaqsihQNhRgdj3Jyfxo0jDSbXHt9Oph9RAoV3qJGltY'.
-'HDOxyb/nRpV0D3RXle21m48XraOk3IUSemUaV4g4Zc9ShcDtgff+tQfwvjq34Dtku7buamFqeJKemCCMxKFsEJU+/FrX8d76sEHG'.
-'aNItzr4usVNdG3S0rmRYAVwEUmyjyQLZ11x7aF4zs9DQOyzml29I2cLa/pixIHi99DFCtU9dFuLIaijo9qiYPmR2mZmB9thgAHOD'.
-'4+mjUrURyrUNMZFEkkIOFuFAbsP9d/OjVIQ6Vh4tP//Z' ; 
-
-//==========================================================
-// lb-small.jpg
-//==========================================================
-$this->chars['b'][0]= 645 ;
-$this->chars['b'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYCAwUH/8QAKxAAAQMDAwMDAwUAAAAAAAAA'.
-'AQIDBAAFEQYSIRMxUSJBYQcVI2JxgqHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAQL/xAAYEQEBAQEBAAAAAAAAAAAAAAAAATERYf/a'.
-'AAwDAQACEQMRAD8A6H95mxNYwLXcX+pCuilSLXJ6YSplaUELjqxwe4IJ5PIPamJ2V0bPcS7+NxCX1cHggAnIP+xSd9RyzHh2m7FQ'.
-'Q1CvMNQWTjCt+HFD+PB/Y1fI1PL1HFFt0zaGblFdJQ9cJjpZiqPJUlBAKnPcEpGB5NNRKdrOl1NlgiQol4R2w4Sc5VtGf7opZteo'.
-'LhdorjUSM5FnQnlR50NeHQysYxtVxlJHIPgjtRRD3xkaghs6juumdHz4+Y7RVPnt59K2mk7W+fcKWsZ7djTXMkW+xMP3GRJjwIEN'.
-'HTG/CWx5wPY8AADx2NYk3SL9wukvUjGobnBkORksIbjdMANozgEqSo8qJPGO/wAVO36IsjUmBIfZfuM7epZk3F9UhSSk5O0K9Kcq'.
-'8AcU3UzFuhUSBFud6nRXoz96mqmJZWg7m2dqUNhWBwdqQSP1UU5c/FFCn//Z' ; 
-
-//==========================================================
-// d6-small.jpg
-//==========================================================
-$this->chars['6'][0]= 645 ;
-$this->chars['6'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAEBAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwMC'.
-'BAQEBwAAAAAAAAABAgMEAAURBiESIjFRBxMUQRUWMmFTYnGRkrHC/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFhEBAQEAAAAA'.
-'AAAAAAAAAAAAAAER/9oADAMBAAIRAxEAPwDslwiR3oDku8ONttsAvDiVyMcO/ET7ke5/aoOz6k1Vr5htNjW7a7M1yO3NTQU9JUDu'.
-'GgrlSn8xyf6p4gXaHJvNps9/mKZtSkGdMjRwpfqAFBLLACRlZUrJONsI2717No1lbZ10kx7XGnRpKWQ/6GVGMfzEJ5VFIVtsOH6e'.
-'wyKVhYsia0y22pLThSkJK1uniVgdThOM0ol+StIUhpopIyCFq3H8aUVCwnG3PGe4Rp6fLXJtMdyM0ojcIWvIz3HFnAPfrWTXb6GN'.
-'WaLXDwZjVz8pKEfhuIUFg/bAz9sVJ61nt61mxJFslLtq7e5yPqiBT4UDklKw4MDpt+u+9bFiu9riXNu83R+fcr6tohuQ5HQhmK37'.
-'paaC8DruScmg6X8KkjZEhbaB9KEyFYSOw26Uqd+e7Qerl5z74DY/1SomP//Z' ; 
-
-//==========================================================
-// lx-small.jpg
-//==========================================================
-$this->chars['x'][0]= 650 ;
-$this->chars['x'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABMDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAUHBgj/xAApEAABAwMDAwQCAwAAAAAAAAAB'.
-'AgMEBQYRACFBBxIxFCJRgRNxkcHw/8QAFQEBAQAAAAAAAAAAAAAAAAAAAAH/xAAWEQEBAQAAAAAAAAAAAAAAAAAAEQH/2gAMAwEA'.
-'AhEDEQA/AH9t3pKvO14UykVARa/HfAlxlDKXR24V2p3z7RlPwdtMep91uWdRGHWELjuTFFtLvcC4SNznnH+21O7ttiodOq1BvC0E'.
-'p9I0lSX2kgqCSklK+5PKCMAng6zV2XRO6u3lSIURtbDRShltlZHa0tW7q/0MeTwnjxq1Jiw2xc9xTLbhSVU5iaXUFfqFFILgJOCd'.
-'9Gt3SXabR6REpkL8yo0RpLCFNx1qBCRjOQMHxo0pEr6o3um2LVYpMEpTVqg25lHn08dfcB9kEgfZ1LIFDuawqZRb7aQlLTzqglsg'.
-'9wQdveOEqBIB425xqhQuk8qo9UKlPrlRblw2ZBeCSVKW6CcoSrI2AGOT41SKzT4dYtmdS5bIXDZhNoWgbZJ94x8AYT/GkM03oNUc'.
-'uKgwqtTZDTMOU0FttqRkoHggnPkEEHRrkJ6t1SlSHYUOc6zHaWrsbQrATk5/vRqK/9k=' ; 
-
-//==========================================================
-// d2-small.jpg
-//==========================================================
-$this->chars['2'][0]= 606 ;
-$this->chars['2'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEQMBIgACEQEDEQH/xAAYAAEBAQEBAAAAAAAAAAAAAAAFAAQHAv/EACsQAAEDBAEC'.
-'BAYDAAAAAAAAAAIBAwQABQYRIRIxQVFhcQcTFSJSU5GU0f/EABcBAAMBAAAAAAAAAAAAAAAAAAECAwT/xAAZEQACAwEAAAAAAAAA'.
-'AAAAAAAAARESUUH/2gAMAwEAAhEDEQA/AOqXm/Q8dxmOL4PPSnCSNFixx6nXnkXgRT3Te17JWbGsveueSyLZdbPItNxOKLzTLjou'.
-'gYCSoSoY8ISKSbFeUrzkdlnTL1YshskiErkQnFEZaF8kkdBBVdjyi6RNL5+9F486eS/ECVkcBtDt1vZcho5viS8ZCp9C9tAIAm/F'.
-'VoPRU+HRtJ5JVRP1kP0PfwP+1VKrHBMliXG4Nw8VgE4xGkuqk2S1wTUNEVdIvgpL9iL6KtNxY7WOwo9tt0RCitj0sR2uCbFPPzH1'.
-'7+6rRuSRcljMBMsUy2tky045KOawZk5xtEFBJEROO3hx61kh2rPCIX3MhsyC4QmfTbC6lH8dq5212qwkiG5H6Y/9R2qm+ofxqqsL'.
-'DLZ6f//Z' ; 
-
-//==========================================================
-// lm-small.jpg
-//==========================================================
-$this->chars['m'][0]= 649 ;
-$this->chars['m'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAcDBAUCBv/EAC0QAAICAQMCBAMJAAAAAAAA'.
-'AAECAwQRAAUSBiETMVFhB2KhFSIyQVJxgZHB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgED/8QAGREBAQEAAwAAAAAAAAAAAAAAAQAR'.
-'EiEx/9oADAMBAAIRAxEAPwB0MI2lIdgI0Cly3kFXLEn2zx1FDdp7rbpbjUtRWKio3hyxOGQllJzkegX66rQ2qW87Zuk9S5FNVmru'.
-'iywyBhjDKTkeXfSr+GRfYtq2KAO32b1BGxAZu0dyJ2DKPTxY1wPddVszycUq2Golq8jRWbcnJWwCVGMjz+VQP50atxMtm2ZUOY4l'.
-'4qfUnBP0x/Z0amy4jJm10Tt2yddWasFmfaRfdrlG3UcgArnxKzJ+Fu4DqCMkcgNem2DoWav8PLfTm+FPEkuSNTnqueS5bnHIv6CG'.
-'LNjJwM99bm67NB1Ht89KSxNXnr2hNDbiUc47K4KyD2GQMfmMjUnS+7vuIktTqPCaaWCqAMMojPFyw8hyYMQBnAwNJHYGXPTsW9VN'.
-'jg2zf50W9zk524GAEihuz+xbIOD82jW5TkjtRPZkTkJ+4VgDhQfuj/f3OjUxl1f/2Q==' ; 
-
-//==========================================================
-// lt-small.jpg
-//==========================================================
-$this->chars['t'][0]= 648 ;
-$this->chars['t'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQDBQYH/8QAJxAAAQMDAgYDAQEAAAAAAAAA'.
-'AQIDBAUGEQASEyExQVFhIjJxFSP/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAP/xAAZEQADAQEBAAAAAAAAAAAAAAAAAREhMUH/2gAM'.
-'AwEAAhEDEQA/AO4BLEiEy7uG4IGxxs5IOOx76wd2XYidSp1HoD70240gcNNPbDyI6wQQpaz8E9MczkdhqtbsKYLieDk6WLKmZmmL'.
-'Hk7AHVkbkLI+RQc7uRxgkfr1tx2rGu6VbToLVKkhU+kbugGf9WfaknCk5ycaX0zmaa+3JkqvW/CmzojsB9xoF6OoFK0r6HOcEDI0'.
-'aefTuKX5ScMdC14HYq8n12zo1DEUcKTGg1Z+hyBwoPBVIiA/VQyOIgedhUCB4WMfXSV3UufVLcTUIqVf26K6mXDbPVRRzKT54iMg'.
-'+zjtq6mtsyJjclxpKlUhSXEbkgkqWnBx4+J5e/zU0pZemPvJJQzEPDfQOrwwFY9AZ5eeYPLV6FwhoFYZuigxpkJeIjqAeIoAk9wA'.
-'D46EnuD+6Nc1smDNrTlRkxqtMo1vzKhIdYgU9YDqVpISrLhHxSSd21I0aYyqP//Z' ; 
-
-//==========================================================
-// li-small.jpg
-//==========================================================
-$this->chars['i'][0]= 639 ;
-$this->chars['i'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABwAGBP/EACcQAAEEAQMEAgIDAAAAAAAAAAEC'.
-'AwQRBQAGEiExQVEHExSBFWFx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgMB/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAECMRH/2gAMAwEA'.
-'AhEDEQA/AE7c+5M9BeRG29t1WUfKFFYW+GvrI7WD3B9g140YD5T36rcErDjbUR6dCBdejsKUpxITXI2FUrooCh70yvxzHyIlMvuK'.
-'eVSH7IKEpJoKqu/ahddLryR/aMiO187bsmrWShhp1AZS2XHHrWhNJrzdf7f7GiVcHk3sptmHkJcJ2DIftS2FrKlJPXudWuLGYeQp'.
-'t2fmEIckqIZaaKuSGG0lQ4gduRoFRHQ9AOgs2lOJbk9aSUlpjGvAWeSVH2VKq/2dFPw3IjyJe8s281ct3I9UoHJXGiQkD2STrSZ7'.
-'Yf8AOl7JTdw5eOCz0jw3+LbYCfA9nz71msb8KMxoTGTw+5srjsipAdDqFBQBIuiOl6KrdYyJMyTCshlw2G3Fr/HiNqNNAqJJUoGl'.
-'KND+h47km1bZwsvCbYYjycxIyK1qDv2yEi0hQviK8atKDcy9j//Z' ;
- 
-
-//==========================================================
-// lp-small.jpg
-//==========================================================
-$this->chars['p'][0]= 700 ;
-$this->chars['p'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAECBAUGB//EAC8QAAEDAwMCBAMJAAAAAAAA'.
-'AAECAwQFESEABhIiMRMVUWEHFEEWIzIzcYGRocH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAgH/xAAcEQACAgIDAAAAAAAAAAAAAAAA'.
-'AQIxAxESIUH/2gAMAwEAAhEDEQA/AOh703xG21DMeOyqoVNDjSzERiwU6Ep5qtZNycA97HTF13d33KWtmlt9xwkLl1NkXVxIuQgK'.
-'wLj+hqBvel0qmbR8GnR22nJNZiLeeKr8nDIT1OLJucX+uPbWom7iocRpafOac5MX1ALltp/Cbi+cJH++utdh+WVNL3PNdNYpdWgx'.
-'Y0qmLZSrwJJcQoOJ5XKlJFu4HbJOjVbt+V5nu7eopNRivqcdhK+bFnWwA1Y2AOcgjvj9dGlxy0g5y0xd+hNXoG24C4obizq3HZUh'.
-'YHqtRHD06bG/8a0MbbG1mqekxaBSGmgkrcdcitlLfrckZIz7DUatbeFak0tyRLUwzT5vmiGm0cufEkFBJItfkD+59tKmiO12atFa'.
-'eQukO3ejUxgENqTcfnE5WbkHiOnJ76N2IqI1DibabptS+zkZhtp90F2Y0S026EkAFK/qL46cXv65NVZDfxHmVCK4DE2/RX/lRFbA'.
-'C5LwAyq2EtpHZI7mxPYDRqoctdESimz/2Q==' ; 
-
-//==========================================================
-// le-small.jpg
-//==========================================================
-$this->chars['e'][0]= 700 ;
-$this->chars['e'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABgDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYEBQcB/8QAKhAAAQMCBAUEAwEAAAAAAAAA'.
-'AgEDBAURAAYSIQciMTJBE0JRYRQVFoH/xAAXAQEBAQEAAAAAAAAAAAAAAAAAAgED/8QAGREAAwEBAQAAAAAAAAAAAAAAAAERAjFB'.
-'/9oADAMBAAIRAxEAPwDTszvhEYCoS80BTm2bCjQRwdAzVe2yopkpJtpRUVfjEIc4V2oMerByg5Ji30oMyS3GeMunK0upfnu09MdJ'.
-'p2scTmWnnGfx6HThktgLfKj7xEOqyr7QBbL41LhBzpxbcOru0LKDLdSnOHoaltNqSC4qWL0x9xbJYum69caczSaHmGmTmpDUYn4l'.
-'UiqjkynzAVtwV23Ud+X4Ibpa2DCPkjhfUaRO/p8yzpb+YHhUmhbev6ZEll1lvqK3jt2XrbBgp6HVwsK3THpfEubGSoOUyFMpbJmL'.
-'Deh6SgOGKti57EuY6l62JMWdJy7k3hg1LkOozEbVm7suQSkTiKtkEfP1pH664Za/QItccgI4bseTHdNxiXHLQ8yVl7V32XyioqL5'.
-'TGc1ng6eYs0idczXUZscBBABWgEhEtfKNuUezwPnBhEuj8X2M21z9BR6NUX211Kk/UKKAjuhkPhL7XVf8vtgw7UPJlEyrDWFSYLb'.
-'LBNF6qrzG6t0spEu6+fpL7YMXhUndp//2Q==' ; 
-
-//==========================================================
-// la-small.jpg
-//==========================================================
-$this->chars['a'][0]= 730 ;
-$this->chars['a'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABoDASIAAhEBAxEB/8QAGAABAAMBAAAAAAAAAAAAAAAABgMEBwX/xAAvEAABAwIFAQcCBwAAAAAAAAAB'.
-'AgMEBREAEiExQQYHFBUiUXGBE2EyQkNSgpHh/8QAFwEBAQEBAAAAAAAAAAAAAAAAAAMBAv/EABkRAAMBAQEAAAAAAAAAAAAAAAAB'.
-'IQIRMf/aAAwDAQACEQMRAD8AfdQ1pxjqZMSn0mRUZRYDaklJCE3OawO2ttTxY4hl07qFMVs1Ku02kpPnRGhsAqz8W9T9wDjozq6o'.
-'Q1lDrcZLGVcmUoZg0obpufxK3Ftt9ccqB1GgBcmLSqtVEqOZcr6ARm/kbXHt7DEtc7WTJKTJqEWvRKfLqL9QplSjuPtGVYOJKBrm'.
-'t+U+n94WGStZzNypmRWqckUKTbixy6jAfxPxHtCgKqFNlU5huK6pLMndSlegG4J45N8aKmTMKQRBsCNMzwB+RbHWHGEAZlPZX2hx'.
-'qZIC34ygZoYUbB50JSkFXFhZR9BrpheR4fIbQ6gvurJ7q02bIQTuAOAN8x40HAxRr3TrNRpBmSHVt1KMlTyJTCsqkKAPlSf28W+c'.
-'UGaD1c9HSR1HFUh9tJU45EBcAtcC9+P9wqbg8IAto9o81yputrVGpiUkgHKkqUTZI32+cKm1z1tIUgPBBAKQ4UBQH3uL3xmXSXep'.
-'HVDtXStE5K5jlPU7PF3Q41+okJFkjgC+3OuNSYiSzHaLtRcW4UDMpLYSCbakDW3thhum5p//2Q==' ;
-
-//==========================================================
-// d9-small.jpg
-//==========================================================
-$this->chars['9'][0]= 680 ;
-$this->chars['9'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwP/xAArEAABAwMD'.
-'AgYBBQAAAAAAAAABAgMEBQYRABIhE1EUIjEzQUIHMlJhcdH/xAAWAQEBAQAAAAAAAAAAAAAAAAACAQD/xAAYEQEAAwEAAAAAAAAA'.
-'AAAAAAAAAREhQf/aAAwDAQACEQMRAD8AkK7brF6X7XpMeGoKhFMLEeT4ZUheEhanF4OcZ2pTgDykk92bZpdCsi7aezLjxkIPUZiV'.
-'RSCy8hah7EkZ27yM7V+iscal5bE22Lon1qNDmSKROd8Sl+Ix1lMOlIS4HGgQpbStoUCnlJz8HmsXtW3Lst2rmBAelLMRRekOwnYz'.
-'Edls9QKKnOVLyk7UgcbzzrdBthqEJJwZbAI4x1U/7o1TaFa9lG36aXaZTy54VrcXUgrzsGdx+T30aNydweqVw1GS87T6Lb86Q4ha'.
-'my/IAYjZBx+snKk99oOQMf1AViE65SY348hzFy6hPKnqtKz7DC1lbqyPrvJKUJ7H+M6Wrt3InP7o1brFNp4bCDGhxGAsqz69VSiQ'.
-'ORwBxrrQ7itm1ac7Hp0WoGTIc3PSn0pccdcP2WorycfA1RaRHjxosZqOyhtDTSAhCf2gDAGjVHTd9sKSCumynFEZK1tIJUe58/ro'.
-'1V1//9k=' ; 
-
-//==========================================================
-// d5-small.jpg
-//==========================================================
-$this->chars['5'][0]= 632 ;
-$this->chars['5'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgIFBwT/xAAoEAABAwME'.
-'AQQCAwAAAAAAAAABAgMEBQYRABIhIkEUMVFhBxNCgaH/xAAVAQEBAAAAAAAAAAAAAAAAAAAAAv/EABcRAQEBAQAAAAAAAAAAAAAA'.
-'AAABEUH/2gAMAwEAAhEDEQA/ANGvW4YVOeiRX5b4mv5Sin05IdlupPKdo/j2SO3+6TbPNQvOsTVz33KRT4csR3YUF7Dsh5OSFvug'.
-'kqG4FPBxnjxpvvi4KZb1pTpU+QwxUi2Y7ZIAefUk5ATxnB9/gbtL/wCH1UpuhPUlZlMVaQ0mS8zJjqZOPfc2TwpIUonI9tw40R1r'.
-'WNGq/wBdJR1XT3lqHBUnGCfkfWjRWs1ve249erQqQYjOtN1FqPUpCXQ4WIzQSsJwT0UpRwQPG0nzqyuNHobjsl9kBuWqoOoXtT1/'.
-'WppZcA8lKRj64HxqU+3KpAr6plElRVKef3S4E0K9O8pLXVzKcqSsJAB9wSAca6bSoNXeuA1+5pEV+SGFNU1iKVFqI0Vdx2AJUeoz'.
-'8DGlTDwG3CAf3q/pI0ah6MDhLz6U+EpXwPoaNMU//9k=' ; 
-
-//==========================================================
-// d1-small.jpg
-//==========================================================
-$this->chars['1'][0]= 646 ;
-$this->chars['1'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEwMBIgACEQEDEQH/xAAZAAADAAMAAAAAAAAAAAAAAAAABQYCBAf/xAApEAACAQMD'.
-'AwQBBQAAAAAAAAABAgMEBREABiESMUEHEyJRkSNCYXGB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAA'.
-'AAAAAAEREv/aAAwDAQACEQMRAD8A6jdd4WLbstILnc4Uq0VoWpkJknb6IjXLHJUePOlez923fcW4r1SxWlqC2UbdKirQif3Xw3yA'.
-'OFAGT09/kO3OmV3a20MFRf6lIYPcpy7yRRAzgxjIy2M8YwcdiBzpX6d22VNvUlTXsFkuwkrKqNSfnK7F8OTzwrAY+l5zoxKskudN'.
-'EgQPUT9PBkWF3DH+1GPxo1mLnRoAqF2VRgGOFmX/AAgY/GjRUP6hVMFv2FuFqUvUGrpDFJMBnpdyF5bsAQew7Hxzp6LZNT0yQ1DI'.
-'wp0QCFBhD0jCsfLZHxbx5xxpTuvb1+v9PV7Ztk9roLPLCjmSSN3mX5ZwqjCgZX7PfWxDQb2in96pv9qq46aTE0bW4x9ceAWAYPwS'.
-'PsYzoixgmheBGjIVcYCnjp/jHjHbRpe1JLn9OnopE/a0ykvjwDx47aNMXqP/2Q==' ; 
-
-//==========================================================
-// ll-small.jpg
-//==========================================================
-$this->chars['l'][0]= 626 ;
-$this->chars['l'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYEBQf/xAArEAACAQIFAwIGAwAAAAAAAAAB'.
-'AgMEEQAFBhIhFEFREzEHFSIyYcFxgZH/xAAXAQEAAwAAAAAAAAAAAAAAAAACAAED/8QAGhEAAwEAAwAAAAAAAAAAAAAAAAECMREh'.
-'Qf/aAAwDAQACEQMRAD8A15Zfm1VURj1Fp5AqLKv3OARcL4W5Nzx+MLWjdRz5hqXU6TSb6OCr6WghiQbrJ91gOTy1yT5xZ55myZFk'.
-'Gb5ozX6Ondm28XYqpQDwu7jEH4c5S2UaDy4xxrLmlUDWzk8XaQ3O49hbj+RiB85HNg8Ee3aqwIqhDuux7G/HHbvzgxEqaWOvy09R'.
-'O0o3hjdQoUji20g+fY3wYSM6pJ4Ylr7V+Zz5PSaezHTlTRNWzxySSxt6q1MSkH6AOT2Fu3Aw7RfF/T9DEkLUeawuF2mKSgdWQj2/'.
-'q3+fnDZDlqRZzQGaOGcpTOaeR1u8R+ncN3gj94so2jNWHeMNNKzorEX2qp9v3imNPoRE1zpjUtZ09HJmYq5lury0benZeTww23t3'.
-'Ivgw+T0yRRyyxIqNfkLcA8jt7YMKcBWn/9k=' ;
-
-
-//==========================================================
-// ls-small.jpg
-//==========================================================
-$this->chars['s'][0]= 701 ;
-$this->chars['s'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAMCBAUGB//EACwQAAEEAQIFAgUFAAAAAAAA'.
-'AAECAwQFEQAGEhMUITEiYQcjQVFxFRZCUoH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAgH/xAAZEQADAQEBAAAAAAAAAAAAAAAAAQIR'.
-'EiH/2gAMAwEAAhEDEQA/APWZMhmFXSJU+SGmWFiQtAWMJQAnJUr8Z+w/OuQk71uZnMsqnbjy9s8st9UMCQ6kZJdZaIHEkZ/JHceN'.
-'N3HtizuY1JLrG48yLBSC9UTFKQiY4nACir+wAOOMEe2rm2bTbzlqtE1MyBuZAPybpw85KSfDRJ4Cg+Pl/wC61hJeGjV31VuuKqwr'.
-'LGU+whZZK+Rw+oYJAyj3GjS4dZFpZVkqPLktdfMXNcaU2kBC1BIITkdx6c599GlnvPAa3TL2vNvU76n0063acr3YSLCEjpUpUQtW'.
-'Dhf14SMEnOc57aZ8Tegm7dbrEQGZt1PeTDgc1PEW3FeXAvyAkZVkeMDOm2G3f3O7Cl/qEuqkQg4lp6CRxraWfUlRUD24kZA741Ko'.
-'2k1HvlT3ri2sLOCgtsyJz6XEtBwZPAgJAGQMHUNPWKqWItsqh0UCFVyLeKhyLHQ2TMdHNVj+RKlAnJyfto1FW2ahgjrq6LYTFjjf'.
-'lymUOLdWfJyoHA+gA7AAAaNPE3ysJdLT/9k=' ; 
-
-//==========================================================
-// lh-small.jpg
-//==========================================================
-$this->chars['h'][0]= 677 ;
-$this->chars['h'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGgAAAQUBAAAAAAAAAAAAAAAAAAIDBAUGB//EACwQAAIBAwMCBQIHAAAAAAAA'.
-'AAECAwQFEQAGEiExExQiQVEVggcyU2GRocH/xAAXAQADAQAAAAAAAAAAAAAAAAAAAwQB/8QAGhEBAQEAAwEAAAAAAAAAAAAAAQAC'.
-'AyEyMf/aAAwDAQACEQMRAD8A6DZb95q9bmpK6ieOCzNHJTxmE+NMhQ5fr1fLq3Ejvkak2e7ipiFsqb3R0m4qkPPJRiRXenU9VjKE'.
-'5JVcA9R7nWc3/BUbfoKTdO3VRXhpjbZ2D8Rwk6RyZH6chB+46m7i2hDYtgA2ePlV2VkuKysoLzzRnlIScZJZeeevvjtrX7LK2rp7'.
-'tTwwJ9WjhILDrTKnIdMEDl2+P80aVdJZb1QW+vgqENLPH4sBCDLIwUgnOf4GjVvDnLgUk79T81voqjb8NnuUx8pVRCiEaYUSuynl'.
-'jHU9mOfnOoOx6hqz8PrbNdfEkMUXg1LSM3rKOUywJ7YAJ1ZTWmSpvdvlaVTDSUzJAhH5ZJBgv0x2RSAPlz21WXqoet3ba9nuW8n4'.
-'Jr6qTPqnUNxSM/f6mPvxA9zqJnExTbR+h0nkhVu1uE8j0UBRQ9PGxBKFjnkAScdsDp10a0lc7z0tI7Y5YYN+5GAf7GjVXF4Icj3f'.
-'/9k=' ; 
-
-
-//==========================================================
-// ld-small.jpg
-//==========================================================
-$this->chars['d'][0]= 681 ;
-$this->chars['d'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQFBgH/xAAsEAABAwMEAAQFBQAAAAAAAAAB'.
-'AgMEBQYRABIhMQcTI0EUMlFhkRgicaGx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAgEA/8QAGBEBAQEBAQAAAAAAAAAAAAAAAAECETH/'.
-'2gAMAwEAAhEDEQA/ALUhp6h3W/X63UlypbhCY0WMjLqGzwDtPCfv/WtealNpVInuVBBqCogcdbU36YUkAkJWVHG8YPXBxxzxqPcN'.
-'YtWyWnIlUeW05VEOAvrCnnSkftK1H5lKJPHsMDoDUWq+KdrSbIqsalVsImiEtLUZ2MU71bcYJWkhZ/36ayLHhi/IXZVOmzKqp5uU'.
-'688hTyjuGVEFJKvoQesD86NL2jGZp1EoLDSmk+ZAQ8d7oPzp3YGesFWMfxo1YGvSzLsT9QExVX8phTlMaFOExAJIBGQjJwCcL+/e'.
-'rd+W7GuO0Kw05CQ6+ww69Gfdb2kFIKk7DgEkjgnr86rXRa9HuyP8LV4SH0sIBbWFFDiFEgDaocgdkjo8ccay0qw7ut5nyrcviQqC'.
-'slsRKo0HwlODkBRzxj2AGoXTtpzIdQ8MbffUChz4NCPRaClAo9Mn6c7T3o13wytmo0K05VIqkiPJbizFiMWs4CTgnIIHOST796NL'.
-'Ia1JX//Z' ;
-
-//==========================================================
-// d8-small.jpg
-//==========================================================
-$this->chars['8'][0]= 694 ;
-$this->chars['8'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AFQMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABgcEBf/EACsQAAEDAwMD'.
-'AwMFAAAAAAAAAAECAwQFBhEAEiEUMVEHE0EVYYEiIzJCsf/EABYBAQEBAAAAAAAAAAAAAAAAAAIAAf/EABcRAQEBAQAAAAAAAAAA'.
-'AAAAAAABERL/2gAMAwEAAhEDEQA/AKL6gVVUa0i1T5QjvTprUJMlxW4R9zgQXe/AH+kaWrntqlWjaq7gpcmotXAw82ht9yY4tch8'.
-'uAFC0k7VBXPGMY51ruiaue+bThIj+7NbWqS+7HDxajFf6AlB/k44o8ZOABk4xkL0X0tZiojKrlRuGRJjugqldSlKGf6t7BuUQe3J'.
-'44xxxrA1a4KVJipLidri8uLHgqOcfjOPxo0o2hdDvS1CmV2Yl6fS5ioipIQR1CAlKkLKR2UUqAI8g6NRSwuuyHab6s1ufLI/Zai7'.
-'UBJOxhTS0+6B32pWSFH4CidOdWU0ukLiN1BLr0zG5Sdm3GRvcPhIT858DvjXNrVsSLnm/VIdTXS6tTnFsxZTSN3jchaTwps+O/z9'.
-'tcBVq3hIX0tYqlIiQHdy5CqRHKHXEjAOMgBKjnvyRk4xrQa7OiGt1K5biYZL8SoVEpjOqkFsONtJCNwASeCQrn7aNUKnQYtLp7EC'.
-'EylmLHQltptPZKQOBo1FzH//2Q==' ; 
-
-//==========================================================
-// lz-small.jpg
-//==========================================================
-$this->chars['z'][0]= 690 ;
-$this->chars['z'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAFwABAQEBAAAAAAAAAAAAAAAABgAHA//EACsQAAEDAwQBAwIHAAAAAAAAAAEC'.
-'AwQFESEABhIxBxMiQVFxCCM0UmGRof/EABYBAQEBAAAAAAAAAAAAAAAAAAECAP/EABgRAAMBAQAAAAAAAAAAAAAAAAABEVEC/9oA'.
-'DAMBAAIRAxEAPwBTWfLu1KXXZDbM4uewNvLajlwhaCbBAwDe5uehYd3xm6t6bi3jvulwqc7KgxXZZeYQLNLeF73WRg4HEdgfzrSa'.
-'P45pNEkznITDc9ypLShtyWhJDJyXC2qxJHZvjoZOjyVv1v8AESt6FFS4ijxvTLbawEApSccrYHJf0+OtJMQ2rNXk7GZMufJgJjTH'.
-'Un9M4qzxT7hyCiThIyRnPXWrRvyLElVBUF6vlhl0lwRYCFKcQhAtyWpVhyWTx+w++rUvp4EWjOvbniUOnVatcS43BYDbJSPZyIBw'.
-'ejclIx+3Wa+J63T6DQanuGszI0eZVJJV60p0Jum5GEi6le7l0PjvSjyRsaTvJqI1BqhhR46ksuMrQVJcUSEoUbHNr/7o7C8L7eiz'.
-'4lLlyJk2cEqW+6V+m0AE9ISLnsj5+O9UhsFK92bZZqb9SRu9p2c4A0OCEqDbYAJSlJwAVZv3fBvbFrg/462btlhuS1RG5nL8pYkq'.
-'KrnsKH06I/rVrQKkf//Z' ;
-
-//==========================================================
-// d4-small.jpg
-//==========================================================
-$this->chars['4'][0]= 643 ;
-$this->chars['4'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAYAAADAQEAAAAAAAAAAAAAAAAABAYHAv/EAC0QAAIBAwQA'.
-'BAMJAAAAAAAAAAECAwQFEQAGEiETFDFBUmGBByIjUVNxobHR/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAIB/8QAGBEBAAMBAAAAAAAA'.
-'AAAAAAAAAAERIVH/2gAMAwEAAhEDEQA/ANjM00Nxmt1xiWW31CZp5uJwoAAaOQ/n7qfcZHqO5my3q5XX7R6ijiqnNut9u4NyJ4yv'.
-'JJyjYr8Xhrn5g599J7x3ulBNU7Zo7dXXXcLQ8kURYi4epYtkALjOePv1nUvbLvV7P3BZm3DR3eh88Kp7pVzBZI6iUhGWRRGWwE44'.
-'HX3V+uiL1uHgt+vL/H+aNJQ3CSeCOaFqSaJ1DJKs/TqRkMOvQjvRorHE4pRDLNWLGlRHGUeYIORXs9e5B7OP31E0fmdyb/t0DJ4Q'.
-'27bfx3YZzPUIoAAz7IpOD6cuxq0uNumqLfVNDOqXBoZEjnZcqhIPXH4c46+WkdoWOltu3IDDLLLVVR83UVcuPEmmcZZ2/rHoAANG'.
-'GI7KIY1ijoLeEQBVCwIoAHpgY6Hy0aZe7mJ2jeHLKcEhusj6aNKgzr//2Q==' ; 
-
-//==========================================================
-// lv-small.jpg
-//==========================================================
-$this->chars['v'][0]= 648 ;
-$this->chars['v'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQDBQYH/8QAKBAAAQQBAwMEAgMAAAAAAAAA'.
-'AQIDBBEFAAYhEzFBEhQiYQdRFTKB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAAEC/8QAFxEBAQEBAAAAAAAAAAAAAAAAAAERIf/aAAwD'.
-'AQACEQMRAD8A6Ngt1SZ4yrYgrecgTFsFJA9aGwAUrUaF2D2Avjzq6CIjiBPkB9bwQVIkIYIDae/wq+P9N+dY4SGMf+Txlev7KBmY'.
-'PoadKRy4zxSgRxaTwO/x09u7KPYnasmHjlsyFZZXt4K23ezjvBpNGgLUrvXfVZyLLbWambiwEbKvvxYAkeotNlIJW2FEJWb7WBda'.
-'NSQI0fHYyJjkrjKRDZQwnpQ1vgBIr+w8+a+9GocZr8iKkuY1eXhsKH8U8iZE9BHz6ZHUc48UfSPqzqH3kfeO9kTTDQYGGietpTaO'.
-'shyW6AocpHNIrv8AvWzk9BUSdPdYS4BcRlomkhIV6KP0VE39V+tU2wdlRMHtZUB8NuTQ+51X27+Kr46ZPIAFV540D8zeLsJ5LMHa'.
-'ubmMBCVJdjx0pRyLoWR4I8aNIQ8BvZMNtMTeUcsptKfc4tC1gAkCyFC+K0aJtf/Z' ;
-
-//==========================================================
-// lk-small.jpg
-//==========================================================
-$this->chars['k'][0]= 680 ;
-$this->chars['k'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABUDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAUGBAMH/8QALhAAAQMDAwIEBAcAAAAAAAAA'.
-'AQIDBAUREgAGITFBEyIyYQcVUYEUIzNicZHx/8QAFgEBAQEAAAAAAAAAAAAAAAAAAwEE/8QAGxEAAwACAwAAAAAAAAAAAAAAAAEC'.
-'AxESMeH/2gAMAwEAAhEDEQA/APVK/V36dU6NSJDTT8esPLiqfK8S2cCoeTkKvZQ6jm2ldSqKqbu+OgMOvSX3m4UBrLnDlbqiefKl'.
-'Nzz2x1m+IwNP27CkJQ7JkR6rCkMJbP5jp8S2CPfkgD6H+dJ6Ca0nerr+64rTNSqMYrg+C9mmOwhVpDfsuxSbi97DmybaoZeQ5jTl'.
-'PEp18JTIfeW3kq3ly4H26aNZqvTWZsjFcZTsVtSg0G8Rio+vr2vb7g6NLPRnuXy8F+8kl+obUh4KXJdqSJJQnohlkZqJPYBXh3P+'.
-'a4b5Hyp6k1bO7sOotPyXkj9NlwFl0ewstJA9ifrqkVSmET4csoS7UTHXFQ+6SQlskKUMb/tH9ddLVUmS7DqdBqD7U6OsqfS46jzl'.
-'hQ5bXb1K9Scuybdxo2OTu92dwSZkWn0Sb8viQWyn8Qq5D6ifSLd0BIv7q0arTBRSKPToMZbi2GWylsvLK148Wue/XRrRjxOpT2R2'.
-'k9aP/9k=' ; 
-
-//==========================================================
-// lr-small.jpg
-//==========================================================
-$this->chars['r'][0]= 681 ;
-$this->chars['r'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABYDASIAAhEBAxEB/8QAGgAAAgIDAAAAAAAAAAAAAAAAAAYCBQMEB//EAC4QAAICAQIFAgMJAQAAAAAA'.
-'AAECAwQRBQYAEiExQQdRFGFxEyIyM0JSYoGC8P/EABYBAQEBAAAAAAAAAAAAAAAAAAEAAv/EABcRAQEBAQAAAAAAAAAAAAAAAAAB'.
-'EUH/2gAMAwEAAhEDEQA/AOs0ZdETU54Gt1INSmlPJEsyo7J+jlXPUYBPY9c+eE/dO9tY0a7ren6BVrW7VJTZtW5kZkjXkBSIKveQ'.
-'gHp0AAJ4w+q2hVdT2Md0h46+saS4mr3EUK0gWTAB+vQj2PboeL/ZVOqmhaZVjkFmxdC6tctt3tM2G5/7bAx4C4+qxiWwd3prWzKe'.
-'r3IBAth5OYxozKsgc8y4GTgnJB9uncdTi6tXq2140rRVM13JMEMAVAg7sMdBjJB/18uDgRO9R2Oo6FX2vShkFzURFUq1whIj+8DI'.
-'7EdAFjXv7MeNb0kuStsFEmIaajZaos2fy2Q4VGH7SGxn+Rzw9yMLOm/FzRhZazmOTkP4grYyD3B8j2PTyeFfZ+z7G3BeSS8lmprl'.
-'2K2qcnK0Z5S8gPjrgAY8cNEWmq7u23pEos6/Zji+Kd0rLLGWwseA3joeZj/w4OET1g0vlmrWV+ydFnkUxSgsvM4V+YYIwfHz6cHB'.
-'ZeKZ1//Z' ; 
-
-//==========================================================
-// lg-small.jpg
-//==========================================================
-$this->chars['g'][0]= 655 ;
-$this->chars['g'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAQCBQYH/8QAJxAAAQQBAwQCAgMAAAAAAAAA'.
-'AQIDBBEFAAYhBxIxQRNhcYEiQlH/xAAYAQACAwAAAAAAAAAAAAAAAAACAwABBP/EABkRAAMBAQEAAAAAAAAAAAAAAAABAhEhIv/a'.
-'AAwDAQACEQMRAD8AayO4t6bq3hmMHtxyLi4OKeKH5jyASiiQCCQeTRNAeB61FrBb+jTGpLO+BMW24EFMhkhpQru8m7B/H70x09Yi'.
-'q3nv/vLfwpnJ7UNkqSRbngf2ofWkpXV7brymC2malLfagurjW0aHk89xPJ9cX9aprURHWbYEaMHHEBfwpv8AnXPk+/8AdGqGJOxO'.
-'4YbOSxK4y4boIStUWysgkEmxY54r60aOI8oTV9MHtjJwunPUbO46WWo0HLlD8KY4goboFVoquOVEVwLT963WdnxYfT6ZJyz0JvHm'.
-'KvtaSkW4tYNVSqKiTwB+fw5n9sY/cuOXCzDDcluyW3Ckd7V+0n0eNZTH9DdouFalHIOJBUhtDki0pNV3UALo81ehG6IdKjPZ6d47'.
-'4ywltanVJvuJI+RQs/sHRqy2r003JhsImEc/CUyhxRZBjKV2oJ8eRXNmufPnRo1WIz3DdNn/2Q==' ;
-
-//==========================================================
-// lc-small.jpg
-//==========================================================
-$this->chars['c'][0]= 629 ;
-$this->chars['c'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAwEBAQAAAAAAAAAAAAAAAAUGBwID/8QALRAAAgICAQIEBAYDAAAAAAAA'.
-'AQIDBAURACExBhIiQRMVUWEHMkJScYFykaH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAgP/xAAXEQEBAQEAAAAAAAAAAAAAAAAAATER'.
-'/9oADAMBAAIRAxEAPwDcoGkmiT4Q8kWvzuPU38D2/v8A1zwrCFayq1qTaFk2H7aJHt05MeMvENzC4upDWkjW9kJXiricAJCigvJN'.
-'IB1IVQT5frrv24twPgunk6a288crbklUSJNNdnSTZ2STHHqOP/Eb17njdZtAoqwEvrEiGVyG117/AG6HhyV8H1sljMldoxXTksGC'.
-'zV7M0oaWGQOVeGQ92I6EMR22D11w4LmEPjaOL51iL8ssc9Z69zHtZkYCGGeQK0ez2UEoU39wCeX1S/LLiEt+mPSbMLxsGVv2kEjR'.
-'305xkaEV/GTULMUT1LD/AAGh8gIZS2jv+vpybb8NMIb0dVLWYWgiiU0vmMphOj6V0TvQI3rfsON1E6dYjGtisa0F1mAWR2NhG0WZ'.
-'3Ls3TqNs5Hc9h23w49NWL9K+Q/VD5T/zhwPH/9k=' ; 
-
-//==========================================================
-// d7-small.jpg
-//==========================================================
-$this->chars['7'][0]= 658 ;
-$this->chars['7'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABgEFBwT/xAAuEAABAwIE'.
-'BAQGAwAAAAAAAAABAgMEBREABiExEhMiQSMyUXEHFBclVJFhk9L/xAAXAQADAQAAAAAAAAAAAAAAAAAAAQID/8QAGREBAQEAAwAA'.
-'AAAAAAAAAAAAAAEREiFR/9oADAMBAAIRAxEAPwDXq9mCjZeQ05VZ5ZST4bfEpa3VdglCbqUe+g9MZ5Uq7V8415WXoMSdQ6etgSps'.
-'19wpkCMDZKUpv0FZvbi1NzpYasMDLDUbMVXrtQdbeeU23xLWkj5RlLYK0J7anW9gbAjCzkOtsVSUJUdtc6dVZK51UeaFm4LKbhpC'.
-'l7EhIFkDW974GbRI2XorUVls1OTdKAOqUpR0Hc3198GITQ6k+hLwrEpoODiDenRfW23bBicg78JXxPpD0mgVOW5PAivNNpahsPW5'.
-'8xxQaSVkboQnhsnYm5OHqDGp1IpsalMKjMsMIC3+XZKbJFth62/QOEfMOZqZXp9JcKZTcGmTky3meSi7xQklI81vMR+sXIz/AEgp'.
-'Q0qPNu6ea8Q2jqtbp8+2w9h/OKORc/cpHjt1dDSHOtLZ4ekHW23bBjj+o9H/AB539aP94MG0+L//2Q==' ; 
-
-//==========================================================
-// ly-small.jpg
-//==========================================================
-$this->chars['y'][0]= 672 ;
-$this->chars['y'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGAAAAwEBAAAAAAAAAAAAAAAAAAQGBQf/xAArEAABAwMEAQIFBQAAAAAAAAAB'.
-'AgMEBREhAAYSEzEHIhQkQVGxQmFxgaH/xAAWAQEBAQAAAAAAAAAAAAAAAAADAQL/xAAeEQEAAgEEAwAAAAAAAAAAAAABABECAxIh'.
-'MUGR8P/aAAwDAQACEQMRAD8Ar3tys07dVHohemz5dWQ7fk91MsA3IIRY8rkKFySceTqw3JVV0KhyKw+0C1CQp9aUOFSiAk4AIAvn'.
-'76xtz0ioVvbcJ6msx2JtOfZmw1PKI5LQcJNh7UqBKcn6+NRfqPu6s1fYc6GxSJsRfWDUVSGA22ygEckJWSexRNgOP0udXzDKOJ0I'.
-'yo62mHm25Sy80l1Z4lSgpQvZRGLgWwPGjTjbchyLH+Ejx22EtJSgO8kki3kADA/nOjWjGzv73CyQZjUWNVp7bNSrj7qJDqflqUlQ'.
-'DMds24l3HvcNr3Pi9gME6T9WWVsemdYWswwC2lPta4m5WMA3OdUExCmozUJD6g84ntMjrHIFBTdQz5yLDx/WDNytpwW6nAkViqVe'.
-'uvmXdlme6n4dCwlRBKEgA2tj99QG7Ilncp5QqpU31PMsJ6x7A32f6SPxo0hPVCD45oVyKf0MtgeT97/nRrO7UOCFla3tn//Z' ; 
-
-//==========================================================
-// d3-small.jpg
-//==========================================================
-$this->chars['3'][0]= 662 ;
-$this->chars['3'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD//gAJSnBHcmFwaP/bAEMACAYGBwYFCAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicg'.
-'IiwjHBwoNyksMDE0NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAB4AEgMBIgACEQEDEQH/xAAZAAACAwEAAAAAAAAAAAAAAAAABAUGBwL/xAArEAABBAED'.
-'AwMDBQEAAAAAAAABAgMEBREABhIhMUEiMmETFZEHFkJDUdH/xAAWAQEBAQAAAAAAAAAAAAAAAAABAAL/xAAYEQEBAQEBAAAAAAAA'.
-'AAAAAAAAEQExQf/aAAwDAQACEQMRAD8A0vclruBdk3VVLLUNssGRJsZSCtqOjlgJAHvcOD6c4HnOdIbcttw1W5P29cFEhuawqTXS'.
-'VsJjnCMBxKkJJx7goAde+ceJfdNxU0UNlyymyXHi6kxWUNl1S3EnkAEIHX2nv86qtTuZr9Q9+1VhRsOoYpYcgSVyAE/TdewkJxnK'.
-'sBCjkdPGpnOtFMd3PqsXgfOAgD8Y0aX+11H9rDDjn8lr9yj5J+dGqsqxaw6Cc9cQZU4Sp7zTJsIrKlcUEKwhSin1JABI45GUjqOu'.
-'lbOvjbc3Ts9ynjGCy445UuFLYRzbWgrT6fhSCQSMDke+pew2zYVly/d7YchNqkMJZnQpgV9J8IzwWFJyUrAJHYgjvpLbu37G5nR7'.
-'vck5C3YRKYEOEVJZj8kjKypXqWvirjk9h+dB9i4faa89TDZUfKlIyT8k+To10a6KTkpcJ/0vL/7o0TS//9k=' ; 
-
-//==========================================================
-// ln-small.jpg
-//==========================================================
-$this->chars['n'][0]= 643 ;
-$this->chars['n'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGwAAAgEFAAAAAAAAAAAAAAAAAAYCAQMEBQf/xAAtEAACAQMCBAUCBwAAAAAA'.
-'AAABAgMEBREAIQYSE0EHIjFRcWGRIzIzQoGCwf/EABYBAQEBAAAAAAAAAAAAAAAAAAMEAP/EABkRAQEBAQEBAAAAAAAAAAAAAAEA'.
-'AhEhUf/aAAwDAQACEQMRAD8A6FR3p7v4oV9rlkMQsjL00RyOss0KkFxnDcrc2PbI1NOJKyTjW+W5OmKeA0UEJx5meRZS2/8AUfbS'.
-'LVGS1+K16vCzfiR3GmoqqXGyxz06hWPsFlVMfOmq1iNvE69KjBYo3oJMZ3GKeYYPxg/fW+xzZX1FLQyxwSTcpWNceu4G3+aNSmpY'.
-'qmQzzwh2k8yhv2r2H23/AJ0aoy+EWh7I1ntacR3PxDtEzhjWy0wkkIwYmanU5GO6sNh7rrU8AVdTceNbhDXxNHUQvS0tZ3DzwxVA'.
-'fB7hj59/XJ08cPWaKj4gvlwSQiG7dCboqvLy9NOmQT9SM7ayJrBa6K5V91hjlWorp4JGUOAglRSiMMDb82/vgaBGTpVvtNUVtyJg'.
-'5+WNAh5ZCu/r2+dGrgq0pi0DhmlRsSSAfqMd+b6ZyNu3po1Rk1yNBe3/2Q==' ; 
-
-//==========================================================
-// lu-small.jpg
-//==========================================================
-$this->chars['u'][0]= 671 ;
-$this->chars['u'][1]= 
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYDBAUH/8QAJRAAAQQBAwQDAQEAAAAAAAAA'.
-'AQIDBBEFAAYhBxMxYRJBURSB/8QAFgEBAQEAAAAAAAAAAAAAAAAAAQAD/8QAGhEBAQEAAwEAAAAAAAAAAAAAAQARITFBAv/aAAwD'.
-'AQACEQMRAD8A6dLkQmJzu3WVtHIqjf0duKFNuBr5UTQ45F1R8/XI1PMmsYoJyjhS9iI7BKHeKjkXZVXqhyLHP+rrHeR1pZlx1W1M'.
-'wTiW0ukkrS28nn5fV2SPPFfurHUKQhzYG7pLYKEfyBhaSOS7dG/YCki/uvWn3LPDOJrwa4kyEzOYeakqkpC3Hk0bNePQHgDRpchY'.
-'leIZwzUWauKtuPctTSUlCAUmrBHIKuAPV/ujQsmHdm7hya43UbbD3ZVElOQJsdTS6IQaQUqBHCk8E2Pocgam6oYwObHy0Zm0oi45'.
-'T1KBPdpV2f0pom/1Ws7cmPazu98Ltvcq3VzRHfehz8a4pirFEKRZo8eQT+eCdWYfS/b+WYnxpbuVcDRMdHcyTqg2fiAfiLoi+Rf+'.
-'jT7Xc74HtOYnHyUOh8yWUvKeHhy0CiPVUAPoDRrm+OeznTva6lzsyMjCYbbaiNJjJSWElagD5tRpNUSALFeNGoOCH7Bv/9k=' ; 
-
-//==========================================================
-// lw-small.jpg
-//==========================================================
-$this->chars['w'][0]= 673 ;
-$this->chars['w'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABcDASIAAhEBAxEB/8QAGAAAAgMAAAAAAAAAAAAAAAAAAAYDBAX/xAAtEAACAQMDAgMHBQAAAAAAAAAB'.
-'AgMEBREABhIhMRMUQRUiIzJRYZEWNIGx0f/EABYBAQEBAAAAAAAAAAAAAAAAAAABA//EABoRAAICAwAAAAAAAAAAAAAAAAABERIh'.
-'MVH/2gAMAwEAAhEDEQA/AHXbV13ZLu6t2/uaa1JijWopVp4XUTKSAXRyc+6ehBGeoPbTSlwpql0K3GneqpZViqUhI5JzGMEZJGeh'.
-'GlXfaFILDf7FQzXC426rDLTojs8sLqVkXBGcfKf40twWbdWzZY75R0s90ul3jPtKjVMJDNn4DDp8iEhW+wJ1WZG2KWt3Lv26U1tv'.
-'92o7PaYkgYUbqVepYlmUBlIwqnB++O2jTDt/bBtth9jcpvEWNGqalZQryTlmeR8jPct6+mNGmRC4a1U13htzVFItB5nA/cyOUVfp'.
-'7oz/ALqitJulYJKuqvFsppHALLFb3cp9FBaXr+O51bq0q6i38KK5PDVAAxSzU6SIpz3Kjjn8jUFoS7uFmut1gq17xLFQ+DxOccj8'.
-'Rsn+tVpiyJnqv09YfOXu5AycgZZQEhBZjgDBOOgwO/po0sttWHdNzqLruioa4UwmdaC3kYp4IwSvJlBHKQ4OSe3po0qxM6P/2Q==' ;
-
-//==========================================================
-// lq-small.jpg
-//==========================================================
-$this->chars['q'][0]= 671 ;
-$this->chars['q'][1]=
-'/9j/4AAQSkZJRgABAQEASgBKAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAx'.
-'NDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy'.
-'MjIyMjIyMjL/wAARCAAeABQDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAcDBAUG/8QAKRAAAQQBBAICAQQDAAAAAAAA'.
-'AQIDBBEFAAYSIQcxIlETCBQVgSNBYf/EABUBAQEAAAAAAAAAAAAAAAAAAAAB/8QAFhEBAQEAAAAAAAAAAAAAAAAAAAER/9oADAMB'.
-'AAIRAxEAPwDT3H5Qz+O3LN2vtrF/y86NYLzzVlAABJITQPv2a/17vXMboz3lDEYWPuafNx7CFrS03+2jpK2bs0CUkUa7pRvrUu63'.
-'sr438yv7pLEo4XIK5Kcji0uJUkckm+uQUOVH6GsnyJv7A5vaJwuFdkONLmolgONFH4vioKRXYqyCADXvRMh0yspmZ4jyIEtDTK47'.
-'aiA0lQUopBJBI/7X9aNT7amRo228e3a31iO3yUzCcdSPiKAIFdCho0TIswZ7GQlO/hlRxBooih1YXzAoKUkX0LPEBX110dJ7zbuv'.
-'AORpO04cIpmxH23FSEIRwKuNnsdk0o31702XhFMKbuRUZJWP8LTQ6HBCuIB+iVWSR2BXuqK93/hDlvGzEphmG3Ml5JpDi1I7TzNA'.
-'BYFlPafY+/7LBiv1CYDH4iFDOGySlMR22lFP4wCUpANfL11o1r4bxXlWMNEaE/bqlIbCFl/ANPK5Do/M0VDr2Rf3o0TX/9k=' ;
-
-
-
-    } 
-}
-
-class AntiSpam {
-
-    var $iData='';
-    var $iDD=null;
-
-    function AntiSpam($aData='') {
-	$this->iData = $aData;
-	$this->iDD = new HandDigits();	
-    }
-
-    function Set($aData) {
-	$this->iData = $aData;
-    }
-
-    function Rand($aLen) {
-	$d='';
-	for($i=0; $i < $aLen; ++$i) {
-	    if( rand(0,9) < 6 ) {
-		// Digits
-		$d .= chr( ord('1') + rand(0,8) );
-	    }
-	    else {
-		// Letters
-		do {
-		    $offset = rand(0,25);
-		} while ( $offset==14 );
-		$d .= chr( ord('a') + $offset );
-	    }
-	}
-	$this->iData = $d;
-	return $d;
-    }
-
-    function Stroke($aStrokeFileName="") {
-
-	$n=strlen($this->iData);
-	if( $n==0 ) {
-	    return false;
-	}
-
-	for($i=0; $i < $n; ++$i ) {
-	    if( $this->iData[$i]==='0' || strtolower($this->iData[$i])==='o') {
-		return false;
-	    }
-	}
-
-	$img = @imagecreatetruecolor($n*$this->iDD->iWidth, $this->iDD->iHeight);
-	if( $img < 1 ) {
-	    return false;
-	}
-
-	$start=0;
-	for($i=0; $i < $n; ++$i ) {
-	    $dimg = imagecreatefromstring(base64_decode($this->iDD->chars[strtolower($this->iData[$i])][1]));
-	    imagecopy($img,$dimg,$start,0,0,0,imagesx($dimg), $this->iDD->iHeight);
-	    $start += imagesx($dimg);
-	}
-	$resimg = @imagecreatetruecolor($start+4, $this->iDD->iHeight+4);
-	if( $resimg < 1 ) {
-	    return false;
-	}
-
-	imagecopy($resimg,$img,2,2,0,0,$start, $this->iDD->iHeight);
-
-	if( $aStrokeFileName!="" ) {
-	    if( file_exists($aStrokeFileName) ) {
-		if( !@unlink($aStrokeFileName) )
-		    return false;
-	    }
-	    imagejpeg($resimg,$aStrokeFileName);
-	    return;
-	}
-
-	header("Content-type: image/jpeg");
-	$res=imagejpeg($resimg);
-	return $res;
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_bar.php b/nightly-test-server/jpgraph/jpgraph_bar.php
deleted file mode 100644
index b40d6ce..0000000
--- a/nightly-test-server/jpgraph/jpgraph_bar.php
+++ /dev/null
@@ -1,969 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_BAR.PHP
-// Description:	Bar plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once('jpgraph_plotband.php');
-
-// Pattern for Bars
-DEFINE('PATTERN_DIAG1',1);
-DEFINE('PATTERN_DIAG2',2);
-DEFINE('PATTERN_DIAG3',3);
-DEFINE('PATTERN_DIAG4',4);
-DEFINE('PATTERN_CROSS1',5);
-DEFINE('PATTERN_CROSS2',6);
-DEFINE('PATTERN_CROSS3',7);
-DEFINE('PATTERN_CROSS4',8);
-DEFINE('PATTERN_STRIPE1',9);
-DEFINE('PATTERN_STRIPE2',10);
-
-//===================================================
-// CLASS BarPlot
-// Description: Main code to produce a bar plot 
-//===================================================
-class BarPlot extends Plot {
-    var $width=0.4; // in percent of major ticks
-    var $abswidth=-1; // Width in absolute pixels
-    var $fill=false,$fill_color="lightblue"; // Default is to fill with light blue
-    var $ybase=0; // Bars start at 0 
-    var $align="center";
-    var $grad=false,$grad_style=1;
-    var $grad_fromcolor=array(50,50,200),$grad_tocolor=array(255,255,255);
-    var $bar_shadow=false;
-    var $bar_shadow_color="black";
-    var $bar_shadow_hsize=3,$bar_shadow_vsize=3;	
-    var $valuepos='top';
-    var $iPattern=-1,$iPatternDensity=80,$iPatternColor='black';
-	
-//---------------
-// CONSTRUCTOR
-    function BarPlot(&$datay,$datax=false) {
-	$this->Plot($datay,$datax);		
-	++$this->numpoints;
-    }
-
-//---------------
-// PUBLIC METHODS	
-	
-    // Set a drop shadow for the bar (or rather an "up-right" shadow)
-    function SetShadow($color="black",$hsize=3,$vsize=3,$show=true) {
-	$this->bar_shadow=$show;
-	$this->bar_shadow_color=$color;
-	$this->bar_shadow_vsize=$vsize;
-	$this->bar_shadow_hsize=$hsize;
-		
-	// Adjust the value margin to compensate for shadow
-	$this->value->margin += $vsize;
-    }
-		
-    // DEPRECATED use SetYBase instead
-    function SetYMin($aYStartValue) {
-	//die("JpGraph Error: Deprecated function SetYMin. Use SetYBase() instead.");    	
-	$this->ybase=$aYStartValue;
-    }
-
-    // Specify the base value for the bars
-    function SetYBase($aYStartValue) {
-	$this->ybase=$aYStartValue;
-    }
-	
-    function Legend(&$graph) {
-	if( $this->grad && $this->legend!="" && !$this->fill ) {
-	    $color=array($this->grad_fromcolor,$this->grad_tocolor);
-	    // In order to differentiate between gradients and cooors specified as an RGB triple
-	    $graph->legend->Add($this->legend,$color,"",-$this->grad_style,
-				$this->legendcsimtarget,$this->legendcsimalt);
-	}
-	elseif( $this->legend!="" && ($this->iPattern > -1 || is_array($this->iPattern)) ) {
-	    if( is_array($this->iPattern) ) {
-		$p1 = $this->iPattern[0];
-		$p2 = $this->iPatternColor[0];
-		$p3 = $this->iPatternDensity[0];
-	    }
-	    else {
-		$p1 = $this->iPattern;
-		$p2 = $this->iPatternColor;
-		$p3 = $this->iPatternDensity;
-	    }
-	    $color = array($p1,$p2,$p3,$this->fill_color);
-	    // A kludge: Too mark that we add a pattern we use a type value of < 100
-	    $graph->legend->Add($this->legend,$color,"",-101,
-				$this->legendcsimtarget,$this->legendcsimalt);
-	}
-	elseif( $this->fill_color && $this->legend!="" ) {
-	    if( is_array($this->fill_color) ) {
-		$graph->legend->Add($this->legend,$this->fill_color[0],"",0,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    }
-	    else {
-		$graph->legend->Add($this->legend,$this->fill_color,"",0,
-				    $this->legendcsimtarget,$this->legendcsimalt);	
-	    }
-	}
-    }
-
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-	parent::PreStrokeAdjust($graph);
-
-	// If we are using a log Y-scale we want the base to be at the
-	// minimum Y-value unless the user have specifically set some other
-	// value than the default.
-	if( substr($graph->axtype,-3,3)=="log" && $this->ybase==0 )
-	    $this->ybase = $graph->yaxis->scale->GetMinVal();
-		
-	// For a "text" X-axis scale we will adjust the
-	// display of the bars a little bit.
-	if( substr($graph->axtype,0,3)=="tex" ) {
-	    // Position the ticks between the bars
-	    $graph->xaxis->scale->ticks->SetXLabelOffset(0.5,0);
-
-	    // Center the bars 
-	    if( $this->abswidth > -1 ) {
-		$graph->SetTextScaleAbsCenterOff($this->abswidth);
-	    }
-	    else {
-		if( $this->align == "center" )
-		    $graph->SetTextScaleOff(0.5-$this->width/2);
-		elseif( $this->align == "right" )
-		    $graph->SetTextScaleOff(1-$this->width);			
-	    }
-
-	}
-	elseif( is_a($this,'AccBarPlot') || is_a($this,'GroupBarPlot') ) { 
-	    // We only set an absolute width for linear and int scale
-	    // for text scale the width will be set to a fraction of
-	    // the majstep width.
-	    if( $this->abswidth == -1 ) {
-                // Not set
-		// set width to a visuable sensible default
-		$this->abswidth = $graph->img->plotwidth/(2*count($this->coords[0]));
-	    }
-	}
-    }
-
-    function Min() {
-	$m = parent::Min();
-	if( $m[1] >= $this->ybase )
-	    $m[1] = $this->ybase;
-	return $m;	
-    }
-
-    function Max() {
-	$m = parent::Max();
-	if( $m[1] <= $this->ybase )
-	    $m[1] = $this->ybase;
-	return $m;	
-    }	
-	
-    // Specify width as fractions of the major stepo size
-    function SetWidth($aWidth) {
-	if( $aWidth > 1 ) {
-	    // Interpret this as absolute width
-	    $this->abswidth=$aWidth;
-	}
-	else
-	    $this->width=$aWidth;
-    }
-	
-    // Specify width in absolute pixels. If specified this
-    // overrides SetWidth()
-    function SetAbsWidth($aWidth) {
-	$this->abswidth=$aWidth;
-    }
-		
-    function SetAlign($aAlign) {
-	$this->align=$aAlign;
-    }
-	
-    function SetNoFill() {
-	$this->grad = false;
-	$this->fill_color=false;
-	$this->fill=false;
-    }
-		
-    function SetFillColor($aColor) {
-	$this->fill = true ;
-	$this->fill_color=$aColor;
-    }
-	
-    function SetFillGradient($from_color,$to_color,$style) {
-	$this->grad=true;
-	$this->grad_fromcolor=$from_color;
-	$this->grad_tocolor=$to_color;
-	$this->grad_style=$style;
-    }
-	
-    function SetValuePos($aPos) {
-	$this->valuepos = $aPos;
-    }
-
-    function SetPattern($aPattern, $aColor='black'){
-	if( is_array($aPattern) ) {
-	    $n = count($aPattern);
-	    $this->iPattern = array();
-	    $this->iPatternDensity = array();
-	    if( is_array($aColor) ) {
-		$this->iPatternColor = array();
-		if( count($aColor) != $n ) {
-		    JpGraphError::RaiseL(2001);//('NUmber of colors is not the same as the number of patterns in BarPlot::SetPattern()');
-		}
-	    }
-	    else
-		$this->iPatternColor = $aColor;
-	    for( $i=0; $i < $n; ++$i ) {
-		$this->_SetPatternHelper($aPattern[$i], $this->iPattern[$i], $this->iPatternDensity[$i]);
-		if( is_array($aColor) ) {
-		    $this->iPatternColor[$i] = $aColor[$i];
-		}
-	    }
-	}
-	else {
-	    $this->_SetPatternHelper($aPattern, $this->iPattern, $this->iPatternDensity);
-	    $this->iPatternColor = $aColor;
-	}
-    }
-
-    function _SetPatternHelper($aPattern, &$aPatternValue, &$aDensity){
-	switch( $aPattern ) {
-	    case PATTERN_DIAG1:
-		$aPatternValue= 1;
-		$aDensity = 90;
-		break;
-	    case PATTERN_DIAG2:
-		$aPatternValue= 1;
-		$aDensity = 75;
-		break;
-	    case PATTERN_DIAG3:
-		$aPatternValue= 2;
-		$aDensity = 90;
-		break;
-	    case PATTERN_DIAG4:
-		$aPatternValue= 2;
-		$aDensity = 75;
-		break;
-	    case PATTERN_CROSS1:
-		$aPatternValue= 8;
-		$aDensity = 90;
-		break;
-	    case PATTERN_CROSS2:
-		$aPatternValue= 8;
-		$aDensity = 78;
-		break;
-	    case PATTERN_CROSS3:
-		$aPatternValue= 8;
-		$aDensity = 65;
-		break;
-	    case PATTERN_CROSS4:
-		$aPatternValue= 7;
-		$aDensity = 90;
-		break;
-	    case PATTERN_STRIPE1:
-		$aPatternValue= 5;
-		$aDensity = 95;
-		break;
-	    case PATTERN_STRIPE2:
-		$aPatternValue= 5;
-		$aDensity = 85;
-		break;
-	    default:
-		JpGraphError::RaiseL(2002);//('Unknown pattern specified in call to BarPlot::SetPattern()');
-	}
-    }
-
-    function Stroke(&$img,&$xscale,&$yscale) { 
-		
-	$numpoints = count($this->coords[0]);
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$numpoints )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])."Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-		
-		
-	$numbars=count($this->coords[0]);
-
-	// Use GetMinVal() instead of scale[0] directly since in the case
-	// of log scale we get a correct value. Log scales will have negative
-	// values for values < 1 while still not representing negative numbers.
-	if( $yscale->GetMinVal() >= 0 ) 
-	    $zp=$yscale->scale_abs[0]; 
-	else {
-	    $zp=$yscale->Translate(0);
-	}
-
-	if( $this->abswidth > -1 ) {
-	    $abswidth=$this->abswidth;
-	}
-	else
-	    $abswidth=round($this->width*$xscale->scale_factor,0);
-
-	// Count potential pattern array to avoid doing the count for each iteration
-	if( is_array($this->iPattern) ) {
-	    $np = count($this->iPattern);
-	}
-					
-	for($i=0; $i < $numbars; ++$i) {
-
- 	    // If value is NULL, or 0 then don't draw a bar at all
- 	    if ($this->coords[0][$i] === null ||
-		$this->coords[0][$i] === '' ||
-		$this->coords[0][$i] === 0 ) continue;    
-
-	    if( $exist_x ) $x=$this->coords[1][$i];
-	    else $x=$i;
-			
-	    $x=$xscale->Translate($x);
-
-// Comment Note: This confuses the positioning when using acc together with 
-// grouped bars. Workaround for fixing #191
-/*
-	    if( !$xscale->textscale ) {
-	    	if($this->align=="center")
-		    $x -= $abswidth/2;
-		elseif($this->align=="right")
-		    $x -= $abswidth;			
-	    }
-
-*/
-	    // Stroke fill color and fill gradient
-	    $pts=array(
-		$x,$zp,
-		$x,$yscale->Translate($this->coords[0][$i]),
-		$x+$abswidth,$yscale->Translate($this->coords[0][$i]),
-		$x+$abswidth,$zp);
-	    if( $this->grad ) {
-		$grad = new Gradient($img);
-		$grad->FilledRectangle($pts[2],$pts[3],
-				       $pts[6],$pts[7],
-				       $this->grad_fromcolor,$this->grad_tocolor,$this->grad_style); 
-	    }
-	    elseif( !empty($this->fill_color) ) {
-		if(is_array($this->fill_color)) {
-		    $img->PushColor($this->fill_color[$i % count($this->fill_color)]);
-		} else {
-		    $img->PushColor($this->fill_color);
-		}
-		$img->FilledPolygon($pts);
-		$img->PopColor();
-	    }
- 
-			
-	    // Remember value of this bar
-	    $val=$this->coords[0][$i];
-
-	    if( !empty($val) && !is_numeric($val) ) {
-		JpGraphError::RaiseL(2004,$i,$val);
-//('All values for a barplot must be numeric. You have specified value['.$i.'] == \''.$val.'\'');
-	    }
-
-	    // Determine the shadow
-	    if( $this->bar_shadow && $val != 0) {
-
-		$ssh = $this->bar_shadow_hsize;
-		$ssv = $this->bar_shadow_vsize;
-		// Create points to create a "upper-right" shadow
-		if( $val > 0 ) {
-		    $sp[0]=$pts[6];		$sp[1]=$pts[7];
-		    $sp[2]=$pts[4];		$sp[3]=$pts[5];
-		    $sp[4]=$pts[2];		$sp[5]=$pts[3];
-		    $sp[6]=$pts[2]+$ssh;	$sp[7]=$pts[3]-$ssv;
-		    $sp[8]=$pts[4]+$ssh;	$sp[9]=$pts[5]-$ssv;
-		    $sp[10]=$pts[6]+$ssh;	$sp[11]=$pts[7]-$ssv;
-		} 
-		elseif( $val < 0 ) {
-		    $sp[0]=$pts[4];		$sp[1]=$pts[5];
-		    $sp[2]=$pts[6];		$sp[3]=$pts[7];
-		    $sp[4]=$pts[0];		$sp[5]=$pts[1];
-		    $sp[6]=$pts[0]+$ssh;	$sp[7]=$pts[1]-$ssv;
-		    $sp[8]=$pts[6]+$ssh;	$sp[9]=$pts[7]-$ssv;
-		    $sp[10]=$pts[4]+$ssh;	$sp[11]=$pts[5]-$ssv;
-		}
-		if( is_array($this->bar_shadow_color) ) {
-		    $numcolors = count($this->bar_shadow_color);
-		    if( $numcolors == 0 ) {
-			JpGraphError::RaiseL(2005);//('You have specified an empty array for shadow colors in the bar plot.');
-		    }
-		    $img->PushColor($this->bar_shadow_color[$i % $numcolors]);
-		}
-		else {
-		    $img->PushColor($this->bar_shadow_color);
-		}
-		$img->FilledPolygon($sp);
-		$img->PopColor();
-	    }
-			
-	    // Stroke the pattern
-	    if( is_array($this->iPattern) ) {
-		$f = new RectPatternFactory();
-		if( is_array($this->iPatternColor) ) {
-		    $pcolor = $this->iPatternColor[$i % $np];
-		}
-		else
-		    $pcolor = $this->iPatternColor;
-		$prect = $f->Create($this->iPattern[$i % $np],$pcolor,1);
-		$prect->SetDensity($this->iPatternDensity[$i % $np]);
-
-		if( $val < 0 ) {
-		    $rx = $pts[0];
-		    $ry = $pts[1];
-		}
-		else {
-		    $rx = $pts[2];
-		    $ry = $pts[3];
-		}
-		$width = abs($pts[4]-$pts[0])+1;
-		$height = abs($pts[1]-$pts[3])+1;
-		$prect->SetPos(new Rectangle($rx,$ry,$width,$height));
-		$prect->Stroke($img);
-	    }
-	    else {
-		if( $this->iPattern > -1 ) {
-		    $f = new RectPatternFactory();
-		    $prect = $f->Create($this->iPattern,$this->iPatternColor,1);
-		    $prect->SetDensity($this->iPatternDensity);
-		    if( $val < 0 ) {
-			$rx = $pts[0];
-			$ry = $pts[1];
-		    }
-		    else {
-			$rx = $pts[2];
-			$ry = $pts[3];
-		    }
-		    $width = abs($pts[4]-$pts[0])+1;
-		    $height = abs($pts[1]-$pts[3])+1;
-		    $prect->SetPos(new Rectangle($rx,$ry,$width,$height));
-		    $prect->Stroke($img);
-		}
-	    }
-	    // Stroke the outline of the bar
-	    if( is_array($this->color) )
-		$img->SetColor($this->color[$i % count($this->color)]);
-	    else
-		$img->SetColor($this->color);
-
-	    $pts[] = $pts[0];
-	    $pts[] = $pts[1];
-
-	    if( $this->weight > 0 ) {
-		$img->SetLineWeight($this->weight);
-		$img->Polygon($pts);
-	    }
-			
-	    // Determine how to best position the values of the individual bars
-	    $x=$pts[2]+($pts[4]-$pts[2])/2;
-	    if( $this->valuepos=='top' ) {
-		$y=$pts[3];
-		if( $img->a === 90 ) {
-		    if( $val < 0 )
-			$this->value->SetAlign('right','center');			
-		    else
-			$this->value->SetAlign('left','center');
-			
-		}
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    elseif( $this->valuepos=='max' ) {
-		$y=$pts[3];
-		if( $img->a === 90 ) {
-		    if( $val < 0 )
-			$this->value->SetAlign('left','center');
-		    else
-			$this->value->SetAlign('right','center');		    
-		}
-		else {
-		    $this->value->SetAlign('center','top');
-		}
-		$this->value->SetMargin(-3);
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    elseif( $this->valuepos=='center' ) {
-		$y = ($pts[3] + $pts[1])/2;
-		$this->value->SetAlign('center','center');
-		$this->value->SetMargin(0);
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    elseif( $this->valuepos=='bottom' || $this->valuepos=='min' ) {
-		$y=$pts[1];
-		if( $img->a === 90 ) {
-		    if( $val < 0 )
-			$this->value->SetAlign('right','center');
-		    else
-			$this->value->SetAlign('left','center');		    		    
-		}
-		$this->value->SetMargin(3);
-		$this->value->Stroke($img,$val,$x,$y);
-	    }
-	    else {
-		JpGraphError::RaiseL(2006,$this->valuepos);
-//('Unknown position for values on bars :'.$this->valuepos);
-	    }
-	    if( !empty($this->csimtargets[$i]) ) {
-		// Create the client side image map
-		$rpts = $img->ArrRotate($pts);		
-		$csimcoord=round($rpts[0]).", ".round($rpts[1]);
-		for( $j=1; $j < 4; ++$j){
-		    $csimcoord .= ", ".round($rpts[2*$j]).", ".round($rpts[2*$j+1]);
-		}	    	    
-		$this->csimareas .= '<area shape="poly" coords="'.$csimcoord.'" ';    	    
-		$this->csimareas .= " href=\"".htmlentities($this->csimtargets[$i])."\"";
-		$sval='';
-		if( !empty($this->csimalts[$i]) ) {
-		    $sval=sprintf($this->csimalts[$i],$this->coords[0][$i]);
-		    $this->csimareas .= " title=\"$sval\" ";
-		}
-		$this->csimareas .= " alt=\"$sval\" />\n";
-	    }
-	}
-	return true;
-    }
-} // Class
-
-//===================================================
-// CLASS GroupBarPlot
-// Description: Produce grouped bar plots
-//===================================================
-class GroupBarPlot extends BarPlot {
-    var $plots=array(), $nbrplots=0;
-    var $numpoints;
-//---------------
-// CONSTRUCTOR
-    function GroupBarPlot($plots) {
-	$this->width=0.5;
-	$this->plots = $plots;
-	$this->nbrplots = count($plots);
-	if( $this->nbrplots < 1 ) {
-	    JpGraphError::RaiseL(2007);//('Cannot create GroupBarPlot from empty plot array.');
-	}
-	for($i=0; $i < $this->nbrplots; ++$i ) {
-	    if( empty($this->plots[$i]) || !isset($this->plots[$i]) ) {
-		JpGraphError::RaiseL(2008,$i);//("Group bar plot element nbr $i is undefined or empty.");
-	    }
-	}
-	$this->numpoints = $plots[0]->numpoints;
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Legend(&$graph) {
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    $c = get_class($this->plots[$i]);
-	    if( !is_a($this->plots[$i],'BarPlot') ) {
-		JpGraphError::RaiseL(2009,$c);//('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the Group Bar plot from an array of BarPlot or AccBarPlot objects. (Class = '.$c.')');
-	    }
-	    $this->plots[$i]->DoLegend($graph);
-	}
-    }
-	
-    function Min() {
-	list($xmin,$ymin) = $this->plots[0]->Min();
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    list($xm,$ym) = $this->plots[$i]->Min();
-	    $xmin = max($xmin,$xm);
-	    $ymin = min($ymin,$ym);
-	}
-	return array($xmin,$ymin);		
-    }
-	
-    function Max() {
-	list($xmax,$ymax) = $this->plots[0]->Max();
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    list($xm,$ym) = $this->plots[$i]->Max();
-	    $xmax = max($xmax,$xm);
-	    $ymax = max($ymax,$ym);
-	}
-	return array($xmax,$ymax);
-    }
-	
-    function GetCSIMareas() {
-	$n = count($this->plots);
-	$csimareas='';
-	for($i=0; $i < $n; ++$i) {
-	    $csimareas .= $this->plots[$i]->csimareas;
-	}
-	return $csimareas;
-    }
-	
-    // Stroke all the bars next to each other
-    function Stroke(&$img,&$xscale,&$yscale) { 
-	$tmp=$xscale->off;
-	$n = count($this->plots);
-	$subwidth = $this->width/$this->nbrplots ; 
-
-	for( $i=0; $i < $n; ++$i ) {
-	    $this->plots[$i]->ymin=$this->ybase;
-	    $this->plots[$i]->SetWidth($subwidth);
-	    
-	    // If the client have used SetTextTickInterval() then
-	    // major_step will be > 1 and the positioning will fail.
-	    // If we assume it is always one the positioning will work
-	    // fine with a text scale but this will not work with
-	    // arbitrary linear scale
-	    $xscale->off = $tmp+$i*round($xscale->scale_factor* $subwidth);
-	    $this->plots[$i]->Stroke($img,$xscale,$yscale);
-	}
-	$xscale->off=$tmp;
-    }
-} // Class
-
-//===================================================
-// CLASS AccBarPlot
-// Description: Produce accumulated bar plots
-//===================================================
-class AccBarPlot extends BarPlot {
-    var $plots=null,$nbrplots=0,$numpoints=0;
-//---------------
-// CONSTRUCTOR
-    function AccBarPlot($plots) {
-	$this->plots = $plots;
-	$this->nbrplots = count($plots);
-	if( $this->nbrplots < 1 ) {
-	    JpGraphError::RaiseL(2010);//('Cannot create AccBarPlot from empty plot array.');
-	}
-	for($i=0; $i < $this->nbrplots; ++$i ) {
-	    if( empty($this->plots[$i]) || !isset($this->plots[$i]) ) {
-		JpGraphError::RaiseL(2011,$i);//("Acc bar plot element nbr $i is undefined or empty.");
-	    }
-	}
-	$this->numpoints = $plots[0]->numpoints;		
-	$this->value = new DisplayValue();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Legend(&$graph) {
-	$n = count($this->plots);
-	for( $i=$n-1; $i >= 0; --$i ) {
-	    $c = get_class($this->plots[$i]);
-	    if( !is_a($this->plots[$i],'BarPlot') ) {
-		JpGraphError::RaiseL(2012,$c);//('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects.(Class='.$c.')');
-	    }	    
-	    $this->plots[$i]->DoLegend($graph);
-	}
-    }
-
-    function Max() {
-	list($xmax) = $this->plots[0]->Max();
-	$nmax=0;
-	for($i=0; $i < count($this->plots); ++$i) {
-	    $n = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$n);
-	    list($x) = $this->plots[$i]->Max();
-	    $xmax = max($xmax,$x);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for bar $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots max y-value since that
-	    // would in most cases give to large y-value.
-	    $y=0;
-	    if( !isset($this->plots[0]->coords[0][$i]) ) {
-		JpGraphError::RaiseL(2014);
-	    }
-	    if( $this->plots[0]->coords[0][$i] > 0 )
-		$y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		if( !isset($this->plots[$j]->coords[0][$i]) ) {
-		    JpGraphError::RaiseL(2014);
-		}
-		if( $this->plots[$j]->coords[0][$i] > 0 )
-		    $y += $this->plots[$j]->coords[0][$i];
-	    }
-	    $ymax[$i] = $y;
-	}
-	$ymax = max($ymax);
-
-	// Bar always start at baseline
-	if( $ymax <= $this->ybase ) 
-	    $ymax = $this->ybase;
-	return array($xmax,$ymax);
-    }
-
-    function Min() {
-	$nmax=0;
-	list($xmin,$ysetmin) = $this->plots[0]->Min();
-	for($i=0; $i < count($this->plots); ++$i) {
-	    $n = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$n);
-	    list($x,$y) = $this->plots[$i]->Min();
-	    $xmin = Min($xmin,$x);
-	    $ysetmin = Min($y,$ysetmin);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for bar $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots max y-value since that
-	    // would in most cases give to large y-value.
-	    $y=0;
-	    if( $this->plots[0]->coords[0][$i] < 0 )
-		$y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		if( $this->plots[$j]->coords[0][$i] < 0 )
-		    $y += $this->plots[ $j ]->coords[0][$i];
-	    }
-	    $ymin[$i] = $y;
-	}
-	$ymin = Min($ysetmin,Min($ymin));
-	// Bar always start at baseline
-	if( $ymin >= $this->ybase )
-	    $ymin = $this->ybase;
-	return array($xmin,$ymin);
-    }
-
-    // Stroke acc bar plot
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$pattern=NULL;
-	$img->SetLineWeight($this->weight);
-	for($i=0; $i < $this->numpoints-1; $i++) {
-	    $accy = 0;
-	    $accy_neg = 0; 
-	    for($j=0; $j < $this->nbrplots; ++$j ) {				
-		$img->SetColor($this->plots[$j]->color);
-
-		if ( $this->plots[$j]->coords[0][$i] >= 0) {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy);
-		    $accyt=$yscale->Translate($accy);
-		    $accy+=$this->plots[$j]->coords[0][$i];
-		}
-		else {
-		    //if ( $this->plots[$j]->coords[0][$i] < 0 || $accy_neg < 0 ) {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg);
-		    $accyt=$yscale->Translate($accy_neg);
-		    $accy_neg+=$this->plots[$j]->coords[0][$i];
-		}				
-				
-		$xt=$xscale->Translate($i);
-
-		if( $this->abswidth > -1 )
-		    $abswidth=$this->abswidth;
-		else
-		    $abswidth=round($this->width*$xscale->scale_factor,0);
-		
-		$pts=array($xt,$accyt,$xt,$yt,$xt+$abswidth,$yt,$xt+$abswidth,$accyt);
-
-		if( $this->bar_shadow ) {
-		    $ssh = $this->bar_shadow_hsize;
-		    $ssv = $this->bar_shadow_vsize;
-		    
-		    // We must also differ if we are a positive or negative bar. 
-		    if( $j === 0 ) {
-			// This gets extra complicated since we have to
-			// see all plots to see if we are negative. It could
-			// for example be that all plots are 0 until the very
-			// last one. We therefore need to save the initial setup
-			// for both the negative and positive case
-
-			// In case the final bar is positive
-			$sp[0]=$pts[6]+1; $sp[1]=$pts[7];
-			$sp[2]=$pts[6]+$ssh; $sp[3]=$pts[7]-$ssv;
-
-			// In case the final bar is negative
-			$nsp[0]=$pts[0]; $nsp[1]=$pts[1];
-			$nsp[2]=$pts[0]+$ssh; $nsp[3]=$pts[1]-$ssv;
-			$nsp[4]=$pts[6]+$ssh; $nsp[5]=$pts[7]-$ssv;
-			$nsp[10]=$pts[6]+1; $nsp[11]=$pts[7];
-		    }
-
-		    if( $j === $this->nbrplots-1 ) {
-			// If this is the last plot of the bar and
-			// the total value is larger than 0 then we
-			// add the shadow.
-			if( is_array($this->bar_shadow_color) ) {
-			    $numcolors = count($this->bar_shadow_color);
-			    if( $numcolors == 0 ) {
-				JpGraphError::RaiseL(2013);//('You have specified an empty array for shadow colors in the bar plot.');
-			    }
-			    $img->PushColor($this->bar_shadow_color[$i % $numcolors]);
-			}
-			else {
-			    $img->PushColor($this->bar_shadow_color);
-			}
-
-			if( $accy > 0 ) {
-			    $sp[4]=$pts[4]+$ssh; $sp[5]=$pts[5]-$ssv;
-			    $sp[6]=$pts[2]+$ssh; $sp[7]=$pts[3]-$ssv;
-			    $sp[8]=$pts[2]; $sp[9]=$pts[3]-1;
-			    $sp[10]=$pts[4]+1; $sp[11]=$pts[5];
-			    $img->FilledPolygon($sp,4);
-			}
-			elseif( $accy_neg < 0 ) {
-			    $nsp[6]=$pts[4]+$ssh; $nsp[7]=$pts[5]-$ssv;
-			    $nsp[8]=$pts[4]+1; $nsp[9]=$pts[5];
-			    $img->FilledPolygon($nsp,4);
-			}
-			$img->PopColor();
-		    }
-		}
-
-
-		// If value is NULL or 0, then don't draw a bar at all
-		if ($this->plots[$j]->coords[0][$i] == 0 ) continue;
-
-		if( $this->plots[$j]->grad ) {
-		    $grad = new Gradient($img);
-		    $grad->FilledRectangle(
-			$pts[2],$pts[3],
-			$pts[6],$pts[7],
-			$this->plots[$j]->grad_fromcolor,
-			$this->plots[$j]->grad_tocolor,
-			$this->plots[$j]->grad_style);				
-		} else {
-		    if (is_array($this->plots[$j]->fill_color) ) {
-			$numcolors = count($this->plots[$j]->fill_color);
-			$img->SetColor($this->plots[$j]->fill_color[$i % $numcolors]);
-		    }
-		    else {
-			$img->SetColor($this->plots[$j]->fill_color);
-		    }
-		    $img->FilledPolygon($pts);
-		    $img->SetColor($this->plots[$j]->color);
-		}				  
-
-		// Stroke the pattern
-		if( $this->plots[$j]->iPattern > -1 ) {
-		    if( $pattern===NULL ) 
-			$pattern = new RectPatternFactory();
-		
-		    $prect = $pattern->Create($this->plots[$j]->iPattern,$this->plots[$j]->iPatternColor,1);
-		    $prect->SetDensity($this->plots[$j]->iPatternDensity);
-		    if( $this->plots[$j]->coords[0][$i] < 0 ) {
-			$rx = $pts[0];
-			$ry = $pts[1];
-		    }
-		    else {
-			$rx = $pts[2];
-			$ry = $pts[3];
-		    }
-		    $width = abs($pts[4]-$pts[0])+1;
-		    $height = abs($pts[1]-$pts[3])+1;
-		    $prect->SetPos(new Rectangle($rx,$ry,$width,$height));
-		    $prect->Stroke($img);
-		}
-
-
-		// CSIM array
-
-		if( $i < count($this->plots[$j]->csimtargets) ) {
-		    // Create the client side image map
-		    $rpts = $img->ArrRotate($pts);		
-		    $csimcoord=round($rpts[0]).", ".round($rpts[1]);
-		    for( $k=1; $k < 4; ++$k){
-			$csimcoord .= ", ".round($rpts[2*$k]).", ".round($rpts[2*$k+1]);
-		    }	    	    
-		    if( ! empty($this->plots[$j]->csimtargets[$i]) ) {
-			$this->csimareas.= '<area shape="poly" coords="'.$csimcoord.'" '; 
-			$this->csimareas.= " href=\"".$this->plots[$j]->csimtargets[$i]."\"";
-			$sval='';
-			if( !empty($this->plots[$j]->csimalts[$i]) ) {
-			    $sval=sprintf($this->plots[$j]->csimalts[$i],$this->plots[$j]->coords[0][$i]);
-			    $this->csimareas .= " title=\"$sval\" ";
-			}
-			$this->csimareas .= " alt=\"$sval\" />\n";				
-		    }
-		}
-
-		$pts[] = $pts[0];
-		$pts[] = $pts[1];
-		$img->Polygon($pts);
-	    }
-		
-	    // Draw labels for each acc.bar
-	
-	    $x=$pts[2]+($pts[4]-$pts[2])/2;
-	    if($this->bar_shadow) $x += $ssh;
-
-	    // First stroke the accumulated value for the entire bar
-	    // This value is always placed at the top/bottom of the bars
-	    if( $accy_neg < 0 ) {
-		$y=$yscale->Translate($accy_neg);			
-		$this->value->Stroke($img,$accy_neg,$x,$y);
-	    }
-	    else {
-		$y=$yscale->Translate($accy);			
-		$this->value->Stroke($img,$accy,$x,$y);
-	    }
-
-	    $accy = 0;
-	    $accy_neg = 0; 
-	    for($j=0; $j < $this->nbrplots; ++$j ) {	
-
-		// We don't print 0 values in an accumulated bar plot
-		if( $this->plots[$j]->coords[0][$i] == 0 ) continue;
-			
-		if ($this->plots[$j]->coords[0][$i] > 0) {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy);
-		    $accyt=$yscale->Translate($accy);
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$y = $accyt-($accyt-$yt)/2;
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$y = $accyt;
-		    }
-		    else { // top or max
-			$y = $accyt-($accyt-$yt);
-		    }
-		    $accy+=$this->plots[$j]->coords[0][$i];
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$this->plots[$j]->value->SetAlign("center","center");
-			$this->plots[$j]->value->SetMargin(0);
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$this->plots[$j]->value->SetAlign('center','bottom');
-			$this->plots[$j]->value->SetMargin(2);
-		    }
-		    else {
-			$this->plots[$j]->value->SetAlign('center','top');
-			$this->plots[$j]->value->SetMargin(1);
-		    }
-		} else {
-		    $yt=$yscale->Translate($this->plots[$j]->coords[0][$i]+$accy_neg);
-		    $accyt=$yscale->Translate($accy_neg);
-		    $accy_neg+=$this->plots[$j]->coords[0][$i];
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$y = $accyt-($accyt-$yt)/2;
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$y = $accyt;
-		    }
-		    else {
-			$y = $accyt-($accyt-$yt);
-		    }
-		    if(  $this->plots[$j]->valuepos=='center' ) {
-			$this->plots[$j]->value->SetAlign("center","center");
-			$this->plots[$j]->value->SetMargin(0);
-		    }
-		    elseif( $this->plots[$j]->valuepos=='bottom' ) {
-			$this->plots[$j]->value->SetAlign('center',$j==0 ? 'bottom':'top');
-			$this->plots[$j]->value->SetMargin(-2);
-		    }
-		    else {
-			$this->plots[$j]->value->SetAlign('center','bottom');
-			$this->plots[$j]->value->SetMargin(-1);
-		    }
-		}	
-		$this->plots[$j]->value->Stroke($img,$this->plots[$j]->coords[0][$i],$x,$y);
-	    }
-
-	}
-	return true;
-    }
-} // Class
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_canvas.php b/nightly-test-server/jpgraph/jpgraph_canvas.php
deleted file mode 100644
index 54da32a..0000000
--- a/nightly-test-server/jpgraph/jpgraph_canvas.php
+++ /dev/null
@@ -1,95 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_CANVAS.PHP
-// Description:	Canvas drawing extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS CanvasGraph
-// Description: Creates a simple canvas graph which
-// might be used together with the basic Image drawing
-// primitives. Useful to auickoly produce some arbitrary
-// graphic which benefits from all the functionality in the
-// graph liek caching for example. 
-//===================================================
-class CanvasGraph extends Graph {
-//---------------
-// CONSTRUCTOR
-    function CanvasGraph($aWidth=300,$aHeight=200,$aCachedName="",$timeout=0,$inline=1) {
-	$this->Graph($aWidth,$aHeight,$aCachedName,$timeout,$inline);
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    function InitFrame() {
-	$this->StrokePlotArea();
-    }
-
-    // Method description
-    function Stroke($aStrokeFileName="") {
-	if( $this->texts != null ) {
-	    for($i=0; $i < count($this->texts); ++$i) {
-		$this->texts[$i]->Stroke($this->img);
-	    }
-	}		
-	if( $this->iTables !== null ) {
-	    for($i=0; $i < count($this->iTables); ++$i) {
-		$this->iTables[$i]->Stroke($this->img);
-	    }   
-	}
-	$this->StrokeTitles();
-
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-
-	if( !$_csim ) {
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		}
-	    
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-	
-
-	    // If the filename is given as the special _IMG_HANDLER
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,$aStrokeFileName);
-		return true;
-	    }
-	}
-    }
-} // Class
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_canvtools.php b/nightly-test-server/jpgraph/jpgraph_canvtools.php
deleted file mode 100644
index 1e23cc2..0000000
--- a/nightly-test-server/jpgraph/jpgraph_canvtools.php
+++ /dev/null
@@ -1,516 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_CANVTOOLS.PHP
-// Description:	Some utilities for text and shape drawing on a canvas
-// Created: 	2002-08-23
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-DEFINE('CORNER_TOPLEFT',0);
-DEFINE('CORNER_TOPRIGHT',1);
-DEFINE('CORNER_BOTTOMRIGHT',2);
-DEFINE('CORNER_BOTTOMLEFT',3);
-
-
-//===================================================
-// CLASS CanvasScale
-// Description: Define a scale for canvas so we
-// can abstract away with absolute pixels
-//===================================================
- 
-class CanvasScale {
-    var $g;
-    var $w,$h;
-    var $ixmin=0,$ixmax=10,$iymin=0,$iymax=10;
-
-    function CanvasScale(&$graph,$xmin=0,$xmax=10,$ymin=0,$ymax=10) {
-	$this->g = &$graph;
-	$this->w = $graph->img->width;
-	$this->h = $graph->img->height;
-	$this->ixmin = $xmin;
-	$this->ixmax = $xmax;
-	$this->iymin = $ymin;
-	$this->iymax = $ymax;
-    }
-    
-    function Set($xmin=0,$xmax=10,$ymin=0,$ymax=10) {
-	$this->ixmin = $xmin;
-	$this->ixmax = $xmax;
-	$this->iymin = $ymin;
-	$this->iymax = $ymax;
-    }
-
-    function Translate($x,$y) {
-	$xp = round(($x-$this->ixmin)/($this->ixmax - $this->ixmin) * $this->w);
-	$yp = round(($y-$this->iymin)/($this->iymax - $this->iymin) * $this->h);
-	return array($xp,$yp);
-    }
-
-    function TranslateX($x) {
-	$xp = round(($x-$this->ixmin)/($this->ixmax - $this->ixmin) * $this->w);
-	return $xp;
-    }
-
-    function TranslateY($y) {
-	$yp = round(($y-$this->iymin)/($this->iymax - $this->iymin) * $this->h);
-	return $yp;
-    }
-
-}
-
-
-//===================================================
-// CLASS Shape
-// Description: Methods to draw shapes on canvas
-//===================================================
-class Shape {
-    var $img,$scale;
-
-    function Shape(&$aGraph,&$scale) {
-	$this->img = &$aGraph->img;
-	$this->img->SetColor('black');
-	$this->scale = &$scale;
-    }
-
-    function SetColor($aColor) {
-	$this->img->SetColor($aColor);
-    }
-
-    function Line($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2) = $this->scale->Translate($x2,$y2);
-	$this->img->Line($x1,$y1,$x2,$y2);
-    }
-
-    function Polygon($p,$aClosed=false) {
-	$n=count($p);
-	for($i=0; $i < $n; $i+=2 ) {
-	   $p[$i]   = $this->scale->TranslateX($p[$i]);
-	   $p[$i+1] = $this->scale->TranslateY($p[$i+1]);
-	}
-	$this->img->Polygon($p,$aClosed);
-    }
-
-    function FilledPolygon($p) {
-	$n=count($p);
-	for($i=0; $i < $n; $i+=2 ) {
-	   $p[$i]   = $this->scale->TranslateX($p[$i]);
-	   $p[$i+1] = $this->scale->TranslateY($p[$i+1]);
-	}
-	$this->img->FilledPolygon($p);
-    }
-    
-
-    // Draw a bezier curve with defining points in the $aPnts array
-    // using $aSteps steps.
-    // 0=x0, 1=y0
-    // 2=x1, 3=y1
-    // 4=x2, 5=y2
-    // 6=x3, 7=y3
-    function Bezier($p,$aSteps=40) {
-	$x0 = $p[0];
-	$y0 = $p[1];
-	// Calculate coefficients
-	$cx = 3*($p[2]-$p[0]);
-	$bx = 3*($p[4]-$p[2])-$cx;
-	$ax = $p[6]-$p[0]-$cx-$bx;
-	$cy = 3*($p[3]-$p[1]);
-	$by = 3*($p[5]-$p[3])-$cy;
-	$ay = $p[7]-$p[1]-$cy-$by;
-
-	// Step size
-	$delta = 1.0/$aSteps;
-
-	$x_old = $x0;
-	$y_old = $y0;
-	for($t=$delta; $t<=1.0; $t+=$delta) {
-	    $tt = $t*$t; $ttt=$tt*$t;
-	    $x  = $ax*$ttt + $bx*$tt + $cx*$t + $x0;
-	    $y = $ay*$ttt + $by*$tt + $cy*$t + $y0;
-	    $this->Line($x_old,$y_old,$x,$y);
-	    $x_old = $x;
-	    $y_old = $y;
-	}
-	$this->Line($x_old,$y_old,$p[6],$p[7]);
-    }
-
-    function Rectangle($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-	$this->img->Rectangle($x1,$y1,$x2,$y2);
-    }
-
-    function FilledRectangle($x1,$y1,$x2,$y2) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-	$this->img->FilledRectangle($x1,$y1,$x2,$y2);
-    }
-    
-    function Circle($x1,$y1,$r) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	if( $r >= 0 )
-	    $r   = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->Circle($x1,$y1,$r);
-    }
-
-    function FilledCircle($x1,$y1,$r) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	if( $r >= 0 )
-	    $r   = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->FilledCircle($x1,$y1,$r);
-    }
-
-    function RoundedRectangle($x1,$y1,$x2,$y2,$r=null) {    
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-
-	if( $r == null )
-	    $r = 5;
-	elseif( $r >= 0 )
-	    $r = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->RoundedRectangle($x1,$y1,$x2,$y2,$r);
-    }
-
-    function FilledRoundedRectangle($x1,$y1,$x2,$y2,$r=null) {    
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2)   = $this->scale->Translate($x2,$y2);
-
-	if( $r == null )
-	    $r = 5;
-	elseif( $r > 0 )
-	    $r = $this->scale->TranslateX($r);
-	else
-	    $r = -$r;
-	$this->img->FilledRoundedRectangle($x1,$y1,$x2,$y2,$r);    
-    }
-
-    function ShadowRectangle($x1,$y1,$x2,$y2,$fcolor=false,$shadow_width=null,$shadow_color=array(102,102,102)) {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	list($x2,$y2) = $this->scale->Translate($x2,$y2);
-	if( $shadow_width == null ) 
-	    $shadow_width=4;
-	else
-	    $shadow_width=$this->scale->TranslateX($shadow_width);
-	$this->img->ShadowRectangle($x1,$y1,$x2,$y2,$fcolor,$shadow_width,$shadow_color);
-    }
-
-    function SetTextAlign($halign,$valign="bottom") {
-	$this->img->SetTextAlign($halign,$valign="bottom");
-    }
-
-    function StrokeText($x1,$y1,$txt,$dir=0,$paragraph_align="left") {
-	list($x1,$y1) = $this->scale->Translate($x1,$y1);
-	$this->img->StrokeText($x1,$y1,$txt,$dir,$paragraph_align);
-    }
-
-    // A rounded rectangle where one of the corner has been moved "into" the
-    // rectangle 'iw' width and 'ih' height. Corners:
-    // 0=Top left, 1=top right, 2=bottom right, 3=bottom left
-    function IndentedRectangle($xt,$yt,$w,$h,$iw=0,$ih=0,$aCorner=3,$aFillColor="",$r=4) {
-    
-	list($xt,$yt) = $this->scale->Translate($xt,$yt);
-	list($w,$h)   = $this->scale->Translate($w,$h);
-	list($iw,$ih) = $this->scale->Translate($iw,$ih);
-	
-	$xr = $xt + $w - 0;
-	$yl = $yt + $h - 0;
-
-	switch( $aCorner ) {
-	    case 0: // Upper left
-	    
-		// Bottom line, left &  right arc
-		$this->img->Line($xt+$r,$yl,$xr-$r,$yl);
-		$this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-		$this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Right line, Top right arc
-		$this->img->Line($xr,$yt+$r,$xr,$yl-$r);
-		$this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Top line, Top left arc
-		$this->img->Line($xt+$iw+$r,$yt,$xr-$r,$yt);
-		$this->img->Arc($xt+$iw+$r,$yt+$r,$r*2,$r*2,180,270);
-
-		// Left line
-		$this->img->Line($xt,$yt+$ih+$r,$xt,$yl-$r);
-
-		// Indent horizontal, Lower left arc
-		$this->img->Line($xt+$r,$yt+$ih,$xt+$iw-$r,$yt+$ih);
-		$this->img->Arc($xt+$r,$yt+$ih+$r,$r*2,$r*2,180,270);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xt+$iw,$yt+$r,$xt+$iw,$yt+$ih-$r);
-		$this->img->Arc($xt+$iw-$r,$yt+$ih-$r,$r*2,$r*2,0,90);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xr-$r,$yl-$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-
-	    case 1: // Upper right
-
-		// Bottom line, left &  right arc
-		$this->img->Line($xt+$r,$yl,$xr-$r,$yl);
-		$this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-		$this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Left line, Top left arc
-		$this->img->Line($xt,$yt+$r,$xt,$yl-$r);
-		$this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-
-		// Top line, Top right arc
-		$this->img->Line($xt+$r,$yt,$xr-$iw-$r,$yt);
-		$this->img->Arc($xr-$iw-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Right line
-		$this->img->Line($xr,$yt+$ih+$r,$xr,$yl-$r);
-
-		// Indent horizontal, Lower right arc
-		$this->img->Line($xr-$iw+$r,$yt+$ih,$xr-$r,$yt+$ih);
-		$this->img->Arc($xr-$r,$yt+$ih+$r,$r*2,$r*2,270,360);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xr-$iw,$yt+$r,$xr-$iw,$yt+$ih-$r);
-		$this->img->Arc($xr-$iw+$r,$yt+$ih-$r,$r*2,$r*2,90,180);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xt+$r,$yl-$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-
-	    case 2: // Lower right
-		// Top line, Top left & Top right arc
-		$this->img->Line($xt+$r,$yt,$xr-$r,$yt);
-		$this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-		$this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Left line, Bottom left arc
-		$this->img->Line($xt,$yt+$r,$xt,$yl-$r);
-		$this->img->Arc($xt+$r,$yl-$r,$r*2,$r*2,90,180);
-
-		// Bottom line, Bottom right arc
-		$this->img->Line($xt+$r,$yl,$xr-$iw-$r,$yl);
-		$this->img->Arc($xr-$iw-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Right line
-		$this->img->Line($xr,$yt+$r,$xr,$yl-$ih-$r);
-	    
-		// Indent horizontal, Lower right arc
-		$this->img->Line($xr-$r,$yl-$ih,$xr-$iw+$r,$yl-$ih);
-		$this->img->Arc($xr-$r,$yl-$ih-$r,$r*2,$r*2,0,90);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xr-$iw,$yl-$r,$xr-$iw,$yl-$ih+$r);
-		$this->img->Arc($xr-$iw+$r,$yl-$ih+$r,$r*2,$r*2,180,270);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xt+$r,$yt+$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-
-	    case 3: // Lower left
-		// Top line, Top left & Top right arc
-		$this->img->Line($xt+$r,$yt,$xr-$r,$yt);
-		$this->img->Arc($xt+$r,$yt+$r,$r*2,$r*2,180,270);
-		$this->img->Arc($xr-$r,$yt+$r,$r*2,$r*2,270,360);
-
-		// Right line, Bottom right arc
-		$this->img->Line($xr,$yt+$r,$xr,$yl-$r);
-		$this->img->Arc($xr-$r,$yl-$r,$r*2,$r*2,0,90);
-
-		// Bottom line, Bottom left arc
-		$this->img->Line($xt+$iw+$r,$yl,$xr-$r,$yl);
-		$this->img->Arc($xt+$iw+$r,$yl-$r,$r*2,$r*2,90,180);
-
-		// Left line
-		$this->img->Line($xt,$yt+$r,$xt,$yl-$ih-$r);
-	    
-		// Indent horizontal, Lower left arc
-		$this->img->Line($xt+$r,$yl-$ih,$xt+$iw-$r,$yl-$ih);
-		$this->img->Arc($xt+$r,$yl-$ih-$r,$r*2,$r*2,90,180);
-
-		// Indent vertical, Indent arc
-		$this->img->Line($xt+$iw,$yl-$ih+$r,$xt+$iw,$yl-$r);
-		$this->img->Arc($xt+$iw-$r,$yl-$ih+$r,$r*2,$r*2,270,360);
-
-		if( $aFillColor != '' ) {
-		    $bc = $this->img->current_color_name;
-		    $this->img->PushColor($aFillColor);
-		    $this->img->FillToBorder($xr-$r,$yt+$r,$bc);
-		    $this->img->PopColor();
-		}
-
-		break;
-	}
-    }
-}
-
-
-//===================================================
-// CLASS RectangleText
-// Description: Draws a text paragraph inside a 
-// rounded, possible filled, rectangle.
-//===================================================
-class CanvasRectangleText {
-    var $ix,$iy,$iw,$ih,$ir=4;
-    var $iTxt,$iColor='black',$iFillColor='',$iFontColor='black';
-    var $iParaAlign='center';
-    var $iAutoBoxMargin=5;
-    var $iShadowWidth=3,$iShadowColor='';
-
-    function CanvasRectangleText($aTxt='',$xl=0,$yt=0,$w=0,$h=0) {
-	$this->iTxt = new Text($aTxt);
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
- 
-    function SetShadow($aColor='gray',$aWidth=3) {
-	$this->iShadowColor = $aColor;
-	$this->iShadowWidth = $aWidth;
-    }
-
-    function SetFont($FontFam,$aFontStyle,$aFontSize=12) {
-	$this->iTxt->SetFont($FontFam,$aFontStyle,$aFontSize);
-    }
-
-    function SetTxt($aTxt) {
-	$this->iTxt->Set($aTxt);
-    }
-
-    function ParagraphAlign($aParaAlign) {
-	$this->iParaAlign = $aParaAlign;
-    }
-
-    function SetFillColor($aFillColor) {
-	$this->iFillColor = $aFillColor;
-    }
-
-    function SetAutoMargin($aMargin) {
-	$this->iAutoBoxMargin=$aMargin;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetFontColor($aColor) {
-	$this->iFontColor = $aColor;
-    }
-
-    function SetPos($xl=0,$yt=0,$w=0,$h=0) {
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
-
-    function Pos($xl=0,$yt=0,$w=0,$h=0) {
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
-
-    function Set($aTxt,$xl,$yt,$w=0,$h=0) {
-	$this->iTxt->Set($aTxt);
-	$this->ix = $xl;
-	$this->iy = $yt;
-	$this->iw = $w;
-	$this->ih = $h;
-    }
-
-    function SetCornerRadius($aRad=5) {
-	$this->ir = $aRad;
-    }
-
-    function Stroke($aImg,$scale) {
-	
-	// If coordinates are specifed as negative this means we should
-	// treat them as abolsute (pixels) coordinates
-	if( $this->ix > 0 ) {
-	    $this->ix = $scale->TranslateX($this->ix) ;
-	}
-	else {
-	    $this->ix = -$this->ix;
-	}
-
-	if( $this->iy > 0 ) {
-	    $this->iy = $scale->TranslateY($this->iy) ;
-	}
-	else {
-	    $this->iy = -$this->iy;
-	}
-	    
-	list($this->iw,$this->ih) = $scale->Translate($this->iw,$this->ih) ;
-
-	if( $this->iw == 0 ) 
-	    $this->iw = round($this->iTxt->GetWidth($aImg) + $this->iAutoBoxMargin);
-	if( $this->ih == 0 ) {
-	    $this->ih = round($this->iTxt->GetTextHeight($aImg) + $this->iAutoBoxMargin);
-	}
-
-	if( $this->iShadowColor != '' ) {
-	    $aImg->PushColor($this->iShadowColor);
-	    $aImg->FilledRoundedRectangle($this->ix+$this->iShadowWidth,
-					  $this->iy+$this->iShadowWidth,
-					  $this->ix+$this->iw-1+$this->iShadowWidth,
-					  $this->iy+$this->ih-1+$this->iShadowWidth,
-					  $this->ir);
-	    $aImg->PopColor();	    
-	}
-
-	if( $this->iFillColor != '' ) {
-	    $aImg->PushColor($this->iFillColor);
-	    $aImg->FilledRoundedRectangle($this->ix,$this->iy,
-					  $this->ix+$this->iw-1,
-					  $this->iy+$this->ih-1,
-					  $this->ir);
-	    $aImg->PopColor();
-	}
-
-	if( $this->iColor != '' ) {
-	    $aImg->PushColor($this->iColor);
-	    $aImg->RoundedRectangle($this->ix,$this->iy,
-				    $this->ix+$this->iw-1,
-				    $this->iy+$this->ih-1,
-				    $this->ir);
-	    $aImg->PopColor();
-	}
-	
-	$this->iTxt->Align('center','center');
-	$this->iTxt->ParagraphAlign($this->iParaAlign);
-	$this->iTxt->SetColor($this->iFontColor);
-	$this->iTxt->Stroke($aImg, $this->ix+$this->iw/2, $this->iy+$this->ih/2);
-
-	return array($this->iw, $this->ih);
-
-    }
-
-}
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_date.php b/nightly-test-server/jpgraph/jpgraph_date.php
deleted file mode 100644
index 5855124..0000000
--- a/nightly-test-server/jpgraph/jpgraph_date.php
+++ /dev/null
@@ -1,493 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_DATE.PHP
-// Description:	Classes to handle Date scaling
-// Created: 	2005-05-02
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-DEFINE('HOURADJ_1',0+30);
-DEFINE('HOURADJ_2',1+30);
-DEFINE('HOURADJ_3',2+30);
-DEFINE('HOURADJ_4',3+30);
-DEFINE('HOURADJ_6',4+30);
-DEFINE('HOURADJ_12',5+30);
-
-DEFINE('MINADJ_1',0+20);
-DEFINE('MINADJ_5',1+20);
-DEFINE('MINADJ_10',2+20);
-DEFINE('MINADJ_15',3+20);
-DEFINE('MINADJ_30',4+20);
-
-DEFINE('SECADJ_1',0);
-DEFINE('SECADJ_5',1);
-DEFINE('SECADJ_10',2);
-DEFINE('SECADJ_15',3);
-DEFINE('SECADJ_30',4);
-
-
-DEFINE('YEARADJ_1',0+30);
-DEFINE('YEARADJ_2',1+30);
-DEFINE('YEARADJ_5',2+30);
-
-DEFINE('MONTHADJ_1',0+20);
-DEFINE('MONTHADJ_6',1+20);
-
-DEFINE('DAYADJ_1',0);
-DEFINE('DAYADJ_WEEK',1);
-DEFINE('DAYADJ_7',1);
-
-DEFINE('SECPERYEAR',31536000);
-DEFINE('SECPERDAY',86400);
-DEFINE('SECPERHOUR',3600);
-DEFINE('SECPERMIN',60);
-
-
-class DateScale extends LinearScale {
-    var $date_format = '';
-    var $iStartAlign = false, $iEndAlign = false;
-    var $iStartTimeAlign = false, $iEndTimeAlign = false;
-
-//---------------
-// CONSTRUCTOR
-    function DateScale($aMin=0,$aMax=0,$aType='x') {
-	assert($aType=="x");
-	assert($aMin<=$aMax);
-		
-	$this->type=$aType;
-	$this->scale=array($aMin,$aMax);		
-	$this->world_size=$aMax-$aMin;	
-	$this->ticks = new LinearTicks();
-	$this->intscale=true;
-    }
-
-
-//------------------------------------------------------------------------------------------
-// Utility Function AdjDate()
-// Description: Will round a given time stamp to an even year, month or day 
-// argument. 
-//------------------------------------------------------------------------------------------
-
-    function AdjDate($aTime,$aRound=0,$aYearType=false,$aMonthType=false,$aDayType=false) {
-	$y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-	$h=0;$i=0;$s=0;
-	if( $aYearType !== false ) {
-	    $yearAdj = array(0=>1, 1=>2, 2=>5);
-	    if( $aRound == 0 ) {
-		$y = floor($y/$yearAdj[$aYearType])*$yearAdj[$aYearType];
-	    }
-	    else {
-		++$y;
-		$y = ceil($y/$yearAdj[$aYearType])*$yearAdj[$aYearType];
-	    }
-	    $m=1;$d=1;
-	}
-	elseif( $aMonthType !== false ) {
-	    $monthAdj = array(0=>1, 1=>6);
-	    if( $aRound == 0 ) {
-		$m = floor($m/$monthAdj[$aMonthType])*$monthAdj[$aMonthType];
-		$d=1;
-	    }
-	    else {
-		++$m;
-		$m = ceil($m/$monthAdj[$aMonthType])*$monthAdj[$aMonthType];
-		$d=1;
-	    }
-	}
-	elseif( $aDayType !== false ) {
-	    if( $aDayType == 0 ) {
-		if( $aRound == 1 ) {
-		    //++$d;
-		    $h=23;$i=59;$s=59;
-		}
-	    }
-	    else {
-		// Adjust to an even week boundary. 
-		$w = (int)date('w',$aTime); // Day of week 0=Sun, 6=Sat
-		if( true ) { // Adjust to start on Mon
-		    if( $w==0 ) $w=6;
-		    else --$w;
-		}
-		if( $aRound == 0 ) {
-		    $d -= $w;
-		}
-		else {
-		    $d += (7-$w);
-		    $h=23;$i=59;$s=59;
-		}
-	    }
-	}
-	return mktime($h,$i,$s,$m,$d,$y);
-	
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjDate that will round a timestamp to an even date rounding
-// it downwards.
-//------------------------------------------------------------------------------------------
-    function AdjStartDate($aTime,$aYearType=false,$aMonthType=false,$aDayType=false) {
-	return $this->AdjDate($aTime,0,$aYearType,$aMonthType,$aDayType);
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjDate that will round a timestamp to an even date rounding
-// it upwards
-//------------------------------------------------------------------------------------------
-    function AdjEndDate($aTime,$aYearType=false,$aMonthType=false,$aDayType=false) {
-	return $this->AdjDate($aTime,1,$aYearType,$aMonthType,$aDayType);
-    }
-
-//------------------------------------------------------------------------------------------
-// Utility Function AdjTime()
-// Description: Will round a given time stamp to an even time according to 
-// argument. 
-//------------------------------------------------------------------------------------------
-
-    function AdjTime($aTime,$aRound=0,$aHourType=false,$aMinType=false,$aSecType=false) {
-	$y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-	$h = (int)date('H',$aTime); $i = (int)date('i',$aTime); $s = (int)date('s',$aTime);
-	if( $aHourType !== false ) {
-	    $aHourType %= 6;
-	    $hourAdj = array(0=>1, 1=>2, 2=>3, 3=>4, 4=>6, 5=>12);
-	    if( $aRound == 0 )
-		$h = floor($h/$hourAdj[$aHourType])*$hourAdj[$aHourType];
-	    else {
-		if( ($h % $hourAdj[$aHourType]==0) && ($i > 0 || $s > 0) ) {
-		    $h++;
-		}
-		$h = ceil($h/$hourAdj[$aHourType])*$hourAdj[$aHourType];
-		if( $h >= 24 ) {
-		    $aTime += 86400;
-		    $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-		    $h -= 24; 
-		}
-	    }
-	    $i=0;$s=0;
-	}
-	elseif( $aMinType !== false ) {
-	    $aMinType %= 5;
-	    $minAdj = array(0=>1, 1=>5, 2=>10, 3=>15, 4=>30);
-	    if( $aRound == 0 ) {
-		$i = floor($i/$minAdj[$aMinType])*$minAdj[$aMinType];
-	    }
-	    else {
-		if( ($i % $minAdj[$aMinType]==0) && $s > 0 ) {
-		    $i++;
-		}
-		$i = ceil($i/$minAdj[$aMinType])*$minAdj[$aMinType];
-		if( $i >= 60) {
-		    $aTime += 3600;
-		    $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-		    $h = (int)date('H',$aTime); $i = 0;
-		}
-	    }
-	    $s=0;
-	}
-	elseif( $aSecType !== false ) {
-	    $aSecType %= 5;
-	    $secAdj = array(0=>1, 1=>5, 2=>10, 3=>15, 4=>30);
-	    if( $aRound == 0 ) {
-		$s = floor($s/$secAdj[$aSecType])*$secAdj[$aSecType];
-	    }
-	    else {
-		$s = ceil($s/$secAdj[$aSecType]*1.0)*$secAdj[$aSecType];
-		if( $s >= 60) {
-		    $s=0;
-		    $aTime += 60;
-		    $y = (int)date('Y',$aTime); $m = (int)date('m',$aTime); $d = (int)date('d',$aTime);
-		    $h = (int)date('H',$aTime); $i = (int)date('i',$aTime); 
-		}
-	    }
-	}
-	return mktime($h,$i,$s,$m,$d,$y);
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjTime that will round a timestamp to an even time rounding
-// it downwards.
-// Example: AdjStartTime(mktime(18,27,13,2,22,2005),false,2) => 18:20
-//------------------------------------------------------------------------------------------
-    function AdjStartTime($aTime,$aHourType=false,$aMinType=false,$aSecType=false) {
-	return $this->AdjTime($aTime,0,$aHourType,$aMinType,$aSecType);
-    }
-
-//------------------------------------------------------------------------------------------
-// Wrapper for AdjTime that will round a timestamp to an even time rounding
-// it upwards
-// Example: AdjEndTime(mktime(18,27,13,2,22,2005),false,2) => 18:30
-//------------------------------------------------------------------------------------------
-    function AdjEndTime($aTime,$aHourType=false,$aMinType=false,$aSecType=false) {
-	return $this->AdjTime($aTime,1,$aHourType,$aMinType,$aSecType);
-    }
-
-//------------------------------------------------------------------------------------------
-// DateAutoScale
-// Autoscale a date axis given start and end time
-// Returns an array ($start,$end,$major,$minor,$format)
-//------------------------------------------------------------------------------------------
-    function DoDateAutoScale($aStartTime,$aEndTime,$aDensity=0,$aAdjust=true) {
-	// Format of array
-	// array ( Decision point,  array( array( Major-scale-step-array ),  
-	//			    array( Minor-scale-step-array ), 
-	//			    array( 0=date-adjust, 1=time-adjust, adjustment-alignment) )
-	//
-	$scalePoints = 
-	    array(
-		/* Intervall larger than 10 years */
-		SECPERYEAR*10,array(array(SECPERYEAR*5,SECPERYEAR*2),
-				    array(SECPERYEAR), 
-				    array(0,YEARADJ_1, 0,YEARADJ_1) ),
-
-		/* Intervall larger than 2 years */
-		SECPERYEAR*2,array(array(SECPERYEAR),array(SECPERYEAR), 
-				   array(0,YEARADJ_1) ),
-
-		/* Intervall larger than 90 days (approx 3 month) */
-		SECPERDAY*90,array(array(SECPERDAY*30,SECPERDAY*14,SECPERDAY*7,SECPERDAY),
-				   array(SECPERDAY*5,SECPERDAY*7,SECPERDAY,SECPERDAY), 
-				   array(0,MONTHADJ_1, 0,DAYADJ_WEEK, 0,DAYADJ_1, 0,DAYADJ_1)),
-
-		/* Intervall larger than 30 days (approx 1 month) */
-		SECPERDAY*30,array(array(SECPERDAY*14,SECPERDAY*7,SECPERDAY*2, SECPERDAY),
-				   array(SECPERDAY,SECPERDAY.SECPERDAY,SECPERDAY), 
-				   array(0,DAYADJ_WEEK, 0,DAYADJ_1, 0,DAYADJ_1, 0,DAYADJ_1)),
-
-		/* Intervall larger than 7 days */
-		SECPERDAY*7,array(array(SECPERDAY,SECPERHOUR*12,SECPERHOUR*6,SECPERHOUR*2),
-				  array(SECPERHOUR*6,SECPERHOUR*3,SECPERHOUR,SECPERHOUR),
-				  array(0,DAYADJ_1, 1,HOURADJ_12, 1,HOURADJ_6, 1,HOURADJ_1)),
-
-		/* Intervall larger than 1 day */
-		SECPERDAY,array(array(SECPERDAY,SECPERHOUR*12,SECPERHOUR*6,SECPERHOUR*2,SECPERHOUR),
-				array(SECPERHOUR*6,SECPERHOUR*2,SECPERHOUR,SECPERHOUR,SECPERHOUR),
-				array(1,HOURADJ_12, 1,HOURADJ_6, 1,HOURADJ_1, 1,HOURADJ_1)),
-
-		/* Intervall larger than 12 hours */
-		SECPERHOUR*12,array(array(SECPERHOUR*2,SECPERHOUR,SECPERMIN*30,900,600),
-				    array(1800,1800,900,300,300),
-				    array(1,HOURADJ_1, 1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ),
-
-		/* Intervall larger than 2 hours */
-		SECPERHOUR*2,array(array(SECPERHOUR,SECPERMIN*30,900,600,300),
-				   array(1800,900,300,120,60),
-				   array(1,HOURADJ_1, 1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ),
-
-		/* Intervall larger than 1 hours */
-		SECPERHOUR,array(array(SECPERMIN*30,900,600,300),array(900,300,120,60),
-				 array(1,MINADJ_30, 1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5) ),
-
-		/* Intervall larger than 30 min */
-		SECPERMIN*30,array(array(SECPERMIN*15,SECPERMIN*10,SECPERMIN*5,SECPERMIN),
-				   array(300,300,60,10),
-				   array(1,MINADJ_15, 1,MINADJ_10, 1,MINADJ_5, 1,MINADJ_1)),
-
-		/* Intervall larger than 1 min */
-		SECPERMIN,array(array(SECPERMIN,15,10,5),
-				array(15,5,2,1),
-				array(1,MINADJ_1, 1,SECADJ_15, 1,SECADJ_10, 1,SECADJ_5)),
-
-		/* Intervall larger than 10 sec */
-		10,array(array(5,2),
-			 array(1,1),
-			 array(1,SECADJ_5, 1,SECADJ_1)),
-
-		/* Intervall larger than 1 sec */
-		1,array(array(1),
-			array(1),
-			array(1,SECADJ_1)),
-		);
-
-	$ns = count($scalePoints);
-	// Establish major and minor scale units for the date scale
-	$diff = $aEndTime - $aStartTime;
-	if( $diff < 1 ) return false;
-	$done=false;
-	$i=0;
-	while( ! $done ) {
-	    if( $diff > $scalePoints[2*$i] ) {
-		// Get major and minor scale for this intervall
-		$scaleSteps = $scalePoints[2*$i+1];
-		$major = $scaleSteps[0][min($aDensity,count($scaleSteps[0])-1)];
-		// Try to find out which minor step looks best
-		$minor = $scaleSteps[1][min($aDensity,count($scaleSteps[1])-1)];
-		if( $aAdjust ) {
-		    // Find out how we should align the start and end timestamps
-		    $idx = 2*min($aDensity,floor(count($scaleSteps[2])/2)-1);
-		    if( $scaleSteps[2][$idx] === 0 ) { 
-			// Use date adjustment
-			$adj = $scaleSteps[2][$idx+1]; 
-			if( $adj >= 30 ) {
-			    $start = $this->AdjStartDate($aStartTime,$adj-30);
-			    $end   = $this->AdjEndDate($aEndTime,$adj-30);
-			}
-			elseif( $adj >= 20 ) {
-			    $start = $this->AdjStartDate($aStartTime,false,$adj-20);
-			    $end   = $this->AdjEndDate($aEndTime,false,$adj-20);
-			}
-			else {
-			    $start = $this->AdjStartDate($aStartTime,false,false,$adj);
-			    $end   = $this->AdjEndDate($aEndTime,false,false,$adj);
-			    // We add 1 second for date adjustment to make sure we end on 00:00 the following day
-			    // This makes the final major tick be srawn when we step day-by-day instead of ending
-			    // on xx:59:59 which would not draw the final major tick
-			    $end++;	
-			}
-		    }
-		    else {
-			// Use time adjustment
-			$adj = $scaleSteps[2][$idx+1]; 
-			if( $adj >= 30 ) {
-			    $start = $this->AdjStartTime($aStartTime,$adj-30);
-			    $end   = $this->AdjEndTime($aEndTime,$adj-30);
-			}
-			elseif( $adj >= 20 ) {
-			    $start = $this->AdjStartTime($aStartTime,false,$adj-20);
-			    $end   = $this->AdjEndTime($aEndTime,false,$adj-20);
-			}
-			else {
-			    $start = $this->AdjStartTime($aStartTime,false,false,$adj);
-			    $end   = $this->AdjEndTime($aEndTime,false,false,$adj);		    
-			}
-		    }
-		}
-		// If the overall date span is larger than 1 day ten we show date
-		$format = '';
-		if( ($end-$start) > SECPERDAY ) {
-		    $format = 'Y-m-d ';
-		}
-		// If the major step is less than 1 day we need to whow hours + min
-		if( $major < SECPERDAY ) {
-		    $format .= 'H:i';
-		}
-		// If the major step is less than 1 min we need to show sec
-		if( $major < 60 ) {
-		    $format .= ':s';
-		}
-		$done=true;
-	    }
-	    ++$i;
-	}
-	return array($start,$end,$major,$minor,$format);
-    }
-
-    // Overrides the automatic determined date format. Must be a valid date() format string
-    function SetDateFormat($aFormat) {
-	$this->date_format = $aFormat;
-	$this->ticks->SetLabelDateFormat($this->date_format);
-    }
-
-    function SetDateAlign($aStartAlign,$aEndAlign=false) {
-	if( $aEndAlign === false ) {
-	    $aEndAlign=$aStartAlign;
-	}
-	$this->iStartAlign = $aStartAlign;
-	$this->iEndAlign = $aEndAlign;
-    }
-
-    function SetTimeAlign($aStartAlign,$aEndAlign=false) {
-	if( $aEndAlign === false ) {
-	    $aEndAlign=$aStartAlign;
-	}
-	$this->iStartTimeAlign = $aStartAlign;
-	$this->iEndTimeAlign = $aEndAlign;
-    }
-
-
-    function AutoScale(&$img,$aStartTime,$aEndTime,$aNumSteps) {
-	if( $aStartTime == $aEndTime ) {
-	    // Special case when we only have one data point.
-	    // Create a small artifical intervall to do the autoscaling
-	    $aStartTime -= 10;
-	    $aEndTime += 10;
-	}
-	$done=false;
-	$i=0;
-	while( ! $done && $i < 5) {
-	    list($adjstart,$adjend,$maj,$min,$format) = $this->DoDateAutoScale($aStartTime,$aEndTime,$i);
-	    $n = floor(($adjend-$adjstart)/$maj);
-	    if( $n * 1.7 > $aNumSteps ) {
-		$done=true;
-	    }
-	    $i++;
-	}
-	
-	/*
-	if( 0 ) { // DEBUG
-	    echo "    Start =".date("Y-m-d H:i:s",$aStartTime)."<br>";
-	    echo "    End   =".date("Y-m-d H:i:s",$aEndTime)."<br>";
-	    echo "Adj Start =".date("Y-m-d H:i:s",$adjstart)."<br>";
-	    echo "Adj End   =".date("Y-m-d H:i:s",$adjend)."<p>";
-	    echo "Major = $maj s, ".floor($maj/60)."min, ".floor($maj/3600)."h, ".floor($maj/86400)."day<br>";
-	    echo "Min = $min s, ".floor($min/60)."min, ".floor($min/3600)."h, ".floor($min/86400)."day<br>";
-	    echo "Format=$format<p>";
-	}
-	*/
-	
-	if( $this->iStartTimeAlign !== false && $this->iStartAlign !== false ) {
-	    JpGraphError::RaiseL(3001);
-//('It is only possible to use either SetDateAlign() or SetTimeAlign() but not both');
-	}
-
-	if( $this->iStartTimeAlign !== false ) {
-	    if( $this->iStartTimeAlign >= 30 ) {
-		$adjstart = $this->AdjStartTime($aStartTime,$this->iStartTimeAlign-30);
-	    }
-	    elseif(  $this->iStartTimeAlign >= 20 ) {
-		$adjstart = $this->AdjStartTime($aStartTime,false,$this->iStartTimeAlign-20);
-	    }
-	    else {
-		$adjstart = $this->AdjStartTime($aStartTime,false,false,$this->iStartTimeAlign);
-	    }
-	}
-	if( $this->iEndTimeAlign !== false ) {
-	    if( $this->iEndTimeAlign >= 30 ) {
-		$adjend = $this->AdjEndTime($aEndTime,$this->iEndTimeAlign-30);
-	    }
-	    elseif(  $this->iEndTimeAlign >= 20 ) {
-		$adjend = $this->AdjEndTime($aEndTime,false,$this->iEndTimeAlign-20);
-	    }
-	    else {
-		$adjend = $this->AdjEndTime($aEndTime,false,false,$this->iEndTimeAlign);
-	    }
-	}
-
-
-	
-	if( $this->iStartAlign !== false ) {
-	    if( $this->iStartAlign >= 30 ) {
-		$adjstart = $this->AdjStartDate($aStartTime,$this->iStartAlign-30);
-	    }
-	    elseif(  $this->iStartAlign >= 20 ) {
-		$adjstart = $this->AdjStartDate($aStartTime,false,$this->iStartAlign-20);
-	    }
-	    else {
-		$adjstart = $this->AdjStartDate($aStartTime,false,false,$this->iStartAlign);
-	    }
-	}
-	if( $this->iEndAlign !== false ) {
-	    if( $this->iEndAlign >= 30 ) {
-		$adjend = $this->AdjEndDate($aEndTime,$this->iEndAlign-30);
-	    }
-	    elseif(  $this->iEndAlign >= 20 ) {
-		$adjend = $this->AdjEndDate($aEndTime,false,$this->iEndAlign-20);
-	    }
-	    else {
-		$adjend = $this->AdjEndDate($aEndTime,false,false,$this->iEndAlign);
-	    }
-	}
-	$this->Update($img,$adjstart,$adjend);
-	if( ! $this->ticks->IsSpecified() )
-	    $this->ticks->Set($maj,$min);
-	if( $this->date_format == '' ) 
-	    $this->ticks->SetLabelDateFormat($format);
-	else 
-	    $this->ticks->SetLabelDateFormat($this->date_format);
-    }
-}
-
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_error.php b/nightly-test-server/jpgraph/jpgraph_error.php
deleted file mode 100644
index df643e6..0000000
--- a/nightly-test-server/jpgraph/jpgraph_error.php
+++ /dev/null
@@ -1,157 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_ERROR.PHP
-// Description:	Error plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS ErrorPlot
-// Description: Error plot with min/max value for
-// each datapoint
-//===================================================
-class ErrorPlot extends Plot {
-    var $errwidth=2;
-//---------------
-// CONSTRUCTOR
-    function ErrorPlot(&$datay,$datax=false) {
-	$this->Plot($datay,$datax);
-	$this->numpoints /= 2;
-    }
-//---------------
-// PUBLIC METHODS
-	
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-	if( $this->center ) {
-	    $a=0.5; $b=0.5;
-	    ++$this->numpoints;			
-	} else {
-	    $a=0; $b=0;
-	}
-	$graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	$graph->SetTextScaleOff($b);						
-	//$graph->xaxis->scale->ticks->SupressMinorTickMarks();
-    }
-	
-    // Method description
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$numpoints=count($this->coords[0])/2;
-	$img->SetColor($this->color);
-	$img->SetLineWeight($this->weight);	
-
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$numpoints )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-		
-	for( $i=0; $i<$numpoints; ++$i) {
-	    if( $exist_x ) 
-		$x=$this->coords[1][$i];
-	    else 
-		$x=$i;
-
-	    if( !is_numeric($x) ||  
-		!is_numeric($this->coords[0][$i*2]) || !is_numeric($this->coords[0][$i*2+1]) ) {
-		continue;
-	    }
-	    
-	    $xt = $xscale->Translate($x);
-	    $yt1 = $yscale->Translate($this->coords[0][$i*2]);
-	    $yt2 = $yscale->Translate($this->coords[0][$i*2+1]);
-	    $img->Line($xt,$yt1,$xt,$yt2);
-	    $img->Line($xt-$this->errwidth,$yt1,$xt+$this->errwidth,$yt1);
-	    $img->Line($xt-$this->errwidth,$yt2,$xt+$this->errwidth,$yt2);
-	}			
-	return true;
-    }
-} // Class
-
-
-//===================================================
-// CLASS ErrorLinePlot
-// Description: Combine a line and error plot
-// THIS IS A DEPRECATED PLOT TYPE JUST KEPT FOR
-// BACKWARD COMPATIBILITY
-//===================================================
-class ErrorLinePlot extends ErrorPlot {
-    var $line=null;
-//---------------
-// CONSTRUCTOR
-    function ErrorLinePlot(&$datay,$datax=false) {
-	$this->ErrorPlot($datay,$datax);
-	// Calculate line coordinates as the average of the error limits
-	$n = count($datay);
-	for($i=0; $i < $n; $i+=2 ) {
-	    $ly[]=($datay[$i]+$datay[$i+1])/2;
-	}		
-	$this->line=new LinePlot($ly,$datax);
-    }
-
-//---------------
-// PUBLIC METHODS
-    function Legend(&$graph) {
-	if( $this->legend != "" )
-	    $graph->legend->Add($this->legend,$this->color);
-	$this->line->Legend($graph);
-    }
-			
-    function Stroke(&$img,&$xscale,&$yscale) {
-	parent::Stroke($img,$xscale,$yscale);
-	$this->line->Stroke($img,$xscale,$yscale);
-    }
-} // Class
-
-
-//===================================================
-// CLASS LineErrorPlot
-// Description: Combine a line and error plot
-//===================================================
-class LineErrorPlot extends ErrorPlot {
-    var $line=null;
-//---------------
-// CONSTRUCTOR
-    // Data is (val, errdeltamin, errdeltamax)
-    function LineErrorPlot(&$datay,$datax=false) {
-	$ly=array(); $ey=array();
-	$n = count($datay);
-	if( $n % 3 != 0 ) {
-	    JpGraphError::RaiseL(4002);
-//('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3');
-	}
-	for($i=0; $i < $n; $i+=3 ) {
-	    $ly[]=$datay[$i];
-	    $ey[]=$datay[$i]+$datay[$i+1];
-	    $ey[]=$datay[$i]+$datay[$i+2];
-	}		
-	$this->ErrorPlot($ey,$datax);
-	$this->line=new LinePlot($ly,$datax);
-    }
-
-//---------------
-// PUBLIC METHODS
-    function Legend(&$graph) {
-	if( $this->legend != "" )
-	    $graph->legend->Add($this->legend,$this->color);
-	$this->line->Legend($graph);
-    }
-			
-    function Stroke(&$img,&$xscale,&$yscale) {
-	parent::Stroke($img,$xscale,$yscale);
-	$this->line->Stroke($img,$xscale,$yscale);
-    }
-} // Class
-
-
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_flags.php b/nightly-test-server/jpgraph/jpgraph_flags.php
deleted file mode 100644
index 163597e..0000000
--- a/nightly-test-server/jpgraph/jpgraph_flags.php
+++ /dev/null
@@ -1,374 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_FLAGS.PHP
-// Description:	Class Jpfile. Handles plotmarks
-// Created: 	2003-06-28
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-//------------------------------------------------------------
-// Defines for the different basic sizes of flags
-//------------------------------------------------------------
-DEFINE('FLAGSIZE1',1);
-DEFINE('FLAGSIZE2',2);
-DEFINE('FLAGSIZE3',3);
-DEFINE('FLAGSIZE4',4);
-
-class FlagImages {
-
-    var $iCountryNameMap = array(
-    'Afghanistan' => 'afgh',
-    'Republic of Angola' => 'agla',
-    'Republic of Albania' => 'alba',
-    'Alderney' => 'alde',
-    'Democratic and Popular Republic of Algeria' => 'alge',
-    'Territory of American Samoa' => 'amsa',
-    'Principality of Andorra' => 'andr',
-    'British Overseas Territory of Anguilla' => 'angu',
-    'Antarctica' => 'anta',
-    'Argentine Republic' => 'arge',
-    'League of Arab States' => 'arle',
-    'Republic of Armenia' => 'arme',
-    'Aruba' => 'arub',
-    'Commonwealth of Australia' => 'astl',
-    'Republic of Austria' => 'aust',
-    'Azerbaijani Republic' => 'azer',
-    'British Antarctic Territory' => 'bant',
-    'Kingdom of Belgium' => 'belg',
-    'British Overseas Territory of Bermuda' => 'berm',
-    'Commonwealth of the Bahamas' => 'bhms',
-    'Kingdom of Bahrain' => 'bhrn',
-    'Republic of Belarus' => 'blru',
-    'Republic of Bolivia' => 'blva',
-    'Belize' => 'blze',
-    'Republic of Benin' => 'bnin',
-    'Republic of Botswana' => 'bots',
-    'Federative Republic of Brazil' => 'braz',
-    'Barbados' => 'brbd',
-    'British Indian Ocean Territory' => 'brin',
-    'Brunei Darussalam' => 'brun',
-    'Republic of Burkina' => 'bufa',
-    'Republic of Bulgaria' => 'bulg',
-    'Republic of Burundi' => 'buru',
-    'Overseas Territory of the British Virgin Islands' => 'bvis',
-    'Central African Republic' => 'cafr',
-    'Kingdom of Cambodia' => 'camb',
-    'Republic of Cameroon' => 'came',
-    'Dominion of Canada' => 'cana',
-    'Caribbean Community' => 'cari',
-    'Republic of Cape Verde' => 'cave',
-    'Republic of Chad' => 'chad',
-    'Republic of Chile' => 'chil',
-    'Peoples Republic of China' => 'chin',
-    'Territory of Christmas Island' => 'chms',
-    'Commonwealth of Independent States' => 'cins',
-    'Cook Islands' => 'ckis',
-    'Republic of Colombia' => 'clmb',
-    'Territory of Cocos Islands' => 'cois',
-    'Commonwealth' => 'comn',
-    'Union of the Comoros' => 'como',
-    'Republic of the Congo' => 'cong',
-    'Republic of Costa Rica' => 'corc',
-    'Republic of Croatia' => 'croa',
-    'Republic of Cuba' => 'cuba',
-    'British Overseas Territory of the Cayman Islands' => 'cyis',
-    'Republic of Cyprus' => 'cypr',
-    'The Czech Republic' => 'czec',
-    'Kingdom of Denmark' => 'denm',
-    'Republic of Djibouti' => 'djib',
-    'Commonwealth of Dominica' => 'domn',
-    'Dominican Republic' => 'dore',
-    'Republic of Ecuador' => 'ecua',
-    'Arab Republic of Egypt' => 'egyp',
-    'Republic of El Salvador' => 'elsa',
-    'England' => 'engl',
-    'Republic of Equatorial Guinea' => 'eqgu',
-    'State of Eritrea' => 'erit',
-    'Republic of Estonia' => 'estn',
-    'Ethiopia' => 'ethp',
-    'European Union' => 'euun',
-    'British Overseas Territory of the Falkland Islands' => 'fais',
-    'International Federation of Vexillological Associations' => 'fiav',
-    'Republic of Fiji' => 'fiji',
-    'Republic of Finland' => 'finl',
-    'Territory of French Polynesia' => 'fpol',
-    'French Republic' => 'fran',
-    'Overseas Department of French Guiana' => 'frgu',
-    'Gabonese Republic' => 'gabn',
-    'Republic of the Gambia' => 'gamb',
-    'Republic of Georgia' => 'geor',
-    'Federal Republic of Germany' => 'germ',
-    'Republic of Ghana' => 'ghan',
-    'Gibraltar' => 'gibr',
-    'Hellenic Republic' => 'grec',
-    'State of Grenada' => 'gren',
-    'Overseas Department of Guadeloupe' => 'guad',
-    'Territory of Guam' => 'guam',
-    'Republic of Guatemala' => 'guat',
-    'The Bailiwick of Guernsey' => 'guer',
-    'Republic of Guinea' => 'guin',
-    'Republic of Haiti' => 'hait',
-    'Hong Kong Special Administrative Region' => 'hokn',
-    'Republic of Honduras' => 'hond',
-    'Republic of Hungary' => 'hung',
-    'Republic of Iceland' => 'icel',
-    'International Committee of the Red Cross' => 'icrc',
-    'Republic of India' => 'inda',
-    'Republic of Indonesia' => 'indn',
-    'Republic of Iraq' => 'iraq',
-    'Republic of Ireland' => 'irel',
-    'Organization of the Islamic Conference' => 'isco',
-    'Isle of Man' => 'isma',
-    'State of Israel' => 'isra',
-    'Italian Republic' => 'ital',
-    'Jamaica' => 'jama',
-    'Japan' => 'japa',
-    'The Bailiwick of Jersey' => 'jers',
-    'Hashemite Kingdom of Jordan' => 'jord',
-    'Republic of Kazakhstan' => 'kazk',
-    'Republic of Kenya' => 'keny',
-    'Republic of Kiribati' => 'kirb',
-    'State of Kuwait' => 'kuwa',
-    'Kyrgyz Republic' => 'kyrg',
-    'Republic of Latvia' => 'latv',
-    'Lebanese Republic' => 'leba',
-    'Kingdom of Lesotho' => 'lest',
-    'Republic of Liberia' => 'libe',
-    'Principality of Liechtenstein' => 'liec',
-    'Republic of Lithuania' => 'lith',
-    'Grand Duchy of Luxembourg' => 'luxe',
-    'Macao Special Administrative Region' => 'maca',
-    'Republic of Macedonia' => 'mace',
-    'Republic of Madagascar' => 'mada',
-    'Republic of the Marshall Islands' => 'mais',
-    'Republic of Mali' => 'mali',
-    'Federation of Malaysia' => 'mals',
-    'Republic of Malta' => 'malt',
-    'Republic of Malawi' => 'malw',
-    'Overseas Department of Martinique' => 'mart',
-    'Islamic Republic of Mauritania' => 'maur',
-    'Territorial Collectivity of Mayotte' => 'mayt',
-    'United Mexican States' => 'mexc',
-    'Federated States of Micronesia' => 'micr',
-    'Midway Islands' => 'miis',
-    'Republic of Moldova' => 'mold',
-    'Principality of Monaco' => 'mona',
-    'Republic of Mongolia' => 'mong',
-    'British Overseas Territory of Montserrat' => 'mont',
-    'Kingdom of Morocco' => 'morc',
-    'Republic of Mozambique' => 'moza',
-    'Republic of Mauritius' => 'mrts',
-    'Union of Myanmar' => 'myan',
-    'Republic of Namibia' => 'namb',
-    'North Atlantic Treaty Organization' => 'nato',
-    'Republic of Nauru' => 'naur',
-    'Turkish Republic of Northern Cyprus' => 'ncyp',
-    'Netherlands Antilles' => 'nean',
-    'Kingdom of Nepal' => 'nepa',
-    'Kingdom of the Netherlands' => 'neth',
-    'Territory of Norfolk Island' => 'nfis',
-    'Federal Republic of Nigeria' => 'ngra',
-    'Republic of Nicaragua' => 'nica',
-    'Republic of Niger' => 'nigr',
-    'Niue' => 'niue',
-    'Commonwealth of the Northern Mariana Islands' => 'nmar',
-    'Province of Northern Ireland' => 'noir',
-    'Nordic Council' => 'nord',
-    'Kingdom of Norway' => 'norw',
-    'Territory of New Caledonia and Dependencies' => 'nwca',
-    'New Zealand' => 'nwze',
-    'Organization of American States' => 'oast',
-    'Organization of African Unity' => 'oaun',
-    'International Olympic Committee' => 'olym',
-    'Sultanate of Oman' => 'oman',
-    'Islamic Republic of Pakistan' => 'paks',
-    'Republic of Palau' => 'pala',
-    'Independent State of Papua New Guinea' => 'pang',
-    'Republic of Paraguay' => 'para',
-    'Republic of Peru' => 'peru',
-    'Republic of the Philippines' => 'phil',
-    'British Overseas Territory of the Pitcairn Islands' => 'piis',
-    'Republic of Poland' => 'pola',
-    'Republic of Portugal' => 'port',
-    'Commonwealth of Puerto Rico' => 'purc',
-    'State of Qatar' => 'qata',
-    'Russian Federation' => 'russ',
-    'Republic of Rwanda' => 'rwan',
-    'Kingdom of Saudi Arabia' => 'saar',
-    'Republic of San Marino' => 'sama',
-    'Nordic Sami Conference' => 'sami',
-    'Sark' => 'sark',
-    'Scotland' => 'scot',
-    'Principality of Seborga' => 'sebo',
-    'Republic of Sierra Leone' => 'sile',
-    'Republic of Singapore' => 'sing',
-    'Republic of Korea' => 'skor',
-    'Republic of Slovenia' => 'slva',
-    'Somali Republic' => 'smla',
-    'Republic of Somaliland' => 'smld',
-    'Republic of South Africa' => 'soaf',
-    'Solomon Islands' => 'sois',
-    'Kingdom of Spain' => 'span',
-    'Secretariat of the Pacific Community' => 'spco',
-    'Democratic Socialist Republic of Sri Lanka' => 'srla',
-    'Saint Lucia' => 'stlu',
-    'Republic of the Sudan' => 'suda',
-    'Republic of Suriname' => 'surn',
-    'Slovak Republic' => 'svka',
-    'Kingdom of Sweden' => 'swdn',
-    'Swiss Confederation' => 'swit',
-    'Syrian Arab Republic' => 'syra',
-    'Kingdom of Swaziland' => 'szld',
-    'Republic of China' => 'taiw',
-    'Taiwan' => 'taiw',
-    'Republic of Tajikistan' => 'tajk',
-    'United Republic of Tanzania' => 'tanz',
-    'Kingdom of Thailand' => 'thal',
-    'Autonomous Region of Tibet' => 'tibe',
-    'Turkmenistan' => 'tkst',
-    'Togolese Republic' => 'togo',
-    'Tokelau' => 'toke',
-    'Kingdom of Tonga' => 'tong',
-    'Tristan da Cunha' => 'trdc',
-    'Tromelin' => 'tris',
-    'Republic of Tunisia' => 'tuns',
-    'Republic of Turkey' => 'turk',
-    'Tuvalu' => 'tuva',
-    'United Arab Emirates' => 'uaem',
-    'Republic of Uganda' => 'ugan',
-    'Ukraine' => 'ukrn',
-    'United Kingdom of Great Britain' => 'unkg',
-    'United Nations' => 'unna',
-    'United States of America' => 'unst',
-    'Oriental Republic of Uruguay' => 'urgy',
-    'Virgin Islands of the United States' => 'usvs',
-    'Republic of Uzbekistan' => 'uzbk',
-    'State of the Vatican City' => 'vacy',
-    'Republic of Vanuatu' => 'vant',
-    'Bolivarian Republic of Venezuela' => 'venz',
-    'Republic of Yemen' => 'yemn',
-    'Democratic Republic of Congo' => 'zare',
-    'Republic of Zimbabwe' => 'zbwe' ) ;
-
-
-    var $iFlagCount = -1;
-    var $iFlagSetMap = array(
-	FLAGSIZE1 => 'flags_thumb35x35',
-	FLAGSIZE2 => 'flags_thumb60x60',
-	FLAGSIZE3 => 'flags_thumb100x100',
-	FLAGSIZE4 => 'flags'
-	);
-
-    var $iFlagData ;
-    var $iOrdIdx=array();
-
-    function FlagImages($aSize=FLAGSIZE1) {
-	switch($aSize) {
-	    case FLAGSIZE1 :
-	    case FLAGSIZE2 :
-	    case FLAGSIZE3 :
-	    case FLAGSIZE4 :
-		$file = dirname(__FILE__).'/'.$this->iFlagSetMap[$aSize].'.dat';
-		$fp = fopen($file,'rb');
-		$rawdata = fread($fp,filesize($file));
-		$this->iFlagData = unserialize($rawdata);
-	    break;
-	    default:
-		JpGraphError::RaiseL(5001,$aSize);
-//('Unknown flag size. ('.$aSize.')');
-	}
-	$this->iFlagCount = count($this->iCountryNameMap);
-    }
-
-    function GetNum() {
-	return $this->iFlagCount;
-    }
-
-    function GetImgByName($aName,&$outFullName) {
-	$idx = $this->GetIdxByName($aName,$outFullName);
-	return $this->GetImgByIdx($idx);
-    }
-
-    function GetImgByIdx($aIdx) {
-	if( array_key_exists($aIdx,$this->iFlagData) ) {
-	    $d = $this->iFlagData[$aIdx][1];   
-	    return Image::CreateFromString($d);   
-	}
-	else {
-	    JpGraphError::RaiseL(5002,$aIdx);
-//("Flag index \" $aIdx\" does not exist.");
-	}
-    }
-
-    function GetIdxByOrdinal($aOrd,&$outFullName) {
-	$aOrd--;
-	$n = count($this->iOrdIdx);
-	if( $n == 0 ) {
-	    reset($this->iCountryNameMap);
-	    $this->iOrdIdx=array();
-	    $i=0;
-	    while( list($key,$val) = each($this->iCountryNameMap) ) {
-		$this->iOrdIdx[$i++] = array($val,$key);
-	    }
-	    $tmp=$this->iOrdIdx[$aOrd];
-	    $outFullName = $tmp[1];
-	    return $tmp[0];
-	    
-	}
-	elseif( $aOrd >= 0 && $aOrd < $n ) {
-	    $tmp=$this->iOrdIdx[$aOrd];
-	    $outFullName = $tmp[1];
-	    return $tmp[0];
-	}
-	else {
-	    JpGraphError::RaiseL(5003,$aOrd);
-//('Invalid ordinal number specified for flag index.');
-	}
-    }
-
-    function GetIdxByName($aName,&$outFullName) {
-
-	if( is_integer($aName) ) {
-	    $idx = $this->GetIdxByOrdinal($aName,$outFullName);
-	    return $idx;
-	}
-
-	$found=false;
-	$aName = strtolower($aName);
-	$nlen = strlen($aName);
-	reset($this->iCountryNameMap);
-	// Start by trying to match exact index name
-	while( list($key,$val) = each($this->iCountryNameMap) ) {
-	    if( $nlen == strlen($val) && $val == $aName )  {
-		$found=true;
-		break;
-	    }
-	}
-	if( !$found ) {
-	    reset($this->iCountryNameMap);
-	    // If the exact index doesn't work try a (partial) full name
-	    while( list($key,$val) = each($this->iCountryNameMap) ) {
-		if( strpos(strtolower($key), $aName) !== false ) {
-		    $found=true;
-		    break;
-		}
-	    }
-	}
-	if( $found ) {
-	    $outFullName = $key;
-	    return $val;   
-	}
-	else { 
-	    JpGraphError::RaiseL(5004,$aName);
-//("The (partial) country name \"$aName\" does not have a cooresponding flag image. The flag may still exist but under another name, e.g. insted of \"usa\" try \"united states\".");
-	}
-    }
-}
-
-
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_gantt.php b/nightly-test-server/jpgraph/jpgraph_gantt.php
deleted file mode 100644
index c69a21c..0000000
--- a/nightly-test-server/jpgraph/jpgraph_gantt.php
+++ /dev/null
@@ -1,3776 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_GANTT.PHP
-// Description:	JpGraph Gantt plot extension
-// Created: 	2001-11-12
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once('jpgraph_plotband.php'); 
-require_once('jpgraph_iconplot.php'); 
-require_once('jpgraph_plotmark.inc');
-
-// Maximum size for Automatic Gantt chart
-DEFINE('MAX_GANTTIMG_SIZE_W',4000);
-DEFINE('MAX_GANTTIMG_SIZE_H',5000);
-
-// Scale Header types
-DEFINE("GANTT_HDAY",1);
-DEFINE("GANTT_HWEEK",2);
-DEFINE("GANTT_HMONTH",4);
-DEFINE("GANTT_HYEAR",8);
-DEFINE("GANTT_HHOUR",16);
-DEFINE("GANTT_HMIN",32);
-
-// Bar patterns
-DEFINE("GANTT_RDIAG",BAND_RDIAG);	// Right diagonal lines
-DEFINE("GANTT_LDIAG",BAND_LDIAG); // Left diagonal lines
-DEFINE("GANTT_SOLID",BAND_SOLID); // Solid one color
-DEFINE("GANTT_VLINE",BAND_VLINE); // Vertical lines
-DEFINE("GANTT_HLINE",BAND_HLINE);  // Horizontal lines
-DEFINE("GANTT_3DPLANE",BAND_3DPLANE);  // "3D" Plane
-DEFINE("GANTT_HVCROSS",BAND_HVCROSS);  // Vertical/Hor crosses
-DEFINE("GANTT_DIAGCROSS",BAND_DIAGCROSS); // Diagonal crosses
-
-// Conversion constant
-DEFINE("SECPERDAY",3600*24);
-
-// Locales. ONLY KEPT FOR BACKWARDS COMPATIBILITY
-// You should use the proper locale strings directly 
-// from now on. 
-DEFINE("LOCALE_EN","en_UK");
-DEFINE("LOCALE_SV","sv_SE");
-
-// Layout of bars
-DEFINE("GANTT_EVEN",1);
-DEFINE("GANTT_FROMTOP",2);
-
-// Style for minute header
-DEFINE("MINUTESTYLE_MM",0);		// 15
-DEFINE("MINUTESTYLE_CUSTOM",2);		// Custom format
-
-
-// Style for hour header
-DEFINE("HOURSTYLE_HM24",0);		// 13:10
-DEFINE("HOURSTYLE_HMAMPM",1);		// 1:10pm
-DEFINE("HOURSTYLE_H24",2);		// 13
-DEFINE("HOURSTYLE_HAMPM",3);		// 1pm
-DEFINE("HOURSTYLE_CUSTOM",4);		// User defined
-
-// Style for day header
-DEFINE("DAYSTYLE_ONELETTER",0);		// "M"
-DEFINE("DAYSTYLE_LONG",1);		// "Monday"
-DEFINE("DAYSTYLE_LONGDAYDATE1",2);	// "Monday 23 Jun"
-DEFINE("DAYSTYLE_LONGDAYDATE2",3);	// "Monday 23 Jun 2003"
-DEFINE("DAYSTYLE_SHORT",4);		// "Mon"
-DEFINE("DAYSTYLE_SHORTDAYDATE1",5);	// "Mon 23/6"
-DEFINE("DAYSTYLE_SHORTDAYDATE2",6);	// "Mon 23 Jun"
-DEFINE("DAYSTYLE_SHORTDAYDATE3",7);	// "Mon 23"
-DEFINE("DAYSTYLE_SHORTDATE1",8);	// "23/6"
-DEFINE("DAYSTYLE_SHORTDATE2",9);	// "23 Jun"
-DEFINE("DAYSTYLE_SHORTDATE3",10);	// "Mon 23"
-DEFINE("DAYSTYLE_SHORTDATE4",11);	// "23"
-DEFINE("DAYSTYLE_CUSTOM",12);		// "M"
-
-// Styles for week header
-DEFINE("WEEKSTYLE_WNBR",0);
-DEFINE("WEEKSTYLE_FIRSTDAY",1);
-DEFINE("WEEKSTYLE_FIRSTDAY2",2);
-DEFINE("WEEKSTYLE_FIRSTDAYWNBR",3);
-DEFINE("WEEKSTYLE_FIRSTDAY2WNBR",4);
-
-// Styles for month header
-DEFINE("MONTHSTYLE_SHORTNAME",0);
-DEFINE("MONTHSTYLE_LONGNAME",1);
-DEFINE("MONTHSTYLE_LONGNAMEYEAR2",2);
-DEFINE("MONTHSTYLE_SHORTNAMEYEAR2",3);
-DEFINE("MONTHSTYLE_LONGNAMEYEAR4",4);
-DEFINE("MONTHSTYLE_SHORTNAMEYEAR4",5);
-DEFINE("MONTHSTYLE_FIRSTLETTER",6);
-
-
-// Types of constrain links
-DEFINE('CONSTRAIN_STARTSTART',0);
-DEFINE('CONSTRAIN_STARTEND',1);
-DEFINE('CONSTRAIN_ENDSTART',2);
-DEFINE('CONSTRAIN_ENDEND',3);
-
-// Arrow direction for constrain links
-DEFINE('ARROW_DOWN',0);
-DEFINE('ARROW_UP',1);
-DEFINE('ARROW_LEFT',2);
-DEFINE('ARROW_RIGHT',3);
-
-// Arrow type for constrain type
-DEFINE('ARROWT_SOLID',0);
-DEFINE('ARROWT_OPEN',1);
-
-// Arrow size for constrain lines
-DEFINE('ARROW_S1',0);
-DEFINE('ARROW_S2',1);
-DEFINE('ARROW_S3',2);
-DEFINE('ARROW_S4',3);
-DEFINE('ARROW_S5',4);
-
-// Activity types for use with utility method CreateSimple()
-DEFINE('ACTYPE_NORMAL',0);
-DEFINE('ACTYPE_GROUP',1);
-DEFINE('ACTYPE_MILESTONE',2);
-
-DEFINE('ACTINFO_3D',1);
-DEFINE('ACTINFO_2D',0);
-
-
-// Check if array_fill() exists
-if (!function_exists('array_fill')) {
-    function array_fill($iStart, $iLen, $vValue) {
-	$aResult = array();
-	for ($iCount = $iStart; $iCount < $iLen + $iStart; $iCount++) {
-	    $aResult[$iCount] = $vValue;
-	}
-	return $aResult;
-    }
-}
-
-//===================================================
-// CLASS GanttActivityInfo
-// Description: 
-//===================================================
-class GanttActivityInfo {
-    var $iColor='black';
-    var $iBackgroundColor='lightgray';
-    var $iFFamily=FF_FONT1,$iFStyle=FS_NORMAL,$iFSize=10,$iFontColor='black';
-    var $iTitles=array();
-    var $iWidth=array(),$iHeight=-1;
-    var $iLeftColMargin=4,$iRightColMargin=1,$iTopColMargin=1,$iBottomColMargin=3;
-    var $iTopHeaderMargin = 4;
-    var $vgrid = null;
-    var $iStyle=1;
-    var $iShow=true;
-    var $iHeaderAlign='center';
-
-    function GanttActivityInfo() {
-	$this->vgrid = new LineProperty();
-    }
-
-    function Hide($aF=true) {
-	$this->iShow=!$aF;
-    }
-
-    function Show($aF=true) {
-	$this->iShow=$aF;
-    }
-
-    // Specify font
-    function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) {
-	$this->iFFamily = $aFFamily;
-	$this->iFStyle	 = $aFStyle;
-	$this->iFSize	 = $aFSize;
-    }
-
-    function SetStyle($aStyle) {
-	$this->iStyle = $aStyle;
-    }
-
-    function SetColumnMargin($aLeft,$aRight) {
-	$this->iLeftColMargin = $aLeft;
-	$this->iRightColMargin = $aRight;
-    }
-
-    function SetFontColor($aFontColor) {
-	$this->iFontColor = $aFontColor;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetBackgroundColor($aColor) {
-	$this->iBackgroundColor = $aColor;
-    }
-
-    function SetColTitles($aTitles,$aWidth=null) {
-	$this->iTitles = $aTitles;
-	$this->iWidth = $aWidth;
-    }
-
-    function SetMinColWidth($aWidths) {
-	$n = min(count($this->iTitles),count($aWidths));
-	for($i=0; $i < $n; ++$i ) {
-	    if( !empty($aWidths[$i]) ) {
-		if( empty($this->iWidth[$i]) ) {
-		    $this->iWidth[$i] = $aWidths[$i];
-		}
-		else {
-		    $this->iWidth[$i] = max($this->iWidth[$i],$aWidths[$i]);
-		}
-	    }
-	}
-    }
-
-    function GetWidth(&$aImg) {
-	$txt = new TextProperty();
-	$txt->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	$n = count($this->iTitles) ;
-	$rm=$this->iRightColMargin;
-	$w = 0;
-	for($h=0, $i=0; $i < $n; ++$i ) {
-	    $w += $this->iLeftColMargin;
-	    $txt->Set($this->iTitles[$i]);
-	    if( !empty($this->iWidth[$i]) ) {
-		$w1 = max($txt->GetWidth($aImg)+$rm,$this->iWidth[$i]);
-	    }
-	    else {
-		$w1 = $txt->GetWidth($aImg)+$rm;
-	    }
-	    $this->iWidth[$i] = $w1;
-	    $w += $w1;
-	    $h = max($h,$txt->GetHeight($aImg));
-	}
-	$this->iHeight = $h+$this->iTopHeaderMargin;
-        $txt='';
-	return $w;
-    }
-    
-    function GetColStart(&$aImg,&$ioStart,$aAddLeftMargin=false) {
-	$n = count($this->iTitles) ;
-	$adj = $aAddLeftMargin ? $this->iLeftColMargin : 0;
-	$ioStart=array($aImg->left_margin+$adj);
-	for( $i=1; $i < $n; ++$i ) {
-	    $ioStart[$i] = $ioStart[$i-1]+$this->iLeftColMargin+$this->iWidth[$i-1];
-	}
-    }
-    
-    // Adjust headers left, right or centered
-    function SetHeaderAlign($aAlign) {
-	$this->iHeaderAlign=$aAlign;
-    }
-
-    function Stroke(&$aImg,$aXLeft,$aYTop,$aXRight,$aYBottom,$aUseTextHeight=false) {
-
-	if( !$this->iShow ) return;
-
-	$txt = new TextProperty();
-	$txt->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	$txt->SetColor($this->iFontColor);
-	$txt->SetAlign($this->iHeaderAlign,'top');
-	$n=count($this->iTitles);
-
-	if( $n == 0 ) 
-	    return;
-	
-	$x = $aXLeft;
-	$h = $this->iHeight;
-	$yTop = $aUseTextHeight ? $aYBottom-$h-$this->iTopColMargin-$this->iBottomColMargin : $aYTop ;
-
-	if( $h < 0 ) {
-	    JpGraphError::RaiseL(6001);
-//('Internal error. Height for ActivityTitles is < 0');
-	}
-
-	$aImg->SetLineWeight(1);
-	// Set background color
-	$aImg->SetColor($this->iBackgroundColor);
-	$aImg->FilledRectangle($aXLeft,$yTop,$aXRight,$aYBottom-1);
-
-	if( $this->iStyle == 1 ) {
-	    // Make a 3D effect
-	    $aImg->SetColor('white');
-	    $aImg->Line($aXLeft,$yTop+1,
-			$aXRight,$yTop+1);
-	}
-	
-	for($i=0; $i < $n; ++$i ) {
-	    if( $this->iStyle == 1 ) {
-		// Make a 3D effect
-		$aImg->SetColor('white');
-		$aImg->Line($x+1,$yTop,$x+1,$aYBottom);
-	    }
-	    $x += $this->iLeftColMargin;
-	    $txt->Set($this->iTitles[$i]);
-	    
-	    // Adjust the text anchor position according to the choosen alignment
-	    $xp = $x;
-	    if( $this->iHeaderAlign == 'center' ) {
-		$xp = (($x-$this->iLeftColMargin)+($x+$this->iWidth[$i]))/2;
-	    }
-	    elseif( $this->iHeaderAlign == 'right' ) {
-		$xp = $x +$this->iWidth[$i]-$this->iRightColMargin;
-	    }
-		    
-	    $txt->Stroke($aImg,$xp,$yTop+$this->iTopHeaderMargin);
-	    $x += $this->iWidth[$i];
-	    if( $i < $n-1 ) {
-		$aImg->SetColor($this->iColor);
-		$aImg->Line($x,$yTop,$x,$aYBottom);
-	    }
-	}
-
-	$aImg->SetColor($this->iColor);
-	$aImg->Line($aXLeft,$yTop, $aXRight,$yTop);
-
-	// Stroke vertical column dividers
-	$cols=array();
-	$this->GetColStart($aImg,$cols);
-	$n=count($cols);
-	for( $i=1; $i < $n; ++$i ) {
-	    $this->vgrid->Stroke($aImg,$cols[$i],$aYBottom,$cols[$i],
-				    $aImg->height - $aImg->bottom_margin);
-	}
-    }
-}
-
-
-//===================================================
-// CLASS GanttGraph
-// Description: Main class to handle gantt graphs
-//===================================================
-class GanttGraph extends Graph {
-    var $scale;							// Public accessible
-    var $iObj=array();				// Gantt objects
-    var $iLabelHMarginFactor=0.2;	// 10% margin on each side of the labels
-    var $iLabelVMarginFactor=0.4;	// 40% margin on top and bottom of label
-    var $iLayout=GANTT_FROMTOP;	// Could also be GANTT_EVEN
-    var $iSimpleFont = FF_FONT1,$iSimpleFontSize=11;
-    var $iSimpleStyle=GANTT_RDIAG,$iSimpleColor='yellow',$iSimpleBkgColor='red';
-    var $iSimpleProgressBkgColor='gray',$iSimpleProgressColor='darkgreen';
-    var $iSimpleProgressStyle=GANTT_SOLID;
-    var $hgrid=null;
-//---------------
-// CONSTRUCTOR	
-    // Create a new gantt graph
-    function GanttGraph($aWidth=0,$aHeight=0,$aCachedName="",$aTimeOut=0,$aInline=true) {
-
-	// Backward compatibility
-	if( $aWidth == -1 ) $aWidth=0;
-	if( $aHeight == -1 ) $aHeight=0;
-
-	if( $aWidth<  0 || $aHeight < 0 ) {
-	    JpgraphError::RaiseL(6002);
-//("You can't specify negative sizes for Gantt graph dimensions. Use 0 to indicate that you want the library to automatically determine a dimension.");
-	}
-	Graph::Graph($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline);		
-	$this->scale = new GanttScale($this->img);
-
-	// Default margins
-	$this->img->SetMargin(15,17,25,15);
-
-	$this->hgrid = new HorizontalGridLine();
-		
-	$this->scale->ShowHeaders(GANTT_HWEEK|GANTT_HDAY);
-	$this->SetBox();
-    }
-	
-//---------------
-// PUBLIC METHODS
-
-    // 
-
-    function SetSimpleFont($aFont,$aSize) {
-	$this->iSimpleFont = $aFont;
-	$this->iSimpleFontSize = $aSize;
-    }
-
-    function SetSimpleStyle($aBand,$aColor,$aBkgColor) {
-	$this->iSimpleStyle = $aBand;
-	$this->iSimpleColor = $aColor;
-	$this->iSimpleBkgColor = $aBkgColor;
-    }
-
-    // A utility function to help create basic Gantt charts
-    function CreateSimple($data,$constrains=array(),$progress=array()) {
-	$num = count($data);
-	for( $i=0; $i < $num; ++$i) {
-	    switch( $data[$i][1] ) {
-		case ACTYPE_GROUP:
-		    // Create a slightly smaller height bar since the
-		    // "wings" at the end will make it look taller
-		    $a = new GanttBar($data[$i][0],$data[$i][2],$data[$i][3],$data[$i][4],'',8);
-		    $a->title->SetFont($this->iSimpleFont,FS_BOLD,$this->iSimpleFontSize);		
-		    $a->rightMark->Show();
-		    $a->rightMark->SetType(MARK_RIGHTTRIANGLE);
-		    $a->rightMark->SetWidth(8);
-		    $a->rightMark->SetColor('black');
-		    $a->rightMark->SetFillColor('black');
-	    
-		    $a->leftMark->Show();
-		    $a->leftMark->SetType(MARK_LEFTTRIANGLE);
-		    $a->leftMark->SetWidth(8);
-		    $a->leftMark->SetColor('black');
-		    $a->leftMark->SetFillColor('black');
-	    
-		    $a->SetPattern(BAND_SOLID,'black');
-		    $csimpos = 6;
-		    break;
-		
-		case ACTYPE_NORMAL:
-		    $a = new GanttBar($data[$i][0],$data[$i][2],$data[$i][3],$data[$i][4],'',10);
-		    $a->title->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize);
-		    $a->SetPattern($this->iSimpleStyle,$this->iSimpleColor);
-		    $a->SetFillColor($this->iSimpleBkgColor);
-		    // Check if this activity should have a constrain line
-		    $n = count($constrains);
-		    for( $j=0; $j < $n; ++$j ) {
-			if( empty($constrains[$j]) || (count($constrains[$j]) != 3) ) {
-			    JpGraphError::RaiseL(6003,$j);
-//("Invalid format for Constrain parameter at index=$j in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Constrain-To,Constrain-Type)");	 
-			}
-			if( $constrains[$j][0]==$data[$i][0] ) {
-			    $a->SetConstrain($constrains[$j][1],$constrains[$j][2],'black',ARROW_S2,ARROWT_SOLID);    
-			}
-		    }
-
-		    // Check if this activity have a progress bar
-		    $n = count($progress);
-		    for( $j=0; $j < $n; ++$j ) {
-			
-			if( empty($progress[$j]) || (count($progress[$j]) != 2) ) {
-			    JpGraphError::RaiseL(6004,$j);
-//("Invalid format for Progress parameter at index=$j in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Progress)");	
-			}
-			if( $progress[$j][0]==$data[$i][0] ) {
-			    $a->progress->Set($progress[$j][1]);
-			    $a->progress->SetHeight(0.5);
-			    $a->progress->SetPattern($this->iSimpleProgressStyle,
-						     $this->iSimpleProgressColor);
-			    $a->progress->SetFillColor($this->iSimpleProgressBkgColor);
-			    //$a->progress->SetPattern($progress[$j][2],$progress[$j][3]);
-			    break;
-			}
-		    }
-		    $csimpos = 6;
-		    break;
-
-		case ACTYPE_MILESTONE:
-		    $a = new MileStone($data[$i][0],$data[$i][2],$data[$i][3]);
-		    $a->title->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize);
-		    $a->caption->SetFont($this->iSimpleFont,FS_NORMAL,$this->iSimpleFontSize);
-		    $csimpos = 5;
-		    break;
-		default:
-		    die('Unknown activity type');
-		    break;
-	    }
-
-	    // Setup caption
-	    $a->caption->Set($data[$i][$csimpos-1]);
-
-	    // Check if this activity should have a CSIM target ?
-	    if( !empty($data[$i][$csimpos]) ) {
-		$a->SetCSIMTarget($data[$i][$csimpos]);
-		$a->SetCSIMAlt($data[$i][$csimpos+1]);
-	    }
-	    if( !empty($data[$i][$csimpos+2]) ) {
-		$a->title->SetCSIMTarget($data[$i][$csimpos+2]);
-		$a->title->SetCSIMAlt($data[$i][$csimpos+3]);
-	    }
-
-	    $this->Add($a);
-	}
-    }
-
-	
-    // Set what headers should be shown
-    function ShowHeaders($aFlg) {
-	$this->scale->ShowHeaders($aFlg);
-    }
-	
-    // Specify the fraction of the font height that should be added 
-    // as vertical margin
-    function SetLabelVMarginFactor($aVal) {
-	$this->iLabelVMarginFactor = $aVal;
-    }
-
-    // Synonym to the method above
-    function SetVMarginFactor($aVal) {
-	$this->iLabelVMarginFactor = $aVal;
-    }
-	
-	
-    // Add a new Gantt object
-    function Add($aObject) {
-	if( is_array($aObject) && count($aObject) > 0 ) {
-	    $cl = $aObject[0];
-	    if( is_a($cl,'IconPlot') ) {
-		$this->AddIcon($aObject);
-	    }
-	    else {
-		$n = count($aObject);
-		for($i=0; $i < $n; ++$i)
-		    $this->iObj[] = $aObject[$i];
-	    }
-	}
-	else {
-	    if( is_a($aObject,'IconPlot') ) {
-		$this->AddIcon($aObject);
-	    }
-	    else {	    
-		$this->iObj[] = $aObject;
-	    }
-	}
-    }
-
-    // Override inherit method from Graph and give a warning message
-    function SetScale() {
-	JpGraphError::RaiseL(6005);
-//("SetScale() is not meaningfull with Gantt charts.");
-    }
-
-    // Specify the date range for Gantt graphs (if this is not set it will be
-    // automtically determined from the input data)
-    function SetDateRange($aStart,$aEnd) {
-	// Adjust the start and end so that the indicate the
-	// begining and end of respective start and end days
-	if( strpos($aStart,':') === false )
-	    $aStart = date('Y-m-d 00:00',strtotime($aStart));
-	if( strpos($aEnd,':') === false )
-	    $aEnd = date('Y-m-d 23:59',strtotime($aEnd));
-	$this->scale->SetRange($aStart,$aEnd);
-    }
-	
-    // Get the maximum width of the activity titles columns for the bars
-    // The name is lightly misleading since we from now on can have
-    // multiple columns in the label section. When this was first written
-    // it only supported a single label, hence the name.
-    function GetMaxLabelWidth() {
-	$m=50;
-	if( $this->iObj != null ) {
-	    $marg = $this->scale->actinfo->iLeftColMargin+$this->scale->actinfo->iRightColMargin;
-	    $m = $this->iObj[0]->title->GetWidth($this->img)+$marg;
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		if( !empty($this->iObj[$i]->title) ) {
-		    if( $this->iObj[$i]->title->HasTabs() ) {
-			list($tot,$w) = $this->iObj[$i]->title->GetWidth($this->img,true);
-			$m=max($m,$tot);
-		    }
-		    else 
-			$m=max($m,$this->iObj[$i]->title->GetWidth($this->img));
-		}
-	    }
-	}
-	return $m;
-    }
-	
-    // Get the maximum height of the titles for the bars
-    function GetMaxLabelHeight() {
-	$m=0;
-	if( $this->iObj != null ) {
-	    $m = $this->iObj[0]->title->GetHeight($this->img);
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		if( !empty($this->iObj[$i]->title) ) {
-		    $m=max($m,$this->iObj[$i]->title->GetHeight($this->img));
-		}
-	    }
-	}
-	return $m;
-    }
-
-    function GetMaxBarAbsHeight() {
-	$m=0;
-	if( $this->iObj != null ) {
-	    $m = $this->iObj[0]->GetAbsHeight($this->img);
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		$m=max($m,$this->iObj[$i]->GetAbsHeight($this->img));
-	    }
-	}
-	return $m;		
-    }
-	
-    // Get the maximum used line number (vertical position) for bars
-    function GetBarMaxLineNumber() {
-	$m=0;
-	if( $this->iObj != null ) {
-	    $m = $this->iObj[0]->GetLineNbr();
-	    $n = count($this->iObj);
-	    for($i=1; $i < $n; ++$i) {
-		$m=max($m,$this->iObj[$i]->GetLineNbr());
-	    }
-	}
-	return $m;
-    }
-	
-    // Get the minumum and maximum used dates for all bars
-    function GetBarMinMax() {
-	$start = 0 ;
-	$n = count($this->iObj);
-
-	while( $start < $n && $this->iObj[$start]->GetMaxDate() === false )
-	    ++$start;
-	if( $start >= $n ) {
-	    JpgraphError::RaiseL(6006);
-//('Cannot autoscale Gantt chart. No dated activities exist. [GetBarMinMax() start >= n]');
-	}
-
-	$max=$this->scale->NormalizeDate($this->iObj[$start]->GetMaxDate());
-	$min=$this->scale->NormalizeDate($this->iObj[$start]->GetMinDate());
-
-	for($i=$start+1; $i < $n; ++$i) {
-	    $rmax = $this->scale->NormalizeDate($this->iObj[$i]->GetMaxDate());
-	    if( $rmax != false ) 
-		$max=Max($max,$rmax);
-	    $rmin = $this->scale->NormalizeDate($this->iObj[$i]->GetMinDate());
-	    if( $rmin != false ) 
-		$min=Min($min,$rmin);
-	}
-	$minDate = date("Y-m-d",$min);
-	$min = strtotime($minDate);
-	$maxDate = date("Y-m-d 23:59",$max);
-	$max = strtotime($maxDate);	
-	return array($min,$max);
-    }
-
-    // Create a new auto sized canvas if the user hasn't specified a size
-    // The size is determined by what scale the user has choosen and hence
-    // the minimum width needed to display the headers. Some margins are
-    // also added to make it better looking.
-    function AutoSize() {
-	if( $this->img->img == null ) {
-	    // The predefined left, right, top, bottom margins.
-	    // Note that the top margin might incease depending on
-	    // the title.
-	    $lm = $this->img->left_margin; 
-	    $rm = $this->img->right_margin; 
-	    $rm += 2 ;
-	    $tm = $this->img->top_margin; 
-	    $bm = $this->img->bottom_margin; 
-	    $bm += 1; 
-	    if( BRAND_TIMING ) $bm += 10;
-			
-	    // First find out the height			
-	    $n=$this->GetBarMaxLineNumber()+1;
-	    $m=max($this->GetMaxLabelHeight(),$this->GetMaxBarAbsHeight());
-	    $height=$n*((1+$this->iLabelVMarginFactor)*$m);			
-			
-	    // Add the height of the scale titles			
-	    $h=$this->scale->GetHeaderHeight();
-	    $height += $h;
-
-	    // Calculate the top margin needed for title and subtitle
-	    if( $this->title->t != "" ) {
-		$tm += $this->title->GetFontHeight($this->img);
-	    }
-	    if( $this->subtitle->t != "" ) {
-		$tm += $this->subtitle->GetFontHeight($this->img);
-	    }
-
-	    // ...and then take the bottom and top plot margins into account
-	    $height += $tm + $bm + $this->scale->iTopPlotMargin + $this->scale->iBottomPlotMargin;
-	    // Now find the minimum width for the chart required
-
-	    // If day scale or smaller is shown then we use the day font width
-	    // as the base size unit.
-	    // If only weeks or above is displayed we use a modified unit to
-	    // get a smaller image.
-	    if( $this->scale->IsDisplayHour() || $this->scale->IsDisplayMinute() ) {
-		// Add 2 pixel margin on each side
-		$fw=$this->scale->day->GetFontWidth($this->img)+4; 
-	    }
-	    elseif( $this->scale->IsDisplayWeek() ) {
-		$fw = 8;
-	    }
-	    elseif( $this->scale->IsDisplayMonth() ) {
-		$fw = 4;
-	    }
-	    else {
-		$fw = 2;
-	    }
-
-	    $nd=$this->scale->GetNumberOfDays();
-
-	    if( $this->scale->IsDisplayDay() ) {
-		// If the days are displayed we also need to figure out
-		// how much space each day's title will require.
-		switch( $this->scale->day->iStyle ) {
-		    case DAYSTYLE_LONG :
-			$txt = "Monday";
-			break;
-		    case DAYSTYLE_LONGDAYDATE1 :
-			$txt =  "Monday 23 Jun";
-			break;
-		    case DAYSTYLE_LONGDAYDATE2 :
-			$txt =  "Monday 23 Jun 2003";
-			break;
-		    case DAYSTYLE_SHORT : 
-			$txt =  "Mon";
-			break;
-		    case DAYSTYLE_SHORTDAYDATE1 : 
-                        $txt =  "Mon 23/6";
-			break;
-		    case DAYSTYLE_SHORTDAYDATE2 :
-			$txt =  "Mon 23 Jun";
-			break;
-		    case DAYSTYLE_SHORTDAYDATE3 :
-			$txt =  "Mon 23";
-			break;
-		    case DAYSTYLE_SHORTDATE1 :
-                        $txt =  "23/6";
-			break;
-		    case DAYSTYLE_SHORTDATE2 :
-			$txt =  "23 Jun";
-			break;
-		    case DAYSTYLE_SHORTDATE3 :
-			$txt =  "Mon 23";
-			break;
-		    case DAYSTYLE_SHORTDATE4 :
-			$txt =  "88";
-			break;
-		    case DAYSTYLE_CUSTOM :
-			$txt = date($this->scale->day->iLabelFormStr,
-				    strtotime('2003-12-20 18:00'));
-			break;
-		    case DAYSTYLE_ONELETTER :
-		    default:
-			$txt = "M";
-			break;
-		}
-		$fw = $this->scale->day->GetStrWidth($this->img,$txt)+6;
-	    }
-
-	    // If we have hours enabled we must make sure that each day has enough
-	    // space to fit the number of hours to be displayed.
-	    if( $this->scale->IsDisplayHour() ) {
-		// Depending on what format the user has choose we need different amount
-		// of space. We therefore create a typical string for the choosen format
-		// and determine the length of that string.
-		switch( $this->scale->hour->iStyle ) {
-		    case HOURSTYLE_HMAMPM:
-			$txt = '12:00pm';
-			break;
-		    case HOURSTYLE_H24:
-			// 13
-			$txt = '24';
-			break;
-		    case HOURSTYLE_HAMPM:
-			$txt = '12pm';
-			break;
-		    case HOURSTYLE_CUSTOM:
-			$txt = date($this->scale->hour->iLabelFormStr,strtotime('2003-12-20 18:00'));
-			break;
-		    case HOURSTYLE_HM24:
-		    default:
-			$txt = '24:00';
-			break;
-		}
-
-		$hfw = $this->scale->hour->GetStrWidth($this->img,$txt)+6;
-		$mw = $hfw;
-		if( $this->scale->IsDisplayMinute() ) {
-		    // Depending on what format the user has choose we need different amount
-		    // of space. We therefore create a typical string for the choosen format
-		    // and determine the length of that string.
-		    switch( $this->scale->minute->iStyle ) {
-			case HOURSTYLE_CUSTOM:
-			    $txt2 = date($this->scale->minute->iLabelFormStr,strtotime('2005-05-15 18:55'));
-			    break;
-			case MINUTESTYLE_MM:
-			default:
-			    $txt2 = '15';
-			    break;
-		    }
-		    
-		    $mfw = $this->scale->minute->GetStrWidth($this->img,$txt2)+6;
-		    $n2 = ceil(60 / $this->scale->minute->GetIntervall() );
-		    $mw = $n2 * $mfw;
-		}
-		$hfw = $hfw < $mw ? $mw : $hfw ;   
-		$n = ceil(24*60 / $this->scale->TimeToMinutes($this->scale->hour->GetIntervall()) );
-		$hw = $n * $hfw;
-		$fw = $fw < $hw ? $hw : $fw ;
-	    }
-
-	    // We need to repeat this code block here as well. 
-	    // THIS iS NOT A MISTAKE !
-	    // We really need it since we need to adjust for minutes both in the case
-	    // where hour scale is shown and when it is not shown.
-
-	    if( $this->scale->IsDisplayMinute() ) {
-		// Depending on what format the user has choose we need different amount
-		// of space. We therefore create a typical string for the choosen format
-		// and determine the length of that string.
-		switch( $this->scale->minute->iStyle ) {
-		    case HOURSTYLE_CUSTOM:
-			$txt = date($this->scale->minute->iLabelFormStr,strtotime('2005-05-15 18:55'));
-			break;
-		    case MINUTESTYLE_MM:
-		    default:
-			$txt = '15';
-			break;
-		}
-		
-		$mfw = $this->scale->minute->GetStrWidth($this->img,$txt)+6;
-		$n = ceil(60 / $this->scale->TimeToMinutes($this->scale->minute->GetIntervall()) );
-		$mw = $n * $mfw;
-		$fw = $fw < $mw ? $mw : $fw ;
-	    }
-
-	    // If we display week we must make sure that 7*$fw is enough
-	    // to fit up to 10 characters of the week font (if the week is enabled)
-	    if( $this->scale->IsDisplayWeek() ) {
-		// Depending on what format the user has choose we need different amount
-		// of space
-		$fsw = strlen($this->scale->week->iLabelFormStr);
-		if( $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		    $fsw += 8;
-		}
-		elseif( $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) {
-		    $fsw += 7;
-		}
-		else {
-		    $fsw += 4;
-		}
-		    
-		$ww = $fsw*$this->scale->week->GetFontWidth($this->img);
-		if( 7*$fw < $ww ) {
-		    $fw = ceil($ww/7);
-		}
-	    }
-
-	    if( !$this->scale->IsDisplayDay() && !$this->scale->IsDisplayHour() &&
-		!( ($this->scale->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR || 
-		    $this->scale->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR) && $this->scale->IsDisplayWeek() ) ) {
-		// If we don't display the individual days we can shrink the
-		// scale a little bit. This is a little bit pragmatic at the 
-		// moment and should be re-written to take into account
-		// a) What scales exactly are shown and 
-		// b) what format do they use so we know how wide we need to
-		// make each scale text space at minimum.
-		$fw /= 2;
-		if( !$this->scale->IsDisplayWeek() ) {
-		    $fw /= 1.8;
-		}
-	    }
-
-	    $cw = $this->GetMaxActInfoColWidth() ;
-	    $this->scale->actinfo->SetMinColWidth($cw); 
-	    if( $this->img->width <= 0 ) {
-		// Now determine the width for the activity titles column
-
-		// Firdst find out the maximum width of each object column
-		$titlewidth = max(max($this->GetMaxLabelWidth(),
-				      $this->scale->tableTitle->GetWidth($this->img)), 
-				  $this->scale->actinfo->GetWidth($this->img));
-
-		// Add the width of the vertivcal divider line
-		$titlewidth += $this->scale->divider->iWeight*2;
-
-
-		// Now get the total width taking 
-		// titlewidth, left and rigt margin, dayfont size 
-		// into account
-		$width = $titlewidth + $nd*$fw + $lm+$rm;
-	    }
-	    else {
-		$width = $this->img->width;
-	    }
-
-	    $width = round($width);
-	    $height = round($height);
-	    if( $width > MAX_GANTTIMG_SIZE_W || $height > MAX_GANTTIMG_SIZE_H ) {
-		JpgraphError::RaiseL(6007,$width,$height);
-//("Sanity check for automatic Gantt chart size failed. Either the width (=$width) or height (=$height) is larger than MAX_GANTTIMG_SIZE. This could potentially be caused by a wrong date in one of the activities.");
-	    }
-						
-	    $this->img->CreateImgCanvas($width,$height);			
-	    $this->img->SetMargin($lm,$rm,$tm,$bm);
-	}
-    }
-
-    // Return an array width the maximum width for each activity
-    // column. This is used when we autosize the columns where we need
-    // to find out the maximum width of each column. In order to do that we
-    // must walk through all the objects, sigh...
-    function GetMaxActInfoColWidth() {
-	$n = count($this->iObj);
-	if( $n == 0 ) return;
-	$w = array();
-	$m = $this->scale->actinfo->iLeftColMargin + $this->scale->actinfo->iRightColMargin;
-	
-	for( $i=0; $i < $n; ++$i ) {
-	    $tmp = $this->iObj[$i]->title->GetColWidth($this->img,$m);
-	    $nn = count($tmp);
-	    for( $j=0; $j < $nn; ++$j ) {
-		if( empty($w[$j]) ) 
-		    $w[$j] = $tmp[$j];
-		else 
-		    $w[$j] = max($w[$j],$tmp[$j]);
-	    }
-	}
-	return $w;
-    }
-
-    // Stroke the gantt chart
-    function Stroke($aStrokeFileName="") {	
-
-
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// Should we autoscale dates?
-	if( !$this->scale->IsRangeSet() ) {
-	    list($min,$max) = $this->GetBarMinMax();
-	    $this->scale->SetRange($min,$max);
-	}
-
-	$this->scale->AdjustStartEndDay();
-
-	// Check if we should autoscale the image
-	$this->AutoSize();
-		
-	// Should we start from the top or just spread the bars out even over the
-	// available height
-	$this->scale->SetVertLayout($this->iLayout);			
-	if( $this->iLayout == GANTT_FROMTOP ) {
-	    $maxheight=max($this->GetMaxLabelHeight(),$this->GetMaxBarAbsHeight());
-	    $this->scale->SetVertSpacing($maxheight*(1+$this->iLabelVMarginFactor));
-	}
-	// If it hasn't been set find out the maximum line number
-	if( $this->scale->iVertLines == -1 ) 
-	    $this->scale->iVertLines = $this->GetBarMaxLineNumber()+1; 	
-		
-	$maxwidth=max($this->scale->actinfo->GetWidth($this->img),
-		      max($this->GetMaxLabelWidth(),
-		      $this->scale->tableTitle->GetWidth($this->img)));
-
-	$this->scale->SetLabelWidth($maxwidth+$this->scale->divider->iWeight);//*(1+$this->iLabelHMarginFactor));
-
-	if( !$_csim ) {
-	    $this->StrokePlotArea();
-	    if( $this->iIconDepth == DEPTH_BACK ) {
-		$this->StrokeIcons();
-	    }
-	}
-
-	$this->scale->Stroke();
-
-	if( !$_csim ) {
-	    // Due to a minor off by 1 bug we need to temporarily adjust the margin
-	    $this->img->right_margin--;
-	    $this->StrokePlotBox();
-	    $this->img->right_margin++;
-	}
-
-	// Stroke Grid line
-	$this->hgrid->Stroke($this->img,$this->scale);
-
-	$n = count($this->iObj);
-	for($i=0; $i < $n; ++$i) {
-	    //$this->iObj[$i]->SetLabelLeftMargin(round($maxwidth*$this->iLabelHMarginFactor/2));
-	    $this->iObj[$i]->Stroke($this->img,$this->scale);
-	}
-
-	$this->StrokeTitles();
-
-	if( !$_csim ) {
-	    $this->StrokeConstrains();
-	    $this->footer->Stroke($this->img);
-
-	    if( $this->iIconDepth == DEPTH_FRONT) {
-		$this->StrokeIcons();
-	    }
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		}
-	    
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-	    
-	    
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-					   $aStrokeFileName);		
-	    }
-	}
-    }
-
-    function StrokeConstrains() {
-	$n = count($this->iObj);
-
-	// Stroke all constrains
-	for($i=0; $i < $n; ++$i) {
-
-	    // Some gantt objects may not have constraints associated with them
-	    // for example we can add IconPlots which doesn't have this property.
-	    if( empty($this->iObj[$i]->constraints) ) continue;
-
-	    $numConstrains = count($this->iObj[$i]->constraints);
-
-	    for( $k = 0; $k < $numConstrains; $k++ ) {
-		$vpos = $this->iObj[$i]->constraints[$k]->iConstrainRow;
-		if( $vpos >= 0 ) {
-		    $c1 = $this->iObj[$i]->iConstrainPos;
-
-		    // Find out which object is on the target row
-		    $targetobj = -1;
-		    for( $j=0; $j < $n && $targetobj == -1; ++$j ) {
-			if( $this->iObj[$j]->iVPos == $vpos ) {
-			    $targetobj = $j;
-			}
-		    }
-		    if( $targetobj == -1 ) {
-			JpGraphError::RaiseL(6008,$this->iObj[$i]->iVPos,$vpos);
-//('You have specifed a constrain from row='.$this->iObj[$i]->iVPos.' to row='.$vpos.' which does not have any activity.');
-		    }
-		    $c2 = $this->iObj[$targetobj]->iConstrainPos;
-		    if( count($c1) == 4 && count($c2 ) == 4) {
-			switch( $this->iObj[$i]->constraints[$k]->iConstrainType ) {
-			    case CONSTRAIN_ENDSTART:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[2],$c1[3],$c2[0],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[2],$c1[1],$c2[0],$c2[3]);
-				}
-				$link->SetPath(3);
-				break;
-			    case CONSTRAIN_STARTEND:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[0],$c1[3],$c2[2],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[0],$c1[1],$c2[2],$c2[3]);
-				}
-				$link->SetPath(0);
-				break;
-			    case CONSTRAIN_ENDEND:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[2],$c1[3],$c2[2],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[2],$c1[1],$c2[2],$c2[3]);
-				}
-				$link->SetPath(1);
-				break;
-			    case CONSTRAIN_STARTSTART:
-				if( $c1[1] < $c2[1] ) {
-				    $link = new GanttLink($c1[0],$c1[3],$c2[0],$c2[1]);
-				}
-				else {
-				    $link = new GanttLink($c1[0],$c1[1],$c2[0],$c2[3]);
-				}
-				$link->SetPath(3);
-				break;
-			    default:
-				JpGraphError::RaiseL(6009,$this->iObj[$i]->iVPos,$vpos);
-//('Unknown constrain type specified from row='.$this->iObj[$i]->iVPos.' to row='.$vpos);
-				break;
-			}
-
-			$link->SetColor($this->iObj[$i]->constraints[$k]->iConstrainColor);
-			$link->SetArrow($this->iObj[$i]->constraints[$k]->iConstrainArrowSize,
-					$this->iObj[$i]->constraints[$k]->iConstrainArrowType);
- 
-			$link->Stroke($this->img);
-		    }
-		}
-	    }
-	}
-    }
-
-    function GetCSIMAreas() {
-	if( !$this->iHasStroked )
-	    $this->Stroke(_CSIM_SPECIALFILE);
-
-	$csim = $this->title->GetCSIMAreas();
-	$csim .= $this->subtitle->GetCSIMAreas();
-	$csim .= $this->subsubtitle->GetCSIMAreas();
-
-	$n = count($this->iObj);
-	for( $i=$n-1; $i >= 0; --$i ) 
-	    $csim .= $this->iObj[$i]->GetCSIMArea();
-	return $csim;
-    }
-}
-
-//===================================================
-// CLASS PredefIcons
-// Description: Predefined icons for use with Gantt charts
-//===================================================
-DEFINE('GICON_WARNINGRED',0);
-DEFINE('GICON_TEXT',1);
-DEFINE('GICON_ENDCONS',2);
-DEFINE('GICON_MAIL',3);
-DEFINE('GICON_STARTCONS',4);
-DEFINE('GICON_CALC',5);
-DEFINE('GICON_MAGNIFIER',6);
-DEFINE('GICON_LOCK',7);
-DEFINE('GICON_STOP',8);
-DEFINE('GICON_WARNINGYELLOW',9);
-DEFINE('GICON_FOLDEROPEN',10);
-DEFINE('GICON_FOLDER',11);
-DEFINE('GICON_TEXTIMPORTANT',12);
-
-class PredefIcons {
-    var $iBuiltinIcon = null;
-    var $iLen = -1 ;
-
-    function GetLen() {
-	return $this->iLen ; 
-    }
-
-    function GetImg($aIdx) {
-	if( $aIdx < 0 || $aIdx >= $this->iLen ) {
-	    JpGraphError::RaiseL(6010,$aIdx);
-//('Illegal icon index for Gantt builtin icon ['.$aIdx.']');
-	}
-	return Image::CreateFromString(base64_decode($this->iBuiltinIcon[$aIdx][1]));   
-    }
-
-    function PredefIcons() {
-	//==========================================================
-	// warning.png
-	//==========================================================
-	$this->iBuiltinIcon[0][0]= 1043 ;
-	$this->iBuiltinIcon[0][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsSAAALEgHS3X78AAAA'.
-	    'B3RJTUUH0wgKFSgilWPhUQAAA6BJREFUeNrtl91rHFUYh5/3zMx+Z5JNUoOamCZNaqTZ6IWIkqRiQWmi1IDetHfeiCiltgXBP8AL'.
-	    '0SIUxf/AvfRSBS9EKILFFqyIH9CEmFZtPqrBJLs7c+b1YneT3WTTbNsUFPLCcAbmzPt73o9zzgzs2Z793231UOdv3w9k9Z2uzOdA'.
-	    '5+2+79yNeL7Hl7hw7oeixRMZ6PJM26W18DNAm/Vh7lR8fqh97NmMF11es1iFpMATqdirwMNA/J4DpIzkr5YsAF1PO6gIMYHRdPwl'.
-	    'oO2elmB+qH3sm7XozbkgYvy8SzYnZPtcblyM6I+5z3jQ+0vJfgpEu56BfI9vUkbyi2HZd1QJoeWRiAjBd4SDCW8SSAOy6wBHMzF7'.
-	    'YdV2A+ROuvRPLfHoiSU0EMY/cDAIhxJeGngKaN1VgHyPL7NBxI1K9P4QxBzw3K1zJ/zkG8B9uwaQ7/HNsRZv9kohBGD0o7JqMYS/'.
-	    '/ynPidQw/LrBiPBcS/yFCT95DvB2BWAy4575PaQbQKW+tPd3GCItu2odKI++YxiKu0d26oWmAD7paZU/rLz37VqIijD2YbnzNBBE'.
-	    'IBHf8K8qjL7vYhCGErEU8CTg3xXAeMp96GrJEqkyXkm9Bhui1xfsunjdGhcYLq+IzjsGmBt5YH/cmJkFq6gIqlon3u4LxdKGuCIo'.
-	    'Qu41g0E41po+2R33Xt5uz9kRIB2UTle7PnfKrROP1HD4sRjZlq0lzhwoZ6rDNeTi3nEg1si/7FT7kYQbXS6E5E65tA5uRF9tutq0'.
-	    'K/VwAF+/FbIYWt6+tjQM/AqUms7A4Wy6d7YSfSNxgMmzi0ycWWworio4QJvj4LpuL5BqugTnXzzqJsJwurrlNhJXFaavW67NRw3F'.
-	    'q+aJcCQVe9fzvJGmAY7/dPH0gi0f64OveGxa+usCuQMeZ0+kt8BVrX+qPO9Bzx0MgqBvs+a2PfDdYIf+WAjXU1ub4tqNaPPzRs8A'.
-	    'blrli+WVn79cXn0cWKl+tGx7HLc7pu3CSmnfitL+l1UihAhwjFkPQev4K/fSABjBM8JCaFuurJU+rgW41SroA8aNMVNAFtgHJCsn'.
-	    'XGy/58QVxAC9MccJtZ5kIzNlW440WrJ2ea4YPA9cAooA7i0A/gS+iqLoOpB1HOegqrYB3UBmJrAtQAJwpwPr1Ry92wVlgZsiYlW1'.
-	    'uX1gU36dymgqYxJIJJNJT1W9QqHgNwFQBGYqo94OwHZQUuPD7ACglSvc+5n5T9m/wfJJX4U9qzEAAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// edit.png
-	//==========================================================
-	$this->iBuiltinIcon[1][0]= 959 ;
-	$this->iBuiltinIcon[1][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAFgAWABY9j+ZuwAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9AKDAwbIEXOA6AAAAM8SURBVHicpdRPaBxlHMbx76ZvsmOTmm1dsEqQSIIsEmGVBAQjivEQ'.
-	    'PAUJngpWsAWlBw8egpQepKwplN4ULEG9CjkEyUFKlSJrWTG0IU51pCsdYW2ncUPjdtp9Z+f3vuNhu8nKbmhaf5cZeGc+PO8zf1Lc'.
-	    'm0KhkACICCKCMeaBjiLC0tLSnjNvPmuOHRpH0TZTU1M8zBi9wakzn7OFTs5sw8YYACYmJrre7HkeuVyu69qPF77hlT1XmZ0eQ03O'.
-	    'wOLJTvhBx1rLz18VmJ0eY+jVd2FxDkKXnvYLHgb97OgLzE4ON9Hzc1B1QaQzsed5O0Lta3Ec89OnR5h5McfQ+Mw2qgQUnfBOPbZ3'.
-	    'bK3l+xOvMT0+3ERLp5FNF6UEjcL32+DdVmGt5WLhDYYPZrbRqreFumXwql0S3w9tnDvLWD5PZigPpdOwuYpSCo3C8wU3UHxQdHbf'.
-	    'cZIkNM6dxcnlUM4k1eUFMlUPpUADbpkttFarHe6oYqeOr6yt4RzMQHYUcUsQVtGicHDwKprViuLDkkOtVnsHCHZVRVy/zcj1i5Af'.
-	    'h8AjdIts+hUcGcYPK3iBtKM3gD/uAzf/AdY2mmmVgy6X8YNNKmGIvyloPcB8SUin07RQ4EZHFdsdG0wkJEnEaHAJxvKEpSLeaokV'.
-	    'r4zWmhUZYLlY4b1D03y5eIEWCtS7vsciAgiIxkQRabWOrlQor66y4pUphoJb1jiO4uO5o0S3q6RSqVbiOmC7VCEgAhLSaDQ48dH7'.
-	    'vD46REY0iysegSjKQciRt99ib7qXwX0O+pG4teM6YKHLB9JMq4mTmF9/+AKA4wvLZByH7OgYL7+UY2qvw/7Bfg5kHiXjJFyv3CGO'.
-	    'Y1rof+BW4t/XLiPG0DCGr79d4XzRxRnIMn98huXSTYyJ6et1UNYQhRvcinpJq86H3wGPPPM0iBDd+QffD1g4eZjLvuG7S1Wef26E'.
-	    'J7L7eSx7gAHVg7V3MSbi6m/r93baBd6qQjerAJg/9Ql/XrvG0ON1+vv7GH3qSfY5fahUnSTpwZgIEQesaVXRPbHRG/xyJSAxMYlp'.
-	    'EOm71HUINiY7mGb95l/8jZCyQmJjMDGJjUmsdCROtZ0n/P/Z8v4Fs2MTUUf7vYoAAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// endconstrain.png
-	//==========================================================
-	$this->iBuiltinIcon[2][0]= 666 ;
-	$this->iBuiltinIcon[2][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALDwAACw8BkvkDpQAAAAd0SU1FB9ALEREILkh0+eQAAAIXSURBVHictZU9aFNRFMd/N81HX77aptJUWmp1LHRpIcWhg5sIDlUQ'.
-	    'LAXB4t7RRUpwEhy7iQ46CCIoSHcl0CFaoVARU2MFMYktadLXJNok7x2HtCExvuYFmnO4w/3gx+Gc/z1HKRTdMEdXqHbB/sgc/sic'.
-	    'nDoYAI8XwDa8o1RMLT+2hAsigtTvbIGVqhX46szUifBGswUeCPgAGB7QeLk0X4Ork+HOxo1VgSqGASjMqkn8W4r4vVtEgI/RRQEL'.
-	    'vaoGD85cl5V3nySR/S1mxWxab7f35PnntNyMJeRr9kCMqiHTy09EoeToLwggx6ymiMOD/VwcD7Oa/MHkcIiQx026WGYto5P/U+ZZ'.
-	    '7gD0QwDuT5z9N3LrVPi0Xs543eQPKkRzaS54eviJIp4tMFQFMllAWN2qcRZHBnixNM8NYD162xq8u7ePSQ+GX2Pjwxc2dB2cLtB8'.
-	    '7GgamCb0anBYBeChMtl8855CarclxU1gvViiUK4w2OMkNDnGeJ8bt9fH90yOnOkCwLFTwhzykhvtYzOWoBBbY//R3dbaNTYhf2RO'.
-	    'QpeuUMzv188MlwuHy0H13HnE48UzMcL0WAtUHX8OxZHoG1URiFw7rnLLCswuSPD1ulze/iWjT2PSf+dBXRFtVVGIvzqph0pQL7VE'.
-	    'avXYaXXxPwsnt0imdttCocMmZBdK7YU9D8wuNOW0nXc6QWzPsSa5naZ1beb9BbGB6dxGtMnXAAAAAElFTkSuQmCC' ; 
-
-	//==========================================================
-	// mail.png
-	//==========================================================
-	$this->iBuiltinIcon[3][0]= 1122 ;
-	$this->iBuiltinIcon[3][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9AJHAMfFvL9OU8AAAPfSURBVHictZRdaBRXFMd/987H7tbNx8aYtGCrEexDsOBDaKHFxirb'.
-	    'h0qhsiY0ykppKq1osI99C4H2WSiFFMHWUhXBrjRi0uCmtSEUGgP1QWqhWjGkoW7M1kTX3WRn5p4+TJJNGolQ6IXDnDtz+N0z/3PP'.
-	    'UWBIpdpYa23b9g09PZ2kUrOrvmUyGVKp1Ao/mUyi56YnVgWfO/P1CihAd/dJMpmaNROIRq8BkM1m0bH6TasC3j6QXgFdXI+DR6PR'.
-	    'JX/Pno8B+KLnMKqlpUU8z8MYs2RBEDzWf9J+0RcRbMdxGBsbw/fmCXwPMUEYID4iAVp8wIRmDIHMo4yHSIBSASKC+CWE0C/PF9jU'.
-	    '3B6Cp+4M07C5FUtKGNvGwQJctPgIsgD2wRhEIqAMGB+UQYkHJgYYZD7P1HwVlmWhHcfhyk83KeRGUW4t6CgoG5SNUS4KBWgQDUov'.
-	    '7AGlwYASBVqH0Bk49dXpCviVV3dw/tI1Bvr7kMIIlh0NYUpjlF0BAYvcxSXmEVLKceHSCJm+PnbueBHbtkNwTXUNBzo6aGpq4sSZ'.
-	    'GwT5H7BsF6Wdf1GWHQAoM0upeI9PT1yioS7B7tdaSdSuw7KsUGMAy7HYsmUztTW1nMwM0txssX1rlHjjS5jy/Uq2YkK/eJuLl6/z'.
-	    'x+1xkslW6mrixGIODx8EFSlEBC0+tmXT0NhA2763iEUjnLv4C8XpUbSbAB1mKkGJ3J83Od77HW5EszvZSqK2iljMIeJaRGNuJePF'.
-	    '6mspY7BJ1DXwQnCd2fxGRq5OUCz8xt72dyhMZcn++Cu3xu9SKhdp2b4ZHWnAtTSxmIWlhcIjlksR3lNBYzlxZsb7+f7ne+xtSzOd'.
-	    'u83szH1OnThOPp/n+a0beeP1l4mvq+PU2Qyd+5PY1RuwlAqLYFaBfbTbyPSdfgaH77A//QF4f1O/vpr6RJyq+C5Kc/M8FbFxXItY'.
-	    'xOHDrvfo/fxLDnbsJBp5BowBReVWYAzabeTh5ABDw7cWoNNL3YYYNtSv57lnn6Z+Qx01VeuIuBa2DV1HD3H63BAPZu4u1WGpeLHq'.
-	    'Rh7+NcjA0O+0p4+CNwXigwnbWlQQdpuEpli+n+PIkcOc//YKuckJJFh2K2anrjFw+QZt6S6kPImIF/b+cqAJD1LihWAxC61twBTo'.
-	    'fPcQF/oGsVW5ovHQlavs2/8+uYnRVSOUgHAmmAClBIOBwKC0gPjhIRgEIX2wg7NnwpZW3d3d4vs+vu8TBMGK51rvPM9b8hdteZxd'.
-	    'LBbVR8feJDs0Rlv6GFKeXJ21rNRXESxMPR+CBUl0nN7PjtO+dye7Up/8v1I88bf/ixT/AO1/hZsqW+C6AAAAAElFTkSuQmCC' ; 
-
-	//==========================================================
-	// startconstrain.png
-	//==========================================================
-	$this->iBuiltinIcon[4][0]= 725 ;
-	$this->iBuiltinIcon[4][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALDgAACw4BQL7hQQAAAAd0SU1FB9ALEREICJp5fBkAAAJSSURBVHic3dS9a1NRGMfx77kxtS+xqS9FG6p1ER3qVJpBQUUc3CRU'.
-	    'BwURVLB1EAuKIP0THJQiiNRJBK3iJl18AyeltRZa0bbaJMbUNmlNSm5e7s25j0NqpSSmyag/OMM9POdzDuflwn8djz8gClVRrVEV'.
-	    'ur4Bl1FTNSzLrSS6vbml0jUUwSXj8Qfk3PkLtLW2AeBIybmrgz3+gFzpucjlE4f4btuFTuWuCF5XDr3a3UPf6cM8GQvxzbsRAJdh'.
-	    'ScfxSywml5j7mVypN0eGEJ0tebIre+zxB6Tv7jPReS2hREpOvpmUXU+H5eC913JnNCSRVE60pUVbWoZjprR39Yq70bdqj4pW7PEH'.
-	    '5FpvL9e79jOTTHM7ssDL6CJZ08LbvAGnrpZg2mI2Z/MlZfN8IkxuSwu4V9+WIrj7zFlOHfXzKrLIi2SGh5ECKjnNVNxkQEc55vOw'.
-	    'rb6O8JLFdHyJ+ayFElUeHvjwkfteL/V7fKTSkFvIQE4DoLI2Mz/muTkTApcBKIwaN8pwIUrKw+ajWwDknAO0d/r4zFaMuRS63sWm'.
-	    'RoOdm+vRIriUYjKexrQV+t1o0YEVwfZSVJmD/dIABJuO0LG3lRFx0GOfiAELE9OgCrfU0XnIp5FwGLEy5WEAOxlR5uN+ARhP7GN3'.
-	    '5w7Gv4bQI2+xpt4jjv2nWBmIlcExE2vDAHYioszBZXw6CPE4ADoWVHmd/tuwlZR9eXYyoszBfpiNQqaAOU5+TXRN+DeeenADPT9b'.
-	    'EVgKVsutKPl0TGWGhwofoquaoKK4apsq/tH/e/kFwBMXLgAEKK4AAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// calc.png
-	//==========================================================
-	$this->iBuiltinIcon[5][0]= 589 ;
-	$this->iBuiltinIcon[5][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAA4AIwBbgMF12wAAAAlwSFlz'.
-	    'AAALEQAACxEBf2RfkQAAAAd0SU1FB9AHBxQeFsqn0wQAAAHKSURBVHicnZWff+RAGIef3U/gcOEgUAgUCgcLhYXCwsHBQeGgUDgs'.
-	    'FgMHB4VA/4Bg4XChWFgIFIqBwkJhsRAYeOGF+TQHmWSTTbKd9pU37/x45jvfTDITXEynAbdWKVQB0NazcVm0alcL4rJaRVzm+w/e'.
-	    '3iwAkzbYRcnnYgI04GCvsxxSPabYaEdt2Ra6D0atcvvvDmyrMWBX1zPq2ircP/Tk98DiJtjV/fim6ziOCL6dDHZNhxQ3arIMsox4'.
-	    'vejleL2Ay9+jaw6A+4OSICG2cacGKhsGxg+CxeqAQS0Y7BYJvowq7iGMOhXHEfzpvpQkA9bLKgOgWKt+4Lo1mM9hs9m17QNsJ70P'.
-	    'Fjc/O52joogoX8MZKiBiAFxd9Z1vcj9wfSpUlDRNMcYQxzFpmnJ0FPH8nDe1MQaWSz9woQpWSZKEojDkeaWoKAyr1tlu+s48wfVx'.
-	    'u7n5i7jthmGIiEGcT+36PP+gFeJrxWLhb0UA/lb4ggGs1T0rZs0zwM/ZjNfilcIY5tutPxgOW3F6dUX464LrKILLiw+A7WErrl+2'.
-	    'rABG1EL/BilZP8DjU2uR4U+2E49P1Z8QJmNXUzl24A9GBT0IruCfi86d9x+D12RGzt+pNAAAAABJRU5ErkJggg==' ; 
-
-	//==========================================================
-	// mag.png
-	//==========================================================
-	$this->iBuiltinIcon[6][0]= 1415 ;
-	$this->iBuiltinIcon[6][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlz'.
-	    'AAALDAAACwwBP0AiyAAAAAd0SU1FB9ALDxEWDY6Ul+UAAAUESURBVHicdZVrbFRFGIafsyyF0nalV1R6WiggaAptlzsr1OgEogmC'.
-	    '0IgoBAsBgkIrBAPEhBj/AP6xRTCUFEwRI4jcgsitXMrFCJptJWvBNpXYbbXtbtttt6e7e86ec/yxadlCfZPJZDIz73zzzjfvR2VL'.
-	    'F7U+hf0HD2JduIzTFy6SlJRkPtkcDgdCCE65OxFC8NPV6wghyM7OptankJ2dzbSC5QghEEIgCSHog9PpNAF27dlN6miZuPgElB4/'.
-	    'nmY3O7ZtByA1NVUCkGWZweD1eklJScESTbqxuIjrd+/x6uIl5M19hSy7nfGOeUxf+g7VjU1sKi7C4/GYsiyz7tAJAD4/cRaA1tZW'.
-	    'AHIPnECUVGD1+/3U19ebG4uLeHf1akamjsIwoVnVCOvQEdLoVILYYmMo3PIxSBJflpSaDX5FAmju1QAYv/8k/s8+wLVxOU0jR2LZ'.
-	    '8sMFAApWrCApbRRDrRZirBYSLBKaoRPQw3SFernf2sav7T0Ubt4KwL4FMwF4Vu8FoHBCKgCzDhwHwLIhZ7y5a89u4m2JhA0wTdDC'.
-	    'OrphEjJMNElCHxKDEjaobmvlfo/Krj27CQQCJsCGJW8C0KXqAMxMiosQA8hZWcTFx9OsaniDKh1qmG7VoFsL0x0K06kbeAMhWpRe'.
-	    '/KpG+gwHAKUnz7Dz3BUMw6DK18nuw99wt0Nh6VdHI8RJicmETQgFg7SFwjSrGv+oKp6ghldV6dZ0ugJBlF6FmCESQ2w2AIqXLsan'.
-	    'BrFYLJTnTCBrdBqveeopWZiPFaBHUegJhegMqGgxEkHDwB/UaQ9rdIV06v0+TD2EEQjQFtAY0dsNgNvt5sialQAIIXh7wQKuVf6J'.
-	    'gTsSccPDWlQstClBGjr9eHpVWvUQncEwdYEedF8noQ4vmYmpZMTH0nTvDn25vLbrNmu7bvfnsYEbAMnhcPDgwQPzUo2LJusw/mhp'.
-	    'QwlHNO0KBAnoIfxtrcQMT2De1Mm891wyUzNlUlJSpIyMDBobGzlzr5rFM/Koq6vrP8ASGxsLwPmKcvIShjPGZiPOakE3VFB8hHwd'.
-	    'vJAxhrk5L7Ly+RQuH/sWgPdXrwFg/6HDFBUsIj09nehfbAWwPWOT9n5RYhqGwarNWxkRM5TRCfF4U1PQsDDJFk9uYhwXvzvKjm3b'.
-	    'KSsro3DJInNW5RXp7u2bAKSlpeH1esnPz6eqqgqLpmmcr3Fht9ulfaV7mZk1Bs+lM6T1djM9fhg5egDPpTNMy5TZsW07kydPYdWM'.
-	    'aXx96ixOp9O8cfUa80srmDpjOgAulytiQqZpMnvObLbt/JTtHxXj9/tRVdU0DGOAufRpevPDTeac0hJyc3NxOOawfv161lVWS6eX'.
-	    'z+9/UOCxu1VWVvaTRGv16NFfjB2bNeAQp9NpTpmSM4DcbrdL0WsGDKLRR+52uwe1yP8jb2lpYfikyY9t80n03UCWZeaXVjw1f+zs'.
-	    'Oen+/d+pqanhzp2fKSsrw+l0mi6XiyPl5ZGITdN8fAVJwjRNJEmi1qfw1kw7siyTnJxMe3s71dXV3GpoZO64DG41NPJylvxU5D/e'.
-	    'qJKsfWQD9IkaZ2RmUvr9aV4aGYcQgjfO3aWoYBF5eXm4ewIsu/CbdPz1aWb0/p1bNoOrQxlUiuiaFo3c3FyEEOx9+C9CCD6paaTW'.
-	    'p/TXyYkTJ0Xe59jf7QOyAKDWp/QXxcFQ61P4pT3ShBBcvnUHIQTjxmX19/8BCeVg+/GPpskAAAAASUVORK5CYII=' ; 
-
-	//==========================================================
-	// lock.png
-	//==========================================================
-	$this->iBuiltinIcon[7][0]= 963 ;
-	$this->iBuiltinIcon[7][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALCwAACwsBbQSEtwAAAAd0SU1FB9AKAw0XDmwMOwIAAANASURBVHic7ZXfS1t3GMY/3+PprI7aisvo2YU6h6ATA8JW4rrlsF4U'.
-	    'qiAsF9mhl0N2cYTRy9G/wptAYWPD9iJtRy5asDe7cYFmyjaXOLaMImOrmkRrjL9yTmIS3120JybWQgfb3R74wuc8Lzw858vLOUpE'.
-	    'OK6pqSm2trbY39+nu7tbPHYch7m5OcLhMIA67kWj0aMQEWk6tm17rNm2LSIie3t7ksvlJJ1OSyqVkls3Z8SyLMnlcqTTaVKpFLdu'.
-	    'zmBZVj1HeY2VUti2TSQSQSml2bZdi0QirK2tMT09zerqKtlslqGhISYnJ4nHv2N+foFsNquOe9FotLlxOBwmk8lgWRbhcFgymYxY'.
-	    'liUi0mqaJoAuIi2macrdO7fFsizx3to0Te7euV1vrXtXEgqFmJmZYWVlhXK5LB4/U9kwDL784kYV0A3DYHd3m4sXRymXywKoRi8U'.
-	    'Ch01DgQCJBIJLMsiEAhIIpHw2uLz+eqtYrEYIqKZpimxWEyCwaCMjY01zYPBIJpXqVQqsby8TLVabWKA/v5+RkZGMAyDrq4ulFKH'.
-	    'HsfjcWZnZ+ns7KTRqwcnk0mKxSKFQqGJlVKtruuSTCYB6O3trW9UI/v9/iZPB/j8s2HOnX0FgHfeXpeffnzK+fWf+fijvhLs0PtG'.
-	    'D/n1OJ9+MsrlSwb3733DwMCAt1EyPj6uACYmJp56168NU6nUqFSE9nZdPE7+WqC/r4NKTagcCJVqDaUUB5VDAA4Pa9x7sMLlSwan'.
-	    'WjRmv13D7/erpaWlo604qOp88OF7LC48rPNosMq5Th+Dgxd4/XyA1rbzADi7j8jnf2P++wdcvSr8MJ/i8eomAKlUqn41OsDAQDeD'.
-	    'g++yuPCwzm/2vU8+n2a7sMFfj79mp7BBuVzioFSiXHJx3SKuW2Rzy0Up9dxnQVvODALQerqNRn4ZKe0Mvtc6TpzpmqbxalcY9Ato'.
-	    '2v06t515C73YQftZB9GLnDrt4LoujuPgOA4Ui+C6yOpXJwZrJ7r/gv4P/u+D9W7fLxTz+1ScQxrZ3atRLaVxdjbY2d184R6/sLHe'.
-	    'opHP7/Do90Ua+WWUyezzZHObP/7cfX54/dowE1d66s8TV3oE+Mfn+L/zb4XmHPjRG9YjAAAAAElFTkSuQmCC' ; 
-
-	//==========================================================
-	// stop.png
-	//==========================================================
-	$this->iBuiltinIcon[8][0]= 889 ;
-	$this->iBuiltinIcon[8][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALDwAACw8BkvkDpQAAAAd0SU1FB9AJDwEvNyD6M/0AAAL2SURBVHic1ZTLaxVnGIefb2bO5OScHJN4oWrFNqcUJYoUEgU3/Qf6'.
-	    'F7gwCkIrvdBLUtqqiLhSg9bgBduFSHZdiG5ctkJ3xRDbUFwUmghNzBDanPGMkzOX79LFJGPMOSd204U/+Bbzvd/78F4H/ieJdoad'.
-	    'pZKxRFszAI/DcP0HazXY22v+HB01kee1PA/v3zfnjx4xgGnHcNZe7OvuNj+cOEF1ZATv5nUA4jhBSgmADCVWo8Ge2Of9wb18P/G7'.
-	    'oUXmYi30zqlTVEdGWLh1g2D6MYlKkXGE0Vl8aa2GEB149+4xXSzyoOIw/mimiZV/DPb25pFOj13A9gOMEChhUEqhVYqWKUk9QAUp'.
-	    'sT/P4s8PmKlUmNhQaIJbkDVqBbpw6wZ2zUc4Nm+ePku5p4eOrgpueQOFUoVCVxcD4+N07dpF9+5tVJeWGPBjhvr7WF1zC8ASgtcP'.
-	    'H8a7eZ1odh4sh50nzwCw9ZNh3M4Stutiu0X2nB/LyjZ6lcIbVTpdQU/jWVPzLADM8+ZGBRdtC7wrF/O7bR99iu26VL86iU4SAH4b'.
-	    'Po5d6AQhstMSvGyI4wS5FJBKSRwnzF8byx/u+PjzzMF1mfryQ1K/jnCahqp1xEopjFLoNEFJSRJHzF799gWHqa+/QKcSUXBI609f'.
-	    'Al5W4teQSiHDOipNUKnMI13RvnOXAIEKQixvGWya98SC560MFwPiqEG86JM8q79Q06lvhnOndy5/B6GPCUOMUu3BQgg8z0M3GmBZ'.
-	    'iGJn3v2VmsqnfzNx7FDueODuj8ROCFpjtG5TCmOYv32bJ09msP0ISydMfnAUgF8/O45RAA6WTPjlvXcB+Gn7FuRf/zAnNX6x3ARe'.
-	    'PSdmqL+P/YHkwMGDOGWDZTlQcNBRhPEComgB/YeHfq2InF1kLlXUOkpMbio1bd7aATRD/X0M1lPeSlM2vt2X1XBZjZnpLG2tmZO6'.
-	    'LbQVOIcP+HG2UauH3xgwBqOz9Cc3l1tC24Fz+MvUDroeGNb5if9H/1dM/wLPCYMw9fryKgAAAABJRU5ErkJggg==' ; 
-
-	//==========================================================
-	// error.png
-	//==========================================================
-	$this->iBuiltinIcon[9][0]= 541 ;
-	$this->iBuiltinIcon[9][1]= 
-	    'iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAaVBMVEX//////2Xy8mLl5V/Z2VvMzFi/v1WyslKlpU+ZmUyMjEh/'.
-	    'f0VyckJlZT9YWDxMTDjAwMDy8sLl5bnY2K/MzKW/v5yyspKlpYiYmH+MjHY/PzV/f2xycmJlZVlZWU9MTEXY2Ms/PzwyMjLFTjea'.
-	    'AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAAHdElNRQfTCAkUMSj9wWSOAAABLUlEQVR4'.
-	    '2s2U3ZKCMAxGjfzJanFAXFkUle/9H9JUKA1gKTN7Yy6YMjl+kNPK5rlZVSuxf1ZRnlZxFYAm93NnIKvR+MEHUgqBXx93wZGIUrSe'.
-	    'h+ctEgbpiMo3iQ4kioHCGxir/ZYUbr7AgPXs9bX0BCYM8vN/cPe8oQYzom3tVsSBMVHEoOJ5dm5F1RsIe9CtqGgRacCAkUvRtevT'.
-	    'e2pd6vOWF+gCuc/brcuhyARakBU9FgK5bUBWdHEH8tHpDsZnRTZQGzdLVvQ3CzyYZiTAmSIODEwzFCAdJopuvbpeZDisJ4pKEcjD'.
-	    'ijWPJhU1MjCo9dkYfiUVjQNTDKY6CVbR6A0niUSZjRwFanR0l9i/TyvGnFdqwStq5axMfDbyBksld/FUumvxS/Bd9VyJvQDWiiMx'.
-	    'iOsCHgAAAABJRU5ErkJggg==' ; 
-
-	//==========================================================
-	// openfolder.png
-	//==========================================================
-	$this->iBuiltinIcon[10][0]= 2040 ;
-	$this->iBuiltinIcon[10][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAZiS0dEANAAtwClFht71AAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9AKDQ4RIXMeaLcAAAd1SURBVHicxZd7jBXVHcc/58zcvTNzH8vusqw8FsTsKiCUUh5WBZXG'.
-	    'GkOptmqwNWsWLKXFGlEpzZI0AWNKSy0WhDS22gJKtWlTsSRqzYIuLGB2WVvDIwQMZQMsy2OFfdzde+/OnHP6x907vJaFpjb9JZM5'.
-	    'c85Mfp/f9/s7Jxn4P4e41gtSyp78WGvtfdEAcqDFYUOH9HS0NhGk9tPb/ilSyp789UUB2AMuqhQy3Uzm7HGkE6W3dTNZMRI3EcWO'.
-	    'jf9ClLmWBT3dzW8jUsevWHCG3UpWl+IkHSxnbDh/Mcz12NevBcuWXTmf6TjnXvJ88gDmVB3pw3+nt3UzHa1NqMzBS2zqPLGFjtMN'.
-	    'ZNr3XdW+qyqwZcFk76HX/tHWfuQvyO4W7qhaHwL8efkMRlRUpPv7rqD0RrJ+FgAjLy1a20OIxZJEEuNCRfIApj+om4bGM3u2/sYU'.
-	    '9J41d8973f3Dhg1pISTV1dXXBRNJxPGFCzhou+DCQrScZOkktNaeDZjamgeZ9MgiYmVDccvHhjAzJw0NTh8/alyZMaVJicp0iTHj'.
-	    'JpgNv38tjWUhhGROdbUL9W5/MH5XCkjlcibi+KIop5LVHLKEu8A/f4r286doa9pGrGwYAAsfqbbH3b8MgO/Nqgy6WvdbbXHMkEFJ'.
-	    '4xUOMVEvaTZu3BgmvF4Yk4hz9rO/Ulr5cE9owae/rcGxohSOuiWkC2IjcIqKyPZm+OmCH7GhoZEF077EEzVVweAbJ+riEeO0Ey8y'.
-	    'UubqOHn0AOgMwvf59txnBrSp9dgxKmf/+kIP1NY8SFk0jh5ajmNHAWg5b2E5EexojGHjbiVRMoRMNs0LC+Yz46vTuH3enN7BI8fr'.
-	    'qFdo0BoVZNC9aVSQ4fNjBzEmQJiARxb+/AqYPMAVB5FsPU5v37g9OxgLhe14ZM5/ju052E6MNZvf5pmHHuLmmWOkEysxUtpGAtme'.
-	    'dtHTflJkezqQto3jFRnLssyf1jydxiiM7zNnye/c3ZsqLu2BN5fcMfzrv/hby1tPzmRUoihcTJ87CwQI2yLtDcIqsIjYUf51qBlf'.
-	    'OnScOSrdQUOMURkiXsLUzJnvbGhoBGDHH5cGyZLhOpYoNl5hqYnYEXOu5fDl9eYAHntx98n8hFHZcPHUuTSxSASAeK/CGIOxJJ0f'.
-	    'bOGNPU280dgkq6Y2yu8vfjCIlwwzr+/ZQ/PHO0gOLuO5qsftDQ2NbN+4OCgqG6WTxWVaq6zpF+DiSHWnicdylp3r6aZTWthIOrNp'.
-	    'ktHcvBu0sHX1Sm6ozB3B42d90zZA9bQp7PvgPSzXZfnqX/HS4DKKK2+x69Y/HURs26iBAN5ccsfw7774UcumF37C6f07KSt2OHji'.
-	    'DEUJD0tISjyPrrSPlAKvN0JP/U4O1NfjuhG2rvklN1SOpfXwftpbTqAyKRrff5fb7rs9V1R7m4wlz2ihA3HpmXflUWyOH2umpLiY'.
-	    'ui3v8M+6bWzfsRNbSgqkxaCkiy0simMuEWEhpcRzIhQWOIAh6tiAwS4owInFiTou5dOnMnl2NR++ujBwXEc9terD6M43nrj6LgAB'.
-	    'QnDPA9/irtkP8JRS7Hr/3T6YekDQ1pEiEXOwpUVJzCVlZZFS4mZtkpEo9ChAkDp/jtLMBACy6S4RiQghLyv5cgBRPnKUOX6smUGF'.
-	    'hSil0MYw9d77mPy1e5mnFE3batm3czvb6nYgEJztSFGU9LCRlMRdUjIH0+lnEMIwPNXD3NumoVJnrMCJaiciMUZfvQnz4QcBSvV1'.
-	    'vjE5GK358t0zmXDnDB79saLpo20c+aSRD+t25JTp7GZQwsEWFiVxl6hlUf/WO9z32CxmL1rOe6u/I2KuwGhzLQCB7/sYY9Bah3el'.
-	    'FKbvrrVm4vS7GH/7ncx+chEHGz7myCeNbPtoO0JI2jq78WIRLGkzsqs7V5SfFV5EovXACoiqqsfNpk2vo5VCWtYFBfoU0VoTBAFa'.
-	    'a7TRaK2p+MoURk+cxMzq+Rzbv49DDbuo27UTW9h0dedssPxuK+kIfN8XxhgDYPVXf2Fh4XKtFIl4AiklAlBKAYRKKK36wHIweTCt'.
-	    'NfHiEkaOn8j0+7/BmDFjaT30GbHywSxcuZkpFfFg+m1jjZ/NmnVvNfRvwd69e8WBA/uNFAIh4JVXXmHsmDHE4vEQQgjQ2lxQIm9N'.
-	    'nz35q3BEOZOHzaG2thaA4mRU+L29It+IV21CpbRQfeMFC35gRB/M2rVrubnyZmLxWJhECBEmz/eHyo/7lMlH3LFFujsthNFCCGOu'.
-	    '+WNyeUgpjSVzMKtWraKyshLPdcPEeYWCIEBdpIxSivr6eta8vI7d6+cGnhdV06pe1QP+F/QXWmuRL+jZZ58LlVmxYgUVFRV4rhtu'.
-	    '4TzMxXAA6XRaRAtsYUkx8I/JtSJQOlSwpmZpCLN8+fPcdNNoHMfB9/0QJgRoP295TlR7UVv8xxZcHMuWIZ9/Hn35vG3JEGZpzVJG'.
-	    'jx5N1IlitKahsZE1L69j69qHgx+urFX/lQL9JYdLlfnZihUhzOLFi8N3Ml1dthOxVH/f/8/CtqSJ2JaJ2JZ59J7RPsC/AViJsQS/'.
-	    'dBntAAAAAElFTkSuQmCC' ;
-
-	//==========================================================
-	// folder.png
-	//==========================================================
-        $this->iBuiltinIcon[11][0]= 1824 ;
-	$this->iBuiltinIcon[11][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALEAAACxABrSO9dQAAAAd0SU1FB9ECAQgFFyd9cRUAAAadSURBVHiczdhvbBP3Hcfx9/2xfefEOA5JoCNNnIT8AdtZmYBETJsI'.
-	    '6+jQOlQihT1AYgytqzZpD1atfyYqlT1h0lRpT7aRJ4NQpRvZGELVuo5Ua9jEJDIETQsNQyPBsUJMWGPnj//e+e72wNg4xElMR6ed'.
-	    'ZNln3933dZ/f93f6yfB/sgmrHdDV1WXlPg8NDZUDScD8LFFFEZZlWYZhWMFg0Orq6sq/gDJAfFy1iiZy9OjrVnj4JzQ1rMWqfxm/'.
-	    '309jYyNtbW0kEgnu3bvH4cOH88c/jqSKQl4/XGkd+eVtAN46up1LH92ktqYS++ZX8Pv9NDQ0sGnTJlKpFOFwmO7u7vy5IyMjeVRd'.
-	    'XV1+WEOh0IrY4pDnq6wXX/sTiCJaMkFZdRNqxefoe7VtCSqXVDqdZnZ2ltraWkzTpKqqijt3JpFlG7dvj7NzZ1f++qFQyA3EClHL'.
-	    'Ql743nFkhxPDtJAd5eTaYSVUfX09lZWVlJWVIUnSg7sVQMBCUcu4ceMGe/bsIRQK1QAzOcyykIM9P0KyudAyCWyqG8nhwqa4SkLt'.
-	    '3r0bVVVxu924XC40TUOWZUQxe97CwgIdHR2LMHIxSCaVInVvFElxE0vMY1Pd2NUKJMWNTXHlUfF//4vETJCelwbpFm3MjP2dt37x'.
-	    'AlN+PzU1NViWRSwW4+7du3g8HjweD4qi5EFAJzAExIpCANbooxhplfB0FJvTg6xWIqsVRVF6MopkU3FXPcnkJxGU0VEAdF2noqKC'.
-	    'W3/8DpnqLjzep2lubsblcjE8PExHR8fboVDID9xYFpLBDpJF0jDQIncQpWlkm31FlFLtp9PfyuW/vYQj1kPSuRW/38+lj27S2Q7v'.
-	    '/aWXUBVUffVNtm3blivVCEwsC5Eyc5iiApEpDEAXMqQdldhSiWVQHjJagud+8Fuexck/zv+K82dfoSbSCsDe75/km+4GVPd6+l5t'.
-	    '4zJHcqVUYN2yEEtZQDCSJCueRAYsPY49HsFIZVG6p25JUumFafT4DKJN4amtT7Nz38sk5+5A70HMtEYyMkFiZhxzjQ/poXrLQrRU'.
-	    'DFGEeFpAlkQkm4pRiCpIKodKzk0T/2QMh+piPjxKZPwiSkUtu/b9mNnJEWS7E8nhAmvpM60oJDkXJxqNozxRRUxPIesispBBlsXV'.
-	    'UaKEFo8gzoaJhz8s2lOmrpUG+WBhJ9/60g+Z+fDXTAXfxllRjl1VkO0OFATsYhYliiK21ZKKhhHnFveUqSdKgwAEOp7F2v51vvw8'.
-	    'XH7/N1wd/BlTweuUV65BdtgfoLTSkipsdD3tRi0VYpommUwGwzDwdT5HYEc3giAwcvH3jLz3BlPB67jWeZBEKYsSBWwpHZtNKo4q'.
-	    'aHTDsJeeiGEYWJaFZVmYpommaRiGQdPnv0bb1m8gSRL/vPIOV979aR4lmAJ2p4qCgCxksNuKJ6VNpx4NYhgGpmkuQhmGQTqdxjAM'.
-	    'qr2d7HtxEEEQuH1tkKvvvkF44tqDnrIcKJKAPf1g+LAUElq8dIiu60sApmnm93Pfzc7OYhgGrie+wFe++ztcLhcT1wf54PzPCU9c'.
-	    'w7XWjWS3IdsdOAUBWZAxrRJnTQ6SG5bce2FCpmkughmGQSqVYm5uDtnj44sH38TtdhP6+Dwf//V4ttHXrkGURZJaic8RgHQ6jWma'.
-	    'SJKUL5RLKNfIOczDKF3XSSaTRCIRhLJWntp3nGfWrSMxc5OLf3iNP4+68T9Ub9nF76lTpxgfHycajZJKpdA0LZ9GbjYV7hcDWZaF'.
-	    'pmnMz88Ti8UYunSLmu1HFi2aVkxkaGjINTY2ttDb24vX6+XQoUNs3ryZ8vJyIDu1BUFYkkxhgxeiWlpaOHPmDE1NTdTX1xe98eWG'.
-	    'JnF/9dQZCoXUYDA4AOD1ejlw4ACtra2Ul5fniwmCkEcUJiUIAoFAgL6+Pnw+H21tbfT39z8SxCS7hHsfWH9/8dL4MKqnp4eWlhac'.
-	    'TmcekEvMNE2am5s5ceIEgUCA9vZ2Tp48ic/nY3j4UsmQHCYOjJHtpeBKqL1799Lc3IzT6UTXdRobGxkYGKC9vZ3W1tZ8Ko86NJ8a'.
-	    'tXHjRo4dO8bp06fZsmULGzZsoL+/n0AggNfr5ezZs/8VpGTU5OSkc//+/acBfD4f1dXV7Nq1i4aGBs6dO4fP5+Pq1SuPBbIiyjTN'.
-	    'RUnV1dUNXLhwAa/Xy44dO4jFYgBEo9FFF1r134BPuYlk16LrAYXsAlmtq6sbKDwoFAp9m+ykuP5ZQVZF3f8tCdwCov8LyHIoAANI'.
-	    'AXf/A1TI0XCDh7OWAAAAAElFTkSuQmCC' ;
-
-	//==========================================================
-	// file_important.png
-	//==========================================================
-	$this->iBuiltinIcon[12][0]= 1785 ;
-	$this->iBuiltinIcon[12][1]=
-	    'iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAAABGdBTUEAALGPC/xhBQAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlz'.
-	    'AAALDwAACw8BkvkDpQAAAAd0SU1FB9ECDAcjDeD3lKsAAAZ2SURBVHicrZhPaFzHHcc/897s7lutJCsr2VHsOHWMk0MPbsBUrcnF'.
-	    'OFRdSo6FNhdB6SGHlpDmYtJCDyoxyKe6EBxKQkt7KKL0T6ABo0NbciqigtC6PhWKI2NFqqxdSd7V2/dmftPDvPd212t55dCBYfbN'.
-	    'zpvfZ77z+/1mdhUjytWrV93Hf/24eD5z9gwiMlDjOKbb7dLtdhER2u02u7u73Lp1CxEZBw4AeZwdNQqkMd9wbziFGINJUt6rRbz5'.
-	    '1ptUq1XK5TJBEAAUMHt7e+zu7gKwvLzMysoKwAng/uNg9CgQgFKlgg1DUJ67Vqtx6tQpZmdniaIIpRTOOZRSdDoddnZ2aLfbLC8v'.
-	    's7S0xJUrV7ZGwQSj1PhhfRodVdDlMrpc5vup5Z2fvMPdu3fZ29vDWjvwztjYGPV6nVqtRqVS4dKlSywtLQFsAdOH2XwsCEApg3jl'.
-	    'w98Rak2gvYjNZpNms0mSJDjnHgkDMDc3dySYQ0Ea8w139YUX0OUKulzyg7UmCEO+l1huvHuDra0t9vf3h1TJYSqVypFhHquIrlQI'.
-	    'S5qv/uIDAC7/4bcEQYAKvK+0Wq1DVQGIoog7d+4cCeaRII35hrt+8SsEOkRlUaEyR0UpFIrXHxyMVKVUKnHv3r0jwRwaNelBjBjL'.
-	    'Sz/7KYuLiwAsLi7y4z/9kY9e+TpkCuSqjI+Po7XuAWeKXLt2DWNMUZMkwRjDhQsXWFtbK6JpCCT3jfQgxomPtPX19YHWicM5x3c2'.
-	    '73Pj3Ru8/aO3mZqaolKpoHVvyuvXr/Ppnf/Q7uzz380NPtu4y/qnG+ztd1hfX2dtbQ3gIvDnRyqSxl1UoPjyz98D4PTp0wPtq39Z'.
-	    '4fdzLxegrVaLVqvF5OQkYRgWqpRKJZ77wvNsbW1RG5tgfKLOTH2G7Z1twqBQrgrMDvhInjfSOCY5iIv+hYWFgRZArEWsZWF941Bf'.
-	    'SdMUgMnJCWpjVU4cn+HUyePM1Gc4+fRUPkzBI5w1jbukcczLv/5l0XfmzJmBFuCba38r/CRXpT+CrDUoZ0jjB4RYonJAOYRobJKT'.
-	    'z5zgqfqxAbsFSH6mpHFM2qdGXh4VnoViD6mSJF2cTQeqDqBaKVHWmonJCWpZjhkC6anR5WsffTgwaHV1FaUUq6urA/2v3f5k4LnV'.
-	    'arG9tUn3oI2YBCcWHYAxMVYs1qZEZY2SFB2aYZDGfMN9d7uJiWPSeFiNo5Rclc3NTXZbO6RpF7EJVixYA9agwwDnUiqlEPdQ3imi'.
-	    'Jo27BGHIt/7x9yEjc3Nzh27Na7c/4TdffKl4bja3ae5MUIu0T/HOEIaOpJt4gwoSsVTK4SBIY77hFtY3ABBjBiZ90rKwvsH77/+K'.
-	    't37wOhO1iPpTk4SBw1mLsz6CnKQ4l3qV+kE+t9XHlNZOk+bUJLVIE1VCcIJWQmJ6qjj30NbcXLkZMt8YPig+Z3n1G5fZ39/j/vY2'.
-	    '9ckqZT2Ochbn0p4qNkU/dDfUADdXbh4HXgRO4zNdEU0XL1784PLly5w9e7Z4SazFOfGrEotDcOKrcoJPmrYIXf/Zop3QNd1skuGt'.
-	    'cUAb2MgAxvHZTgFUq1Wmp6eZnZ0F8JlTjDduDThBnDeECEoJtbGIp6enqEblzCcEZ1PECU4yVRiOGgd0gc+AB0CZvkv1sWPHOHfu'.
-	    'HOfPn8da41cpkkltEBEPJhYnBkTQJcdYVKGkgRxCfBsq5xXNgAa2Bn+hjTOgHEKBP8pzRUxykIH4ifLJRTJAl+UMBJzPHQ6bfe/f'.
-	    'cWIzPxlUpD+zugzIZtVk1d8znBAqRxgoQuVQgSJQ3h9C5QhDRYgjUILCAzlnEdsHYTKfMTEBcP7F54YUGVmc2GLlIn6ve6v0ahSt'.
-	    '8X25TzjJ+rIx1grKpQPWR4LkGVVsMgghvS0qjPdvm5OeceOTWA5Evo2mFzkjQfL7hZPUy5yvvF/uPFQL3+nbDmsLCEmT3sTmCTNr'.
-	    'rogT6yFsOix3ftw7OwQhkvSU6CuinhCk0+kAkFoBazEEICHaHHiPVmU0gnUp4EAc1mYrF0EBVpwPi34VrBkwPxKk3W5ju/e5/c+d'.
-	    'bGUHIAIuydTIE5zfc5Wr4lJcahHnHTP3CVGm78DrgY38N+DEibp7dmYKdAQmBh1hjEFjis+9CTWYGK21H6PxPyOI0DobYwzZF/z7'.
-	    '7jadTvJtYG0kCD7lfwl49ijgT1gc0AH+dZSJA/xB+Mz/GSIvFoj/B7H1mAd8CO/zAAAAAElFTkSuQmCC' ;
-
-	$this->iLen = count($this->iBuiltinIcon);
-    }
-}
-
-//===================================================
-// Global cache for builtin images
-//===================================================
-$_gPredefIcons = new PredefIcons();
-
-//===================================================
-// CLASS IconImage
-// Description: Holds properties for an icon image 
-//===================================================
-class IconImage {
-    var $iGDImage=null;
-    var $iWidth,$iHeight;
-    var $ixalign='left',$iyalign='center';
-    var $iScale=1.0;
-
-    function IconImage($aIcon,$aScale=1) {
-	GLOBAL $_gPredefIcons ; 
-	if( is_string($aIcon) ) {
-	    $this->iGDImage = Graph::LoadBkgImage('',$aIcon);
-	}
-	elseif( is_integer($aIcon) ) {
-	    // Builtin image
-	    $this->iGDImage = $_gPredefIcons->GetImg($aIcon);
-	}
-	else {
-	    JpGraphError::RaiseL(6011);
-//('Argument to IconImage must be string or integer');
-	}
-	$this->iScale = $aScale;
-	$this->iWidth = Image::GetWidth($this->iGDImage);
-	$this->iHeight = Image::GetHeight($this->iGDImage);
-    }
-
-    function GetWidth() {
-	return round($this->iScale*$this->iWidth);
-    }
-
-    function GetHeight() {
-	return round($this->iScale*$this->iHeight);
-    }
-
-    function SetAlign($aX='left',$aY='center') {
-
-	$this->ixalign = $aX;
-	$this->iyalign = $aY;
-
-    }
-
-    function Stroke(&$aImg,$x,$y) {
-
-	if( $this->ixalign == 'right' ) {
-	    $x -= $this->iWidth;
-	}
-	elseif( $this->ixalign == 'center' ) {
-	    $x -= round($this->iWidth/2*$this->iScale);
-	}
-
-	if( $this->iyalign == 'bottom' ) {
-	    $y -= $this->iHeight;
-	}
-	elseif( $this->iyalign == 'center' ) {
-	    $y -= round($this->iHeight/2*$this->iScale);
-	}
-
-	$aImg->Copy($this->iGDImage,
-		    $x,$y,0,0,
-		    round($this->iWidth*$this->iScale),round($this->iHeight*$this->iScale),
-		    $this->iWidth,$this->iHeight);
-    }
-}
-
-
-//===================================================
-// CLASS TextProperty
-// Description: Holds properties for a text
-//===================================================
-class TextProperty {
-    var $iFFamily=FF_FONT1,$iFStyle=FS_NORMAL,$iFSize=10;
-    var $iColor="black";
-    var $iShow=true;
-    var $iText="";
-    var $iHAlign="left",$iVAlign="bottom";
-    var $csimtarget='',$csimalt='';
-	
-//---------------
-// CONSTRUCTOR	
-    function TextProperty($aTxt='') {
-	$this->iText = $aTxt;
-    }		
-	
-//---------------
-// PUBLIC METHODS	
-    function Set($aTxt) {
-	$this->iText = $aTxt;
-    }
-
-    function SetCSIMTarget($aTarget,$aAltText='') {
-	if( is_string($aTarget) )
-	    $aTarget = array($aTarget);
-	$this->csimtarget=$aTarget;
-	if( is_string($aAltText) )
-	    $aAltText = array($aAltText);
-        $this->csimalt=$aAltText;
-    }
-    
-    function SetCSIMAlt($aAltText) {
-	if( is_string($aAltText) )
-	    $aAltText = array($aAltText);
-        $this->csimalt=$aAltText;
-    }
-
-    // Set text color
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-	
-    function HasTabs() {
-	if( is_string($this->iText) ) {
-	    return substr_count($this->iText,"\t") > 0;
-	}
-	elseif( is_array($this->iText) ) {
-	    return false;
-	}
-    }
-	
-    // Get number of tabs in string
-    function GetNbrTabs() {
-	if( is_string($this->iText) ) {
-	    return substr_count($this->iText,"\t") ;
-	}
-	else{
-	    return 0;
-	}
-    }
-	
-    // Set alignment
-    function Align($aHAlign,$aVAlign="bottom") {
-	$this->iHAlign=$aHAlign;
-	$this->iVAlign=$aVAlign;
-    }
-	
-    // Synonym
-    function SetAlign($aHAlign,$aVAlign="bottom") {
-	$this->iHAlign=$aHAlign;
-	$this->iVAlign=$aVAlign;
-    }
-	
-    // Specify font
-    function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) {
-	$this->iFFamily = $aFFamily;
-	$this->iFStyle	 = $aFStyle;
-	$this->iFSize	 = $aFSize;
-    }
-
-    function IsColumns() {
-	return is_array($this->iText) ; 
-    }
-	
-    // Get width of text. If text contains several columns separated by
-    // tabs then return both the total width as well as an array with a 
-    // width for each column.
-    function GetWidth(&$aImg,$aUseTabs=false,$aTabExtraMargin=1.1) {
-	$extra_margin=4;
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	if( is_string($this->iText) ) {
-	    if( strlen($this->iText) == 0 ) return 0;
-	    $tmp = split("\t",$this->iText);
-	    if( count($tmp) <= 1 || !$aUseTabs ) {
-		$w = $aImg->GetTextWidth($this->iText);
-		return $w + 2*$extra_margin;
-	    }
-	    else {
-		$tot=0;
-		$n = count($tmp);
-		for($i=0; $i < $n; ++$i) {
-		    $res[$i] = $aImg->GetTextWidth($tmp[$i]);
-		    $tot += $res[$i]*$aTabExtraMargin;
-		}
-		return array(round($tot),$res);
-	    }
-	}
-	elseif( is_object($this->iText) ) {
-	    // A single icon
-	    return $this->iText->GetWidth()+2*$extra_margin;
-	}
-	elseif( is_array($this->iText) ) {
-	    // Must be an array of texts. In this case we return the sum of the
-	    // length + a fixed margin of 4 pixels on each text string
-	    $n = count($this->iText);
-	    for( $i=0, $w=0; $i < $n; ++$i ) {
-		$tmp = $this->iText[$i];
-		if( is_string($tmp) ) {
-		    $w += $aImg->GetTextWidth($tmp)+$extra_margin;
-		}
-		else {
-		    if( is_object($tmp) === false ) {
-			JpGraphError::RaiseL(6012);
-		    }
-		    $w += $tmp->GetWidth()+$extra_margin;
-		}
-	    }
-	    return $w;
-	}
-	else {
-	    JpGraphError::RaiseL(6012);
-	}
-    }
-
-    // for the case where we have multiple columns this function returns the width of each
-    // column individually. If there is no columns just return the width of the single
-    // column as an array of one
-    function GetColWidth(&$aImg,$aMargin=0) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	if( is_array($this->iText) ) {
-	    $n = count($this->iText);
-	    for( $i=0, $w=array(); $i < $n; ++$i ) {
-		$tmp = $this->iText[$i];
-		if( is_string($tmp) ) {
-		    $w[$i] = $aImg->GetTextWidth($this->iText[$i])+$aMargin;
-		}
-		else {
-		    if( is_object($tmp) === false ) {
-			JpGraphError::RaiseL(6012);
-		    }
-		    $w[$i] = $tmp->GetWidth()+$aMargin;
-		}
-	    }
-	    return $w;	
-	}
-	else {
-	    return array($this->GetWidth($aImg));
-	}
-    }
-	
-    // Get total height of text
-    function GetHeight(&$aImg) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetFontHeight();
-    }
-	
-    // Unhide/hide the text	
-    function Show($aShow=true) {
-	$this->iShow=$aShow;
-    }
-	
-    // Stroke text at (x,y) coordinates. If the text contains tabs then the
-    // x parameter should be an array of positions to be used for each successive
-    // tab mark. If no array is supplied then the tabs will be ignored.
-    function Stroke(&$aImg,$aX,$aY) {
-	if( $this->iShow ) {
-	    $aImg->SetColor($this->iColor);
-	    $aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	    $aImg->SetTextAlign($this->iHAlign,$this->iVAlign);			
-	    if( $this->GetNbrTabs() <= 1 ) {
-		if( is_string($this->iText) ) {
-		    // Get rid of any "\t" characters and stroke string
-		    if( is_array($aX) ) $aX=$aX[0];
-		    if( is_array($aY) ) $aY=$aY[0];
-		    $aImg->StrokeText($aX,$aY,str_replace("\t"," ",$this->iText));
-		}
-		else {
-		    $n = count($this->iText);
-		    $ax = is_array($aX) ;
-		    $ay = is_array($aY) ;
-		    if( $ax && $ay ) {
-			// Nothing; both are already arrays
-		    }
-		    elseif( $ax ) {
-			$aY = array_fill(0,$n,$aY);
-		    }
-		    elseif( $ay ) {
-			$aX = array_fill(0,$n,$aX);
-		    }
-		    else {
-			$aX = array_fill(0,$n,$aX);
-			$aY = array_fill(0,$n,$aY);
-		    }
-		    $n = min($n, count($aX) ) ;
-		    $n = min($n, count($aY) ) ;
-		    for($i=0; $i < $n; ++$i ) {
-			$tmp = $this->iText[$i];
-			if( is_object($tmp) ) {
-			    $tmp->Stroke($aImg,$aX[$i],$aY[$i]);
-			}
-			else
-			    $aImg->StrokeText($aX[$i],$aY[$i],str_replace("\t"," ",$tmp));
-		    }
-		}
-	    }
-	    else {
-		$tmp = split("\t",$this->iText);
-		$n = min(count($tmp),count($aX));
-		for($i=0; $i < $n; ++$i) {
-		    $aImg->StrokeText($aX[$i],$aY,$tmp[$i]);
-		}	
-	    }
-	}
-    }
-}
-
-//===================================================
-// CLASS HeaderProperty
-// Description: Data encapsulating class to hold property 
-// for each type of the scale headers
-//===================================================
-class HeaderProperty {
-    var $iTitleVertMargin=3,$iFFamily=FF_FONT0,$iFStyle=FS_NORMAL,$iFSize=8;
-    var $iFrameColor="black",$iFrameWeight=1;
-    var $iShowLabels=true,$iShowGrid=true;
-    var $iBackgroundColor="white";
-    var $iWeekendBackgroundColor="lightgray",$iSundayTextColor="red"; // these are only used with day scale
-    var $iTextColor="black";
-    var $iLabelFormStr="%d";
-    var $grid,$iStyle=0;
-    var $iIntervall = 1;
-
-//---------------
-// CONSTRUCTOR	
-    function HeaderProperty() {
-	$this->grid = new LineProperty();
-    }
-
-//---------------
-// PUBLIC METHODS		
-    function Show($aShow=true) {
-	$this->iShowLabels = $aShow;
-    }
-
-    function SetIntervall($aInt) {
-	$this->iIntervall = $aInt;
-    }
-
-    function GetIntervall() {
-	return $this->iIntervall ;
-    }
-	
-    function SetFont($aFFamily,$aFStyle=FS_NORMAL,$aFSize=10) {
-	$this->iFFamily = $aFFamily;
-	$this->iFStyle	 = $aFStyle;
-	$this->iFSize	 = $aFSize;
-    }
-
-    function SetFontColor($aColor) {
-	$this->iTextColor = $aColor;
-    }
-	
-    function GetFontHeight(&$aImg) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetFontHeight();
-    }
-
-    function GetFontWidth(&$aImg) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetFontWidth();
-    }
-
-    function GetStrWidth(&$aImg,$aStr) {
-	$aImg->SetFont($this->iFFamily,$this->iFStyle,$this->iFSize);
-	return $aImg->GetTextWidth($aStr);
-    }
-	
-    function SetStyle($aStyle) {
-	$this->iStyle = $aStyle;
-    }
-	
-    function SetBackgroundColor($aColor) {
-	$this->iBackgroundColor=$aColor;
-    }
-
-    function SetFrameWeight($aWeight) {
-	$this->iFrameWeight=$aWeight;
-    }
-
-    function SetFrameColor($aColor) {
-	$this->iFrameColor=$aColor;
-    }
-	
-    // Only used by day scale
-    function SetWeekendColor($aColor) {
-	$this->iWeekendBackgroundColor=$aColor;
-    }
-	
-    // Only used by day scale
-    function SetSundayFontColor($aColor) {
-	$this->iSundayTextColor=$aColor;
-    }
-	
-    function SetTitleVertMargin($aMargin) {
-	$this->iTitleVertMargin=$aMargin;
-    }
-	
-    function SetLabelFormatString($aStr) {
-	$this->iLabelFormStr=$aStr;
-    }
-
-    function SetFormatString($aStr) {
-	$this->SetLabelFormatString($aStr);
-    }
-
-
-}
-
-//===================================================
-// CLASS GanttScale
-// Description: Responsible for calculating and showing
-// the scale in a gantt chart. This includes providing methods for
-// converting dates to position in the chart as well as stroking the
-// date headers (days, week, etc).
-//===================================================
-class GanttScale {
-    var $minute,$hour,$day,$week,$month,$year;
-    var $divider,$dividerh,$tableTitle;
-    var $iStartDate=-1,$iEndDate=-1;
-    // Number of gantt bar position (n.b not necessariliy the same as the number of bars)
-    // we could have on bar in position 1, and one bar in position 5 then there are two
-    // bars but the number of bar positions is 5
-    var $iVertLines=-1;	
-    // The width of the labels (defaults to the widest of all labels)
-    var $iLabelWidth;	
-    // Out image to stroke the scale to
-    var $iImg;	
-    var $iTableHeaderBackgroundColor="white",$iTableHeaderFrameColor="black";
-    var $iTableHeaderFrameWeight=1;
-    var $iAvailableHeight=-1,$iVertSpacing=-1,$iVertHeaderSize=-1;
-    var $iDateLocale;
-    var $iVertLayout=GANTT_EVEN;
-    var $iTopPlotMargin=10,$iBottomPlotMargin=15;
-    var $iUsePlotWeekendBackground=true;
-    var $iWeekStart = 1;	// Default to have weekends start on Monday
-    var $actinfo;
-	
-//---------------
-// CONSTRUCTOR	
-    function GanttScale(&$aImg) {
-	$this->iImg = &$aImg;		
-	$this->iDateLocale = new DateLocale();
-
-	$this->minute = new HeaderProperty();
-	$this->minute->SetIntervall(15);
-	$this->minute->SetLabelFormatString('i');
-	$this->minute->SetFont(FF_FONT0);
-	$this->minute->grid->SetColor("gray");
-
-	$this->hour = new HeaderProperty();
-	$this->hour->SetFont(FF_FONT0);
-	$this->hour->SetIntervall(6);
-	$this->hour->SetStyle(HOURSTYLE_HM24);
-	$this->hour->SetLabelFormatString('H:i');
-	$this->hour->grid->SetColor("gray");
-
-	$this->day = new HeaderProperty();
-	$this->day->grid->SetColor("gray");
-	$this->day->SetLabelFormatString('l');
-
-	$this->week = new HeaderProperty();
-	$this->week->SetLabelFormatString("w%d");
-	$this->week->SetFont(FF_FONT1);
-
-	$this->month = new HeaderProperty();
-	$this->month->SetFont(FF_FONT1,FS_BOLD);
-
-	$this->year = new HeaderProperty();
-	$this->year->SetFont(FF_FONT1,FS_BOLD);		
-		
-	$this->divider=new LineProperty();
-	$this->dividerh=new LineProperty();		
-	$this->dividerh->SetWeight(2);
-	$this->divider->SetWeight(6);
-	$this->divider->SetColor('gray');
-	$this->divider->SetStyle('fancy');
-
-	$this->tableTitle=new TextProperty();
-	$this->tableTitle->Show(false);
-	$this->actinfo = new GanttActivityInfo();
-    }
-	
-//---------------
-// PUBLIC METHODS	
-    // Specify what headers should be visible
-    function ShowHeaders($aFlg) {
-	$this->day->Show($aFlg & GANTT_HDAY);
-	$this->week->Show($aFlg & GANTT_HWEEK);
-	$this->month->Show($aFlg & GANTT_HMONTH);
-	$this->year->Show($aFlg & GANTT_HYEAR);
-	$this->hour->Show($aFlg & GANTT_HHOUR);
-	$this->minute->Show($aFlg & GANTT_HMIN);
-
-	// Make some default settings of gridlines whihc makes sense
-	if( $aFlg & GANTT_HWEEK ) {
-	    $this->month->grid->Show(false);
-	    $this->year->grid->Show(false);
-	}
-	if( $aFlg & GANTT_HHOUR ) {
-	    $this->day->grid->SetColor("black");
-	}
-    }
-	
-    // Should the weekend background stretch all the way down in the plotarea
-    function UseWeekendBackground($aShow) {
-	$this->iUsePlotWeekendBackground = $aShow;
-    }
-	
-    // Have a range been specified?
-    function IsRangeSet() {
-	return $this->iStartDate!=-1 && $this->iEndDate!=-1;
-    }
-	
-    // Should the layout be from top or even?
-    function SetVertLayout($aLayout) {
-	$this->iVertLayout = $aLayout;
-    }
-	
-    // Which locale should be used?
-    function SetDateLocale($aLocale) {
-	$this->iDateLocale->Set($aLocale);
-    }
-	
-    // Number of days we are showing
-    function GetNumberOfDays() {
-	return round(($this->iEndDate-$this->iStartDate)/SECPERDAY);
-    }
-	
-    // The width of the actual plot area
-    function GetPlotWidth() {
-	$img=$this->iImg;
-	return $img->width - $img->left_margin - $img->right_margin;
-    }
-
-    // Specify the width of the titles(labels) for the activities
-    // (This is by default set to the minimum width enought for the
-    // widest title)
-    function SetLabelWidth($aLabelWidth) {
-	$this->iLabelWidth=$aLabelWidth;
-    }
-
-	// Which day should the week start?
-	// 0==Sun, 1==Monday, 2==Tuesday etc
-    function SetWeekStart($aStartDay) {
-	$this->iWeekStart = $aStartDay % 7;
-	
-	//Recalculate the startday since this will change the week start
-	$this->SetRange($this->iStartDate,$this->iEndDate);
-    }
-
-    // Do we show min scale?
-    function IsDisplayMinute() {
-	return $this->minute->iShowLabels;
-    }
-
-    // Do we show day scale?
-    function IsDisplayHour() {
-	return $this->hour->iShowLabels;
-    }
-
-	
-    // Do we show day scale?
-    function IsDisplayDay() {
-	return $this->day->iShowLabels;
-    }
-	
-    // Do we show week scale?
-    function IsDisplayWeek() {
-	return $this->week->iShowLabels;
-    }
-	
-    // Do we show month scale?
-    function IsDisplayMonth() {
-	return $this->month->iShowLabels;
-    }
-	
-    // Do we show year scale?
-    function IsDisplayYear() {
-	return $this->year->iShowLabels;
-    }
-
-    // Specify spacing (in percent of bar height) between activity bars
-    function SetVertSpacing($aSpacing) {
-	$this->iVertSpacing = $aSpacing;
-    }
-
-    // Specify scale min and max date either as timestamp or as date strings
-    // Always round to the nearest week boundary
-    function SetRange($aMin,$aMax) {
-	$this->iStartDate = $this->NormalizeDate($aMin);
-	$this->iEndDate = $this->NormalizeDate($aMax);	
-    }
-
-
-    // Adjust the start and end date so they fit to beginning/ending
-    // of the week taking the specified week start day into account.
-    function AdjustStartEndDay() {
-
-	if( !($this->IsDisplayYear() ||$this->IsDisplayMonth() || $this->IsDisplayWeek()) ) {
-	    // Don't adjust
-	    return;
-	}
-
-	// Get day in week for start and ending date (Sun==0)
-	$ds=strftime("%w",$this->iStartDate);
-	$de=strftime("%w",$this->iEndDate);	
-	
-	// We want to start on iWeekStart day. But first we subtract a week
-	// if the startdate is "behind" the day the week start at. 
-	// This way we ensure that the given start date is always included 
-	// in the range. If we don't do this the nearest correct weekday in the week 
-	// to start at might be later than the start date.
-	if( $ds < $this->iWeekStart )
-	    $d = strtotime('-7 day',$this->iStartDate);
-	else
-	    $d = $this->iStartDate;
-	$adjdate = strtotime(($this->iWeekStart-$ds).' day',$d /*$this->iStartDate*/ );
-	$this->iStartDate = $adjdate;
-	
-	// We want to end on the last day of the week
-	$preferredEndDay = ($this->iWeekStart+6)%7;
-	if( $preferredEndDay != $de ) { 
-	    // Solve equivalence eq:    $de + x ~ $preferredDay (mod 7)
-	    $adj = (7+($preferredEndDay - $de)) % 7;
-	    $adjdate = strtotime("+$adj day",$this->iEndDate);
-	    $this->iEndDate = $adjdate;	
-	}	
-    }
-
-    // Specify background for the table title area (upper left corner of the table)	
-    function SetTableTitleBackground($aColor) {
-	$this->iTableHeaderBackgroundColor = $aColor;
-    }
-
-///////////////////////////////////////
-// PRIVATE Methods
-	
-    // Determine the height of all the scale headers combined
-    function GetHeaderHeight() {
-	$img=$this->iImg;
-	$height=1;
-	if( $this->minute->iShowLabels ) {
-	    $height += $this->minute->GetFontHeight($img);
-	    $height += $this->minute->iTitleVertMargin;
-	}
-	if( $this->hour->iShowLabels ) {
-	    $height += $this->hour->GetFontHeight($img);
-	    $height += $this->hour->iTitleVertMargin;
-	}
-	if( $this->day->iShowLabels ) {
-	    $height += $this->day->GetFontHeight($img);
-	    $height += $this->day->iTitleVertMargin;
-	}
-	if( $this->week->iShowLabels ) {
-	    $height += $this->week->GetFontHeight($img);
-	    $height += $this->week->iTitleVertMargin;
-	}
-	if( $this->month->iShowLabels ) {
-	    $height += $this->month->GetFontHeight($img);
-	    $height += $this->month->iTitleVertMargin;
-	}
-	if( $this->year->iShowLabels ) {
-	    $height += $this->year->GetFontHeight($img);
-	    $height += $this->year->iTitleVertMargin;
-	}
-	return $height;
-    }
-	
-    // Get width (in pixels) for a single day
-    function GetDayWidth() {
-	return ($this->GetPlotWidth()-$this->iLabelWidth+1)/$this->GetNumberOfDays();	
-    }
-
-    // Get width (in pixels) for a single hour
-    function GetHourWidth() {
-	return $this->GetDayWidth() / 24 ;
-    }
-
-    function GetMinuteWidth() {
-	return $this->GetHourWidth() / 60 ;
-    }
-
-    // Nuber of days in a year
-    function GetNumDaysInYear($aYear) {
-	if( $this->IsLeap($aYear) )
-	    return 366;
-	else
-	    return 365;
-    }
-	
-    // Get week number 
-    function GetWeekNbr($aDate,$aSunStart=true) {
-	// We can't use the internal strftime() since it gets the weeknumber
-	// wrong since it doesn't follow ISO on all systems since this is
-	// system linrary dependent.
-	// Even worse is that this works differently if we are on a Windows
-	// or UNIX box (it even differs between UNIX boxes how strftime()
-	// is natively implemented)
-	//
-	// Credit to Nicolas Hoizey <nhoizey@phpheaven.net> for this elegant
-	// version of Week Nbr calculation. 
-
-	$day = $this->NormalizeDate($aDate) ;
-	if( $aSunStart )
-	    $day += 60*60*24;
-		
-	/*-------------------------------------------------------------------------
-	  According to ISO-8601 :
-	  "Week 01 of a year is per definition the first week that has the Thursday in this year,
-	  which is equivalent to the week that contains the fourth day of January.
-	  In other words, the first week of a new year is the week that has the majority of its
-	  days in the new year."
-		  
-	  Be carefull, with PHP, -3 % 7 = -3, instead of 4 !!!
-		  
-	  day of year             = date("z", $day) + 1
-	  offset to thursday      = 3 - (date("w", $day) + 6) % 7
-	  first thursday of year  = 1 + (11 - date("w", mktime(0, 0, 0, 1, 1, date("Y", $day)))) % 7
-	  week number             = (thursday's day of year - first thursday's day of year) / 7 + 1
-	  ---------------------------------------------------------------------------*/
-		 
-	$thursday = $day + 60 * 60 * 24 * (3 - (date("w", $day) + 6) % 7);              // take week's thursday
-	$week = 1 + (date("z", $thursday) - (11 - date("w", mktime(0, 0, 0, 1, 1, date("Y", $thursday)))) % 7) / 7;
-		  
-	return $week;
-    }
-	
-    // Is year a leap year?
-    function IsLeap($aYear) {
-	// Is the year a leap year?
-	//$year = 0+date("Y",$aDate);
-	if( $aYear % 4 == 0)
-	    if( !($aYear % 100 == 0) || ($aYear % 400 == 0) )
-		return true;
-	return false;
-    }
-
-    // Get current year
-    function GetYear($aDate) {
-	return 0+Date("Y",$aDate);
-    }
-	
-    // Return number of days in a year
-    function GetNumDaysInMonth($aMonth,$aYear) {
-	$days=array(31,28,31,30,31,30,31,31,30,31,30,31);
-	$daysl=array(31,29,31,30,31,30,31,31,30,31,30,31);
-	if( $this->IsLeap($aYear))
-	    return $daysl[$aMonth];
-	else
-	    return $days[$aMonth];
-    }
-	
-    // Get day in month
-    function GetMonthDayNbr($aDate) {
-	return 0+strftime("%d",$aDate);
-    }
-
-    // Get day in year
-    function GetYearDayNbr($aDate) {
-	return 0+strftime("%j",$aDate);
-    }
-	
-    // Get month number
-    function GetMonthNbr($aDate) {
-	return 0+strftime("%m",$aDate);
-    }
-	
-    // Translate a date to screen coordinates	(horizontal scale)
-    function TranslateDate($aDate) {
-	//
-	// In order to handle the problem with Daylight savings time
-	// the scale written with equal number of seconds per day beginning
-	// with the start date. This means that we "cement" the state of
-	// DST as it is in the start date. If later the scale includes the
-	// switchover date (depends on the locale) we need to adjust back
-	// if the date we try to translate has a different DST status since
-	// we would otherwise be off by one hour.
-	$aDate = $this->NormalizeDate($aDate);
-	$tmp = localtime($aDate);
-	$cloc = $tmp[8];
-	$tmp = localtime($this->iStartDate);
-	$sloc = $tmp[8];
-	$offset = 0;
-	if( $sloc != $cloc) {
-	    if( $sloc ) 
-		$offset = 3600;
-	    else
-		$offset = -3600;
-	}
-	$img=$this->iImg;		
-	return ($aDate-$this->iStartDate-$offset)/SECPERDAY*$this->GetDayWidth()+$img->left_margin+$this->iLabelWidth;;
-    }
-
-    // Get screen coordinatesz for the vertical position for a bar		
-    function TranslateVertPos($aPos) {
-	$img=$this->iImg;
-	$ph=$this->iAvailableHeight;
-	if( $aPos > $this->iVertLines ) 
-	    JpGraphError::RaiseL(6015,$aPos);
-// 'Illegal vertical position %d'
-	if( $this->iVertLayout == GANTT_EVEN ) {
-	    // Position the top bar at 1 vert spacing from the scale
-	    return round($img->top_margin + $this->iVertHeaderSize +  ($aPos+1)*$this->iVertSpacing);
-	}
-	else {
-	    // position the top bar at 1/2 a vert spacing from the scale
-	    return round($img->top_margin + $this->iVertHeaderSize  + $this->iTopPlotMargin + ($aPos+1)*$this->iVertSpacing);		
-	}
-    }
-	
-    // What is the vertical spacing?
-    function GetVertSpacing() {
-	return $this->iVertSpacing;
-    }
-					
-    // Convert a date to timestamp
-    function NormalizeDate($aDate) {
-	if( $aDate === false ) return false; 
-	if( is_string($aDate) ) {
-	    $t = strtotime($aDate);
-	    if( $t === FALSE || $t === -1 ) {	    
-		JpGraphError::RaiseL(6016,$aDate);
-//("Date string ($aDate) specified for Gantt activity can not be interpretated. Please make sure it is a valid time string, e.g. 2005-04-23 13:30");
-	    }
-	    return $t;
-	}
-	elseif( is_int($aDate) || is_float($aDate) )
-	    return $aDate;
-	else
-	    JpGraphError::RaiseL(6017,$aDate);
-//Unknown date format in GanttScale ($aDate).");
-    }
-
-    
-    // Convert a time string to minutes
-
-    function TimeToMinutes($aTimeString) {
-	// Split in hours and minutes
-	$pos=strpos($aTimeString,':');
-	$minint=60;
-	if( $pos === false ) {
-	    $hourint = $aTimeString;
-	    $minint = 0;
-	}
-	else {
-	    $hourint = floor(substr($aTimeString,0,$pos));
-	    $minint = floor(substr($aTimeString,$pos+1));
-	}
-	$minint += 60 * $hourint;
-	return $minint;
-    }
-
-    // Stroke the day scale (including gridlines)			
-    function StrokeMinutes($aYCoord,$getHeight=false) {
-	$img=$this->iImg;	
-	$xt=$img->left_margin+$this->iLabelWidth;
-	$yt=$aYCoord+$img->top_margin;		
-	if( $this->minute->iShowLabels ) {
-	    $img->SetFont($this->minute->iFFamily,$this->minute->iFStyle,$this->minute->iFSize);
-	    $yb = $yt + $img->GetFontHeight() + 
-		  $this->minute->iTitleVertMargin + $this->minute->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;
-	    }
-	    $xb = $img->width-$img->right_margin+1;
-	    $img->SetColor($this->minute->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $x = $xt;   
-	    $img->SetTextAlign("center");
-	    $day = date('w',$this->iStartDate);
-	    $minint = $this->minute->GetIntervall() ;
-	    
-	    if( 60 % $minint !== 0 ) { 
-                JpGraphError::RaiseL(6018,$minint);
-//'Intervall for minutes must divide the hour evenly, e.g. 1,5,10,12,15,20,30 etc You have specified an intervall of '.$minint.' minutes.');
-            } 
-
-
-	    $n = 60 / $minint;
-	    $datestamp = $this->iStartDate;
-	    $width = $this->GetHourWidth() / $n ;
-	    if( $width < 8 ) {
-		// TO small width to draw minute scale
-		JpGraphError::RaiseL(6019,$width);
-//('The available width ('.$width.') for minutes are to small for this scale to be displayed. Please use auto-sizing or increase the width of the graph.');
-	    }
-
-	    $nh = ceil(24*60 / $this->TimeToMinutes($this->hour->GetIntervall()) );
-	    $nd = $this->GetNumberOfDays();
-	    // Convert to intervall to seconds
-	    $minint *= 60;
-	    for($j=0; $j < $nd; ++$j, $day += 1, $day %= 7) {
-		for( $k=0; $k < $nh; ++$k ) {
-		    for($i=0; $i < $n ;++$i, $x+=$width, $datestamp += $minint ) {   
-			if( $day==6 || $day==0 ) {
-			
-			    $img->PushColor($this->day->iWeekendBackgroundColor);
-			    if( $this->iUsePlotWeekendBackground )
-				$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$img->height-$img->bottom_margin);						
-			    else
-				$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$yb-$this->day->iFrameWeight);
-			    $img->PopColor();
-
-			}
-
-			if( $day==0 ) 
-			    $img->SetColor($this->day->iSundayTextColor);
-			else
-			    $img->SetColor($this->day->iTextColor);
-
-			switch( $this->minute->iStyle ) {
-			    case MINUTESTYLE_CUSTOM:
-				$txt = date($this->minute->iLabelFormStr,$datestamp);
-				break;
-			    case MINUTESTYLE_MM:
-			    default:
-				// 15
-				$txt = date('i',$datestamp);
-				break;
-			}
-			$img->StrokeText(round($x+$width/2),round($yb-$this->minute->iTitleVertMargin),$txt);
-
-			// FIXME: The rounding problem needs to be solved properly ...
-			//
-			// Fix a rounding problem the wrong way ..
-			// If we also have hour scale then don't draw the firsta or last
-			// gridline since that will be overwritten by the hour scale gridline if such exists.
-			// However, due to the propagation of rounding of the 'x+=width' term in the loop
-			// this might sometimes be one pixel of so we fix this by not drawing it.
-			// The proper way to fix it would be to re-calculate the scale for each step and
-			// not using the additive term.
-			if( !(($i == $n || $i==0) && $this->hour->iShowLabels && $this->hour->grid->iShow) ) {
-			    $img->SetColor($this->minute->grid->iColor);
-			    $img->SetLineWeight($this->minute->grid->iWeight);
-			    $img->Line($x,$yt,$x,$yb);
-			    $this->minute->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-			}
-		    }		
-		}	
-	    }
-	    $img->SetColor($this->minute->iFrameColor);
-	    $img->SetLineWeight($this->minute->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb - $img->top_margin;
-	}
-	return $aYCoord;
-    }
-
-    // Stroke the day scale (including gridlines)			
-    function StrokeHours($aYCoord,$getHeight=false) {
-	$img=$this->iImg;	
-	$xt=$img->left_margin+$this->iLabelWidth;
-	$yt=$aYCoord+$img->top_margin;		
-	if( $this->hour->iShowLabels ) {
-	    $img->SetFont($this->hour->iFFamily,$this->hour->iFStyle,$this->hour->iFSize);
-	    $yb = $yt + $img->GetFontHeight() + 
-		  $this->hour->iTitleVertMargin + $this->hour->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;
-	    }
-	    $xb = $img->width-$img->right_margin+1;
-	    $img->SetColor($this->hour->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $x = $xt;   
-	    $img->SetTextAlign("center");
-	    $tmp = $this->hour->GetIntervall() ;
-	    $minint = $this->TimeToMinutes($tmp);
-	    if( 1440 % $minint !== 0 ) { 
-                JpGraphError::RaiseL(6020,$tmp);
-//('Intervall for hours must divide the day evenly, e.g. 0:30, 1:00, 1:30, 4:00 etc. You have specified an intervall of '.$tmp);
-            } 
-
-	    $n = ceil(24*60 / $minint );
-	    $datestamp = $this->iStartDate;
-	    $day = date('w',$this->iStartDate);
-	    $doback = !$this->minute->iShowLabels;
-	    $width = $this->GetDayWidth() / $n ;
-	    for($j=0; $j < $this->GetNumberOfDays(); ++$j, $day += 1,$day %= 7) {
-		for($i=0; $i < $n ;++$i, $x+=$width) {   
-		    if( $day==6 || $day==0 ) {
-			
-			$img->PushColor($this->day->iWeekendBackgroundColor);
-			if( $this->iUsePlotWeekendBackground && $doback )
-			    $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$img->height-$img->bottom_margin);						
-			else
-			    $img->FilledRectangle($x,$yt+$this->day->iFrameWeight,$x+$width,$yb-$this->day->iFrameWeight);
-			$img->PopColor();
-
-		    }
-
-		    if( $day==0 ) 
-			$img->SetColor($this->day->iSundayTextColor);
-		    else
-			$img->SetColor($this->day->iTextColor);
-
-		    switch( $this->hour->iStyle ) {
-			case HOURSTYLE_HMAMPM:
-			    // 1:35pm
-			    $txt = date('g:ia',$datestamp);
-			    break;
-			case HOURSTYLE_H24:
-			    // 13
-			    $txt = date('H',$datestamp);
-			    break;
-			case HOURSTYLE_HAMPM:
-			    $txt = date('ga',$datestamp);
-			    break;
-			case HOURSTYLE_CUSTOM:
-			    $txt = date($this->hour->iLabelFormStr,$datestamp);
-			    break;
-			case HOURSTYLE_HM24:
-			default:
-			    $txt = date('H:i',$datestamp);
-			    break;
-		    }
-		    $img->StrokeText(round($x+$width/2),round($yb-$this->hour->iTitleVertMargin),$txt);
-		    $img->SetColor($this->hour->grid->iColor);
-		    $img->SetLineWeight($this->hour->grid->iWeight);
-		    $img->Line($x,$yt,$x,$yb);
-		    $this->hour->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		    //$datestamp += $minint*60
-		    $datestamp = mktime(date('H',$datestamp),date('i',$datestamp)+$minint,0,
-					date("m",$datestamp),date("d",$datestamp)+1,date("Y",$datestamp));
-		    
-		}			
-	    }
-	    $img->SetColor($this->hour->iFrameColor);
-	    $img->SetLineWeight($this->hour->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb - $img->top_margin;
-	}
-	return $aYCoord;
-    }
-
-
-    // Stroke the day scale (including gridlines)			
-    function StrokeDays($aYCoord,$getHeight=false) {
-	$img=$this->iImg;	
-	$daywidth=$this->GetDayWidth();
-	$xt=$img->left_margin+$this->iLabelWidth;
-	$yt=$aYCoord+$img->top_margin;		
-	if( $this->day->iShowLabels ) {
-	    $img->SetFont($this->day->iFFamily,$this->day->iFStyle,$this->day->iFSize);
-	    $yb=$yt + $img->GetFontHeight() + $this->day->iTitleVertMargin + $this->day->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;
-	    }
-	    $xb=$img->width-$img->right_margin+1;
-	    $img->SetColor($this->day->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $x = $xt;   
-	    $img->SetTextAlign("center");
-	    $day = date('w',$this->iStartDate);
-	    $datestamp = $this->iStartDate;
-	    
-	    $doback = !($this->hour->iShowLabels || $this->minute->iShowLabels);
-
-	    setlocale(LC_TIME,$this->iDateLocale->iLocale);
-	    
-	    for($i=0; $i < $this->GetNumberOfDays(); ++$i, $x+=$daywidth, $day += 1,$day %= 7) {
-		if( $day==6 || $day==0 ) {
-		    $img->SetColor($this->day->iWeekendBackgroundColor);
-		    if( $this->iUsePlotWeekendBackground && $doback)
-			$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,
-					      $x+$daywidth,$img->height-$img->bottom_margin);	
-		    else
-			$img->FilledRectangle($x,$yt+$this->day->iFrameWeight,
-					      $x+$daywidth,$yb-$this->day->iFrameWeight);
-		}
-
-		$mn = strftime('%m',$datestamp);
-		if( $mn[0]=='0' ) 
-		    $mn = $mn[1];
-
-		switch( $this->day->iStyle ) {
-		    case DAYSTYLE_LONG:
-			// "Monday"
-			$txt = strftime('%A',$datestamp);
-			break;
-		    case DAYSTYLE_SHORT:
-			// "Mon"
-			$txt = strftime('%a',$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDAYDATE1:
-			// "Mon 23/6"
-			$txt = strftime('%a %d/'.$mn,$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDAYDATE2:
-			// "Mon 23 Jun"
-			$txt = strftime('%a %d %b',$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDAYDATE3:
-			// "Mon 23 Jun 2003"
-			$txt = strftime('%a %d %b %Y',$datestamp);
-			break;
-		    case DAYSTYLE_LONGDAYDATE1:
-			// "Monday 23 Jun"
-			$txt = strftime('%A %d %b',$datestamp);
-			break;
-		    case DAYSTYLE_LONGDAYDATE2:
-			// "Monday 23 Jun 2003"
-			$txt = strftime('%A %d %b %Y',$datestamp);
-			break;
-		    case DAYSTYLE_SHORTDATE1:
-			// "23/6"
-			$txt = strftime('%d/'.$mn,$datestamp);
-			break;			
-		    case DAYSTYLE_SHORTDATE2:
-			// "23 Jun"
-			$txt = strftime('%d %b',$datestamp);
-			break;			
-		    case DAYSTYLE_SHORTDATE3:
-			// "Mon 23"
-			$txt = strftime('%a %d',$datestamp);
-			break;	
-		    case DAYSTYLE_SHORTDATE4:
-			// "23"
-			$txt = strftime('%d',$datestamp);
-			break;	
-		    case DAYSTYLE_CUSTOM:
-			// Custom format
-			$txt = strftime($this->day->iLabelFormStr,$datestamp);
-			break;	
-		    case DAYSTYLE_ONELETTER:
-		    default:
-			// "M"
-			$txt = strftime('%A',$datestamp);
-			$txt = strtoupper($txt[0]);
-			break;
-		}
-
-		if( $day==0 ) 
-		    $img->SetColor($this->day->iSundayTextColor);
-		else
-		    $img->SetColor($this->day->iTextColor);
-		$img->StrokeText(round($x+$daywidth/2+1),
-				 round($yb-$this->day->iTitleVertMargin),$txt);
-		$img->SetColor($this->day->grid->iColor);
-		$img->SetLineWeight($this->day->grid->iWeight);
-		$img->Line($x,$yt,$x,$yb);
-		$this->day->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		$datestamp = mktime(0,0,0,date("m",$datestamp),date("d",$datestamp)+1,date("Y",$datestamp));
-		//$datestamp += SECPERDAY;
-		
-	    }			
-	    $img->SetColor($this->day->iFrameColor);
-	    $img->SetLineWeight($this->day->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb - $img->top_margin;
-	}
-	return $aYCoord;
-    }
-	
-    // Stroke week header and grid
-    function StrokeWeeks($aYCoord,$getHeight=false) {
-	if( $this->week->iShowLabels ) {
-	    $img=$this->iImg;	
-	    $yt=$aYCoord+$img->top_margin;		
-	    $img->SetFont($this->week->iFFamily,$this->week->iFStyle,$this->week->iFSize);
-	    $yb=$yt + $img->GetFontHeight() + $this->week->iTitleVertMargin + $this->week->iFrameWeight;
-
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;  
-	    }
-
-	    $xt=$img->left_margin+$this->iLabelWidth;
-	    $weekwidth=$this->GetDayWidth()*7;
-	    $wdays=$this->iDateLocale->GetDayAbb();	
-	    $xb=$img->width-$img->right_margin+1;
-	    $week = $this->iStartDate;
-	    $weeknbr=$this->GetWeekNbr($week);
-	    $img->SetColor($this->week->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-	    $img->SetColor($this->week->grid->iColor);
-	    $x = $xt;
-	    if( $this->week->iStyle==WEEKSTYLE_WNBR ) {
-		$img->SetTextAlign("center");
-		$txtOffset = $weekwidth/2+1;
-	    }
-	    elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY  || 
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAY2 ||
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ||
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		$img->SetTextAlign("left");
-		$txtOffset = 3;
-	    }
-	    else
-		JpGraphError::RaiseL(6021);
-//("Unknown formatting style for week.");
-				
-	    for($i=0; $i<$this->GetNumberOfDays()/7; ++$i, $x+=$weekwidth) {
-		$img->PushColor($this->week->iTextColor);
-				
-		if( $this->week->iStyle==WEEKSTYLE_WNBR )
-		    $txt = sprintf($this->week->iLabelFormStr,$weeknbr);
-		elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY || 
-			$this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ) 
-		    $txt = date("j/n",$week);
-		elseif( $this->week->iStyle==WEEKSTYLE_FIRSTDAY2 || 
-			$this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		    $monthnbr = date("n",$week)-1;
-		    $shortmonth = $this->iDateLocale->GetShortMonthName($monthnbr);
-		    $txt = Date("j",$week)." ".$shortmonth;
-		}
-
-		if( $this->week->iStyle==WEEKSTYLE_FIRSTDAYWNBR ||
-		    $this->week->iStyle==WEEKSTYLE_FIRSTDAY2WNBR ) {
-		    $w = sprintf($this->week->iLabelFormStr,$weeknbr);
-		    $txt .= ' '.$w;
-		}
-				
-		$img->StrokeText(round($x+$txtOffset),
-				 round($yb-$this->week->iTitleVertMargin),$txt);
-				
-		$week = strtotime('+7 day',$week); 
-		$weeknbr = $this->GetWeekNbr($week);
-		$img->PopColor();	
-		$img->SetLineWeight($this->week->grid->iWeight);
-		$img->Line($x,$yt,$x,$yb);
-		$this->week->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-	    }			
-	    $img->SetColor($this->week->iFrameColor);
-	    $img->SetLineWeight($this->week->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	    return $yb-$img->top_margin;
-	}
-	return $aYCoord;
-    }	
-	
-    // Format the mont scale header string
-    function GetMonthLabel($aMonthNbr,$year) {
-	$sn = $this->iDateLocale->GetShortMonthName($aMonthNbr);
-	$ln = $this->iDateLocale->GetLongMonthName($aMonthNbr);
-	switch($this->month->iStyle) {
-	    case MONTHSTYLE_SHORTNAME:
-		$m=$sn;
-		break;
-	    case MONTHSTYLE_LONGNAME:
-		$m=$ln;
-		break;
-	    case MONTHSTYLE_SHORTNAMEYEAR2:
-		$m=$sn." '".substr("".$year,2);
-		break;
-	    case MONTHSTYLE_SHORTNAMEYEAR4:
-		$m=$sn." ".$year;
-		break;
-	    case MONTHSTYLE_LONGNAMEYEAR2:
-		$m=$ln." '".substr("".$year,2);
-		break;
-	    case MONTHSTYLE_LONGNAMEYEAR4:
-		$m=$ln." ".$year;
-		break;
-	    case MONTHSTYLE_FIRSTLETTER:
-		$m=$sn[0];
-		break;
-	}
-	return $m;
-    }
-	
-    // Stroke month scale and gridlines
-    function StrokeMonths($aYCoord,$getHeight=false) {
-	if( $this->month->iShowLabels ) {
-	    $img=$this->iImg;		
-	    $img->SetFont($this->month->iFFamily,$this->month->iFStyle,$this->month->iFSize);
-	    $yt=$aYCoord+$img->top_margin;		
-	    $yb=$yt + $img->GetFontHeight() + $this->month->iTitleVertMargin + $this->month->iFrameWeight;
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;  
-	    }
-	    $monthnbr = $this->GetMonthNbr($this->iStartDate)-1; 
-	    $xt=$img->left_margin+$this->iLabelWidth;
-	    $xb=$img->width-$img->right_margin+1;
-			
-	    $img->SetColor($this->month->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-
-	    $img->SetLineWeight($this->month->grid->iWeight);
-	    $img->SetColor($this->month->iTextColor);
-	    $year = 0+strftime("%Y",$this->iStartDate);
-	    $img->SetTextAlign("center");
-	    if( $this->GetMonthNbr($this->iStartDate) == $this->GetMonthNbr($this->iEndDate)  
-		&& $this->GetYear($this->iStartDate)==$this->GetYear($this->iEndDate) ) {
-	    	$monthwidth=$this->GetDayWidth()*($this->GetMonthDayNbr($this->iEndDate) - $this->GetMonthDayNbr($this->iStartDate) + 1);
-	    } 
-	    else {
-	    	$monthwidth=$this->GetDayWidth()*($this->GetNumDaysInMonth($monthnbr,$year)-$this->GetMonthDayNbr($this->iStartDate)+1);
-	    }
-	    // Is it enough space to stroke the first month?
-	    $monthName = $this->GetMonthLabel($monthnbr,$year);
-	    if( $monthwidth >= 1.2*$img->GetTextWidth($monthName) ) {
-		$img->SetColor($this->month->iTextColor);				
-		$img->StrokeText(round($xt+$monthwidth/2+1),
-				 round($yb-$this->month->iTitleVertMargin),
-				 $monthName);
-	    }
-	    $x = $xt + $monthwidth;
-	    while( $x < $xb ) {
-		$img->SetColor($this->month->grid->iColor);				
-		$img->Line($x,$yt,$x,$yb);
-		$this->month->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		$monthnbr++;
-		if( $monthnbr==12 ) {
-		    $monthnbr=0;
-		    $year++;
-		}
-		$monthName = $this->GetMonthLabel($monthnbr,$year);
-		$monthwidth=$this->GetDayWidth()*$this->GetNumDaysInMonth($monthnbr,$year);				
-		if( $x + $monthwidth < $xb )
-		    $w = $monthwidth;
-		else
-		    $w = $xb-$x;
-		if( $w >= 1.2*$img->GetTextWidth($monthName) ) {
-		    $img->SetColor($this->month->iTextColor);				
-		    $img->StrokeText(round($x+$w/2+1),
-				     round($yb-$this->month->iTitleVertMargin),$monthName);
-		}
-		$x += $monthwidth;
-	    }	
-	    $img->SetColor($this->month->iFrameColor);
-	    $img->SetLineWeight($this->month->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);			
-	    return $yb-$img->top_margin;
-	}
-	return $aYCoord;
-    }
-
-    // Stroke year scale and gridlines
-    function StrokeYears($aYCoord,$getHeight=false) {
-	if( $this->year->iShowLabels ) {
-	    $img=$this->iImg;	
-	    $yt=$aYCoord+$img->top_margin;		
-	    $img->SetFont($this->year->iFFamily,$this->year->iFStyle,$this->year->iFSize);
-	    $yb=$yt + $img->GetFontHeight() + $this->year->iTitleVertMargin + $this->year->iFrameWeight;
-
-	    if( $getHeight ) {
-		return $yb - $img->top_margin;  
-	    }
-
-	    $xb=$img->width-$img->right_margin+1;
-	    $xt=$img->left_margin+$this->iLabelWidth;
-	    $year = $this->GetYear($this->iStartDate); 			
-	    $img->SetColor($this->year->iBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-	    $img->SetLineWeight($this->year->grid->iWeight);
-	    $img->SetTextAlign("center");
-	    if( $year == $this->GetYear($this->iEndDate) )
-		$yearwidth=$this->GetDayWidth()*($this->GetYearDayNbr($this->iEndDate)-$this->GetYearDayNbr($this->iStartDate)+1);
-	    else
-		$yearwidth=$this->GetDayWidth()*($this->GetNumDaysInYear($year)-$this->GetYearDayNbr($this->iStartDate)+1);
-			
-	    // The space for a year must be at least 20% bigger than the actual text 
-	    // so we allow 10% margin on each side
-	    if( $yearwidth >= 1.20*$img->GetTextWidth("".$year) ) {
-		$img->SetColor($this->year->iTextColor);				
-		$img->StrokeText(round($xt+$yearwidth/2+1),
-				 round($yb-$this->year->iTitleVertMargin),
-				 $year);
-	    }
-	    $x = $xt + $yearwidth;
-	    while( $x < $xb ) {
-		$img->SetColor($this->year->grid->iColor);				
-		$img->Line($x,$yt,$x,$yb);
-		$this->year->grid->Stroke($img,$x,$yb,$x,$img->height-$img->bottom_margin);
-		$year += 1;
-		$yearwidth=$this->GetDayWidth()*$this->GetNumDaysInYear($year);				
-		if( $x + $yearwidth < $xb )
-		    $w = $yearwidth;
-		else
-		    $w = $xb-$x;
-		if( $w >= 1.2*$img->GetTextWidth("".$year) ) {
-		    $img->SetColor($this->year->iTextColor);
-		    $img->StrokeText(round($x+$w/2+1),
-				     round($yb-$this->year->iTitleVertMargin),
-				     $year);
-		}
-		$x += $yearwidth;
-	    }
-	    $img->SetColor($this->year->iFrameColor);
-	    $img->SetLineWeight($this->year->iFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);			
-	    return $yb-$img->top_margin;
-	}
-	return $aYCoord;
-    }
-	
-    // Stroke table title (upper left corner)
-    function StrokeTableHeaders($aYBottom) {
-	$img=$this->iImg;
-	$xt=$img->left_margin;
-	$yt=$img->top_margin;
-	$xb=$xt+$this->iLabelWidth;
-	$yb=$aYBottom+$img->top_margin;
-
-	if( $this->tableTitle->iShow ) {
-	    $img->SetColor($this->iTableHeaderBackgroundColor);
-	    $img->FilledRectangle($xt,$yt,$xb,$yb);
-	    $this->tableTitle->Align("center","top");
-	    $this->tableTitle->Stroke($img,$xt+($xb-$xt)/2+1,$yt+2);		
-	    $img->SetColor($this->iTableHeaderFrameColor);
-	    $img->SetLineWeight($this->iTableHeaderFrameWeight);
-	    $img->Rectangle($xt,$yt,$xb,$yb);
-	}
-
-	$this->actinfo->Stroke($img,$xt,$yt,$xb,$yb,$this->tableTitle->iShow);
-
-
-	// Draw the horizontal dividing line		
-	$this->dividerh->Stroke($img,$xt,$yb,$img->width-$img->right_margin,$yb);		
-		
-	// Draw the vertical dividing line
-	// We do the width "manually" since we want the line only to grow
-	// to the left
-	$fancy = $this->divider->iStyle == 'fancy' ;
-	if( $fancy ) {
-	    $this->divider->iStyle = 'solid';
-	}
-
-	$tmp = $this->divider->iWeight;	
-	$this->divider->iWeight=1;
-	$y = $img->height-$img->bottom_margin;
-	for($i=0; $i < $tmp; ++$i ) {
-	    $this->divider->Stroke($img,$xb-$i,$yt,$xb-$i,$y);
-	}
-
-	// Should we draw "fancy" divider
-	if( $fancy ) {
-	    $img->SetLineWeight(1);
-	    $img->SetColor($this->iTableHeaderFrameColor);
-	    $img->Line($xb,$yt,$xb,$y);
-	    $img->Line($xb-$tmp+1,$yt,$xb-$tmp+1,$y);
-	    $img->SetColor('white');
-	    $img->Line($xb-$tmp+2,$yt,$xb-$tmp+2,$y);
-	}
-    }
-
-    // Main entry point to stroke scale
-    function Stroke() {
-	if( !$this->IsRangeSet() )
-	    JpGraphError::RaiseL(6022);
-//("Gantt scale has not been specified.");
-	$img=$this->iImg;
-
-	// If minutes are displayed then hour interval must be 1
-	if( $this->IsDisplayMinute() && $this->hour->GetIntervall() > 1 ) {
-	    JpGraphError::RaiseL(6023);
-//('If you display both hour and minutes the hour intervall must be 1 (Otherwise it doesn\' make sense to display minutes).');
-	}
-		
-	// Stroke all headers. As argument we supply the offset from the
-	// top which depends on any previous headers
-	
-	// First find out the height of each header
-	$offy=$this->StrokeYears(0,true);
-	$offm=$this->StrokeMonths($offy,true);
-	$offw=$this->StrokeWeeks($offm,true);
-	$offd=$this->StrokeDays($offw,true);
-	$offh=$this->StrokeHours($offd,true);
-	$offmin=$this->StrokeMinutes($offh,true);
-
-
-	// ... then we can stroke them in the "backwards order to ensure that
-	// the larger scale gridlines is stroked over the smaller scale gridline
-	$this->StrokeMinutes($offh);
-	$this->StrokeHours($offd);
-	$this->StrokeDays($offw);
-	$this->StrokeWeeks($offm);		
-	$this->StrokeMonths($offy);		
-	$this->StrokeYears(0);
-
-	// Now when we now the oaverall size of the scale headers
-	// we can stroke the overall table headers
-	$this->StrokeTableHeaders($offmin);
-		
-	// Now we can calculate the correct scaling factor for each vertical position
-	$this->iAvailableHeight = $img->height - $img->top_margin - $img->bottom_margin - $offd;		
-	$this->iVertHeaderSize = $offmin;
-	if( $this->iVertSpacing == -1 )
-	    $this->iVertSpacing = $this->iAvailableHeight / $this->iVertLines;
-    }	
-}
-
-
-//===================================================
-// CLASS GanttConstraint
-// Just a structure to store all the values for a constraint
-//===================================================
-class GanttConstraint {
-    var $iConstrainType;
-    var $iConstrainRow;
-    var $iConstrainColor;
-    var $iConstrainArrowSize;
-    var $iConstrainArrowType;
-
-//---------------
-// CONSTRUCTOR
-    function GanttConstraint($aRow,$aType,$aColor,$aArrowSize,$aArrowType){
-	$this->iConstrainType = $aType;
-	$this->iConstrainRow = $aRow;
-	$this->iConstrainColor=$aColor;
-	$this->iConstrainArrowSize=$aArrowSize;
-	$this->iConstrainArrowType=$aArrowType;
-    }
-}
-
-
-//===================================================
-// CLASS GanttPlotObject
-// The common signature for a Gantt object
-//===================================================
-class GanttPlotObject {
-    var $iVPos=0;					// Vertical position
-    var $iLabelLeftMargin=2;	// Title margin
-    var $iStart="";				// Start date
-    var $title,$caption;
-    var $iCaptionMargin=5;
-    var $csimarea='',$csimtarget='',$csimalt='';
-
-    var $constraints = array();    
-    var $iConstrainPos=array();
-		
-    function GanttPlotObject() {
- 	$this->title = new TextProperty();
-	$this->title->Align("left","center");
-	$this->caption = new TextProperty();
-    }
-
-    function GetCSIMArea() {
-	return $this->csimarea;
-    }
-
-    function SetCSIMTarget($aTarget,$aAlt='') {
-	if( !is_string($aTarget) ) {
-	    $tv = substr(var_export($aTarget,true),0,40);
-	    JpGraphError::RaiseL(6024,$tv);
-//('CSIM Target must be specified as a string.'."\nStart of target is:\n$tv");
-	}
-	if( !is_string($aAlt) ) {
-	    $tv = substr(var_export($aAlt,true),0,40);
-	    JpGraphError::RaiseL(6025,$tv);
-//('CSIM Alt text must be specified as a string.'."\nStart of alt text is:\n$tv");
-	}
-
-        $this->csimtarget=$aTarget;
-        $this->csimalt=$aAlt;
-    }
-    
-    function SetCSIMAlt($aAlt) {
-	if( !is_string($aAlt) ) {
-	    $tv = substr(var_export($aAlt,true),0,40);
-	    JpGraphError::RaiseL(6025,$tv);
-//('CSIM Alt text must be specified as a string.'."\nStart of alt text is:\n$tv");
-	}
-        $this->csimalt=$aAlt;
-    }
-
-    function SetConstrain($aRow,$aType,$aColor='black',$aArrowSize=ARROW_S2,$aArrowType=ARROWT_SOLID) {
-	$this->constraints[] = new GanttConstraint($aRow, $aType, $aColor, $aArrowSize, $aArrowType);
-    }
-
-    function SetConstrainPos($xt,$yt,$xb,$yb) {
-	$this->iConstrainPos = array($xt,$yt,$xb,$yb);
-    }
-
-    /*
-    function GetConstrain() {
-	return array($this->iConstrainRow,$this->iConstrainType);
-    }
-    */
-	
-    function GetMinDate() {
-	return $this->iStart;
-    }
-
-    function GetMaxDate() {
-	return $this->iStart;
-    }
-	
-    function SetCaptionMargin($aMarg) {
-	$this->iCaptionMargin=$aMarg;
-    }
-
-    function GetAbsHeight(&$aImg) {
-	return 0; 
-    }
-	
-    function GetLineNbr() {
-	return $this->iVPos;
-    }
-
-    function SetLabelLeftMargin($aOff) {
-	$this->iLabelLeftMargin=$aOff;
-    }		
-
-    function StrokeActInfo(&$aImg,$aScale,$aYPos) {
-	$cols=array();
-	$aScale->actinfo->GetColStart($aImg,$cols,true);
-	$this->title->Stroke($aImg,$cols,$aYPos);		
-    }
-}
-
-//===================================================
-// CLASS Progress
-// Holds parameters for the progress indicator 
-// displyed within a bar
-//===================================================
-class Progress {
-    var $iProgress=-1, $iColor="black", $iFillColor='black';
-    var $iPattern=GANTT_SOLID;
-    var $iDensity=98, $iHeight=0.65; 
-	
-    function Set($aProg) {
-	if( $aProg < 0.0 || $aProg > 1.0 )
-	    JpGraphError::RaiseL(6027);
-//("Progress value must in range [0, 1]");
-	$this->iProgress = $aProg;
-    }
-
-    function SetPattern($aPattern,$aColor="blue",$aDensity=98) {		
-	$this->iPattern = $aPattern;
-	$this->iColor = $aColor;
-	$this->iDensity = $aDensity;
-    }
-
-    function SetFillColor($aColor) {
-	$this->iFillColor = $aColor;
-    }
-	
-    function SetHeight($aHeight) {
-	$this->iHeight = $aHeight;
-    }
-}
-
-DEFINE('GANTT_HGRID1',0);
-DEFINE('GANTT_HGRID2',1);
-
-//===================================================
-// CLASS HorizontalGridLine
-// Responsible for drawinf horizontal gridlines and filled alternatibg rows
-//===================================================
-class HorizontalGridLine {
-    var $iGraph=NULL;
-    var $iRowColor1 = '', $iRowColor2 = '';
-    var $iShow=false;
-    var $line=null;
-    var $iStart=0; // 0=from left margin, 1=just along header
-
-    function HorizontalGridLine() {
-	$this->line = new LineProperty();
-	$this->line->SetColor('gray@0.4');
-	$this->line->SetStyle('dashed');
-    }
-    
-    function Show($aShow=true) {
-	$this->iShow = $aShow;
-    }
-
-    function SetRowFillColor($aColor1,$aColor2='') {
-	$this->iRowColor1 = $aColor1;
-	$this->iRowColor2 = $aColor2;
-    }
-
-    function SetStart($aStart) {
-	$this->iStart = $aStart;
-    }
-
-    function Stroke(&$aImg,$aScale) {
-	
-	if( ! $this->iShow ) return;
-
-	// Get horizontal width of line
-	/*
-	$limst = $aScale->iStartDate;
-	$limen = $aScale->iEndDate;
-	$xt = round($aScale->TranslateDate($aScale->iStartDate));
-	$xb = round($aScale->TranslateDate($limen)); 
-	*/
-
-	if( $this->iStart === 0 ) {
-	    $xt = $aImg->left_margin-1;
-	}
-	else {
-	    $xt = round($aScale->TranslateDate($aScale->iStartDate))+1;
-	}
-
-	$xb = $aImg->width-$aImg->right_margin;
-
-	$yt = round($aScale->TranslateVertPos(0));
-	$yb = round($aScale->TranslateVertPos(1));	    
-	$height = $yb - $yt;
-
-	// Loop around for all lines in the chart
-	for($i=0; $i < $aScale->iVertLines; ++$i ) {
-	    $yb = $yt - $height;
-	    $this->line->Stroke($aImg,$xt,$yb,$xb,$yb);
-	    if( $this->iRowColor1 !== '' ) {
-		if( $i % 2 == 0 ) {
-		    $aImg->PushColor($this->iRowColor1);
-		    $aImg->FilledRectangle($xt,$yt,$xb,$yb);
-		    $aImg->PopColor();
-		}
-		elseif( $this->iRowColor2 !== '' ) {
-		    $aImg->PushColor($this->iRowColor2);
-		    $aImg->FilledRectangle($xt,$yt,$xb,$yb);
-		    $aImg->PopColor();
-		}
-	    }
-	    $yt = round($aScale->TranslateVertPos($i+1));
-	}
-	$yb = $yt - $height;
-	$this->line->Stroke($aImg,$xt,$yb,$xb,$yb);
-    }
-}
-
-
-//===================================================
-// CLASS GanttBar
-// Responsible for formatting individual gantt bars
-//===================================================
-class GanttBar extends GanttPlotObject {
-    var $iEnd;
-    var $iHeightFactor=0.5;
-    var $iFillColor="white",$iFrameColor="black";
-    var $iShadow=false,$iShadowColor="darkgray",$iShadowWidth=1,$iShadowFrame="black";
-    var $iPattern=GANTT_RDIAG,$iPatternColor="blue",$iPatternDensity=95;
-    var $leftMark,$rightMark;
-    var $progress;
-//---------------
-// CONSTRUCTOR	
-    function GanttBar($aPos,$aLabel,$aStart,$aEnd,$aCaption="",$aHeightFactor=0.6) {
-	parent::GanttPlotObject();	
-	$this->iStart = $aStart;	
-	// Is the end date given as a date or as number of days added to start date?
-	if( is_string($aEnd) ) {
-	    // If end date has been specified without a time we will asssume
-	    // end date is at the end of that date
-	    if( strpos($aEnd,':') === false )
-		$this->iEnd = strtotime($aEnd)+SECPERDAY-1;
-	    else 
-		$this->iEnd = $aEnd;
-	}
-	elseif(is_int($aEnd) || is_float($aEnd) ) 
-	    $this->iEnd = strtotime($aStart)+round($aEnd*SECPERDAY);
-	$this->iVPos = $aPos;
-	$this->iHeightFactor = $aHeightFactor;
-	$this->title->Set($aLabel);
-	$this->caption = new TextProperty($aCaption);
-	$this->caption->Align("left","center");
-	$this->leftMark =new PlotMark();
-	$this->leftMark->Hide();
-	$this->rightMark=new PlotMark();
-	$this->rightMark->Hide();
-	$this->progress = new Progress();
-    }
-	
-//---------------
-// PUBLIC METHODS	
-    function SetShadow($aShadow=true,$aColor="gray") {
-	$this->iShadow=$aShadow;
-	$this->iShadowColor=$aColor;
-    }
-    
-    function GetMaxDate() {
-	return $this->iEnd;
-    }
-	
-    function SetHeight($aHeight) {
-	$this->iHeightFactor = $aHeight;
-    }
-
-    function SetColor($aColor) {
-	$this->iFrameColor = $aColor;
-    }
-
-    function SetFillColor($aColor) {
-	$this->iFillColor = $aColor;
-    }
-
-    function GetAbsHeight(&$aImg) {
-	if( is_int($this->iHeightFactor) || $this->leftMark->show || $this->rightMark->show ) {
-	    $m=-1;
-	    if( is_int($this->iHeightFactor) )
-		$m = $this->iHeightFactor;
-	    if( $this->leftMark->show ) 
-		$m = max($m,$this->leftMark->width*2);
-	    if( $this->rightMark->show ) 
-		$m = max($m,$this->rightMark->width*2);
-	    return $m;
-	}
-	else
-	    return -1;
-    }
-	
-    function SetPattern($aPattern,$aColor="blue",$aDensity=95) {		
-	$this->iPattern = $aPattern;
-	$this->iPatternColor = $aColor;
-	$this->iPatternDensity = $aDensity;
-    }
-
-    function Stroke(&$aImg,$aScale) {
-	$factory = new RectPatternFactory();
-	$prect = $factory->Create($this->iPattern,$this->iPatternColor);
-	$prect->SetDensity($this->iPatternDensity);
-
-	// If height factor is specified as a float between 0,1 then we take it as meaning
-	// percetage of the scale width between horizontal line.
-	// If it is an integer > 1 we take it to mean the absolute height in pixels
-	if( $this->iHeightFactor > -0.0 && $this->iHeightFactor <= 1.1)
-	    $vs = $aScale->GetVertSpacing()*$this->iHeightFactor;
-	elseif(is_int($this->iHeightFactor) && $this->iHeightFactor>2 && $this->iHeightFactor < 200 )
-	    $vs = $this->iHeightFactor;
-	else
-	    JpGraphError::RaiseL(6028,$this->iHeightFactor);
-//("Specified height (".$this->iHeightFactor.") for gantt bar is out of range.");
-	
-	// Clip date to min max dates to show
-	$st = $aScale->NormalizeDate($this->iStart);
-	$en = $aScale->NormalizeDate($this->iEnd);
-	
-
-	$limst = max($st,$aScale->iStartDate);
-	$limen = min($en,$aScale->iEndDate);
-			
-	$xt = round($aScale->TranslateDate($limst));
-	$xb = round($aScale->TranslateDate($limen)); 
-	$yt = round($aScale->TranslateVertPos($this->iVPos)-$vs-($aScale->GetVertSpacing()/2-$vs/2));
-	$yb = round($aScale->TranslateVertPos($this->iVPos)-($aScale->GetVertSpacing()/2-$vs/2));
-	$middle = round($yt+($yb-$yt)/2);
-	$this->StrokeActInfo($aImg,$aScale,$middle);
-
-	// CSIM for title
-	if( ! empty($this->title->csimtarget) ) {
-	    $colwidth = $this->title->GetColWidth($aImg);
-	    $colstarts=array();
-	    $aScale->actinfo->GetColStart($aImg,$colstarts,true);
-	    $n = min(count($colwidth),count($this->title->csimtarget));
-	    for( $i=0; $i < $n; ++$i ) {
-		$title_xt = $colstarts[$i];
-		$title_xb = $title_xt + $colwidth[$i];
-		$coords = "$title_xt,$yt,$title_xb,$yt,$title_xb,$yb,$title_xt,$yb";
-		$this->csimarea .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->title->csimtarget[$i]."\"";
-		if( ! empty($this->title->csimalt[$i]) ) {
-		    $tmp = $this->title->csimalt[$i];
-		    $this->csimarea .= " title=\"$tmp\"";
-		}
-		$this->csimarea .= " alt=\"$tmp\" />\n";
-	    }
-	}
-
-	// Check if the bar is totally outside the current scale range
-	if( $en <  $aScale->iStartDate || $st > $aScale->iEndDate )
-		return;
-			
-
-	// Remember the positions for the bar
-	$this->SetConstrainPos($xt,$yt,$xb,$yb);
-		
-	$prect->ShowFrame(false);
-	$prect->SetBackground($this->iFillColor);
-	if( $this->iShadow ) {
-	    $aImg->SetColor($this->iFrameColor);
-	    $aImg->ShadowRectangle($xt,$yt,$xb,$yb,$this->iFillColor,$this->iShadowWidth,$this->iShadowColor);				
-	    $prect->SetPos(new Rectangle($xt+1,$yt+1,$xb-$xt-$this->iShadowWidth-2,$yb-$yt-$this->iShadowWidth-2));				
-	    $prect->Stroke($aImg);
-	}
-	else {	
-	    $prect->SetPos(new Rectangle($xt,$yt,$xb-$xt+1,$yb-$yt+1));				
-	    $prect->Stroke($aImg);
-	    $aImg->SetColor($this->iFrameColor);
-	    $aImg->Rectangle($xt,$yt,$xb,$yb);
-	}
-
-	// CSIM for bar
-	if( $this->csimtarget != '' ) {
-
-	    $coords = "$xt,$yt,$xb,$yt,$xb,$yb,$xt,$yb";
-	    $this->csimarea .= "<area shape=\"poly\" coords=\"$coords\" href=\"".
-		              $this->csimtarget."\"";
-	    if( $this->csimalt != '' ) {
-		$tmp = $this->csimalt;
-		$this->csimarea .= " title=\"$tmp\"";
-	    }
-	    $this->csimarea .= " alt=\"$tmp\" />\n";
-	}
-
-	// Draw progress bar inside activity bar
-	if( $this->progress->iProgress > 0 ) {
-		
-	    $xtp = $aScale->TranslateDate($st);
-	    $xbp = $aScale->TranslateDate($en);
-	    $len = ($xbp-$xtp)*$this->progress->iProgress;
-
-	    $endpos = $xtp+$len;
-	    if( $endpos > $xt ) {
-		$len -= ($xt-$xtp); 
-
-		// Make sure that the progess bar doesn't extend over the end date
-		if( $xtp+$len-1 > $xb )
-		    $len = $xb - $xtp + 1;
-		
-		if( $xtp < $xt ) 
-		    $xtp = $xt;
-		
-		$prog = $factory->Create($this->progress->iPattern,$this->progress->iColor);
-		$prog->SetDensity($this->progress->iDensity);
-		$prog->SetBackground($this->progress->iFillColor);
-	    	$barheight = ($yb-$yt+1);
-		if( $this->iShadow ) 
-		    $barheight -= $this->iShadowWidth;
-		$progressheight = floor($barheight*$this->progress->iHeight);
-		$marg = ceil(($barheight-$progressheight)/2);
-	    	$pos = new Rectangle($xtp,$yt + $marg, $len,$barheight-2*$marg);
-		$prog->SetPos($pos);
-		$prog->Stroke($aImg);
-	    }
-	}
-	
-	// We don't plot the end mark if the bar has been capped
-	if( $limst == $st ) {
-	    $y = $middle;
-	    // We treat the RIGHT and LEFT triangle mark a little bi
-	    // special so that these marks are placed right under the
-	    // bar.
-	    if( $this->leftMark->GetType() == MARK_LEFTTRIANGLE ) {
-		$y = $yb ; 
-	    }
-	    $this->leftMark->Stroke($aImg,$xt,$y);
-	}
-	if( $limen == $en ) {
-	    $y = $middle;
-	    // We treat the RIGHT and LEFT triangle mark a little bi
-	    // special so that these marks are placed right under the
-	    // bar.
-	    if( $this->rightMark->GetType() == MARK_RIGHTTRIANGLE ) {
-		$y = $yb ; 
-	    }
-	    $this->rightMark->Stroke($aImg,$xb,$y);
-	    
-	    $margin = $this->iCaptionMargin;
-	    if( $this->rightMark->show ) 
-	    	$margin += $this->rightMark->GetWidth();
-	    $this->caption->Stroke($aImg,$xb+$margin,$middle);		
-	}
-    }
-}
-
-//===================================================
-// CLASS MileStone
-// Responsible for formatting individual milestones
-//===================================================
-class MileStone extends GanttPlotObject {
-    var $mark;
-	
-//---------------
-// CONSTRUCTOR	
-    function MileStone($aVPos,$aLabel,$aDate,$aCaption="") {
-	GanttPlotObject::GanttPlotObject();
-	$this->caption->Set($aCaption);
-	$this->caption->Align("left","center");
-	$this->caption->SetFont(FF_FONT1,FS_BOLD);
-	$this->title->Set($aLabel);
-	$this->title->SetColor("darkred");
-	$this->mark = new PlotMark();
-	$this->mark->SetWidth(10);
-	$this->mark->SetType(MARK_DIAMOND);
-	$this->mark->SetColor("darkred");
-	$this->mark->SetFillColor("darkred");
-	$this->iVPos = $aVPos;
-	$this->iStart = $aDate;
-    }
-	
-//---------------
-// PUBLIC METHODS	
-	
-    function GetAbsHeight(&$aImg) {
-	return max($this->title->GetHeight($aImg),$this->mark->GetWidth());
-    }
-		
-    function Stroke(&$aImg,$aScale) {
-	// Put the mark in the middle at the middle of the day
-	$d = $aScale->NormalizeDate($this->iStart)+SECPERDAY/2;
-	$x = $aScale->TranslateDate($d);
-	$y = $aScale->TranslateVertPos($this->iVPos)-($aScale->GetVertSpacing()/2);
-
-	$this->StrokeActInfo($aImg,$aScale,$y);
-
-	// CSIM for title
-	if( ! empty($this->title->csimtarget) ) {
-	    
-	    $yt = round($y - $this->title->GetHeight($aImg)/2);
-	    $yb = round($y + $this->title->GetHeight($aImg)/2);
-
-	    $colwidth = $this->title->GetColWidth($aImg);
-	    $colstarts=array();
-	    $aScale->actinfo->GetColStart($aImg,$colstarts,true);
-	    $n = min(count($colwidth),count($this->title->csimtarget));
-	    for( $i=0; $i < $n; ++$i ) {
-		$title_xt = $colstarts[$i];
-		$title_xb = $title_xt + $colwidth[$i];
-		$coords = "$title_xt,$yt,$title_xb,$yt,$title_xb,$yb,$title_xt,$yb";
-		$this->csimarea .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->title->csimtarget[$i]."\"";
-		if( ! empty($this->title->csimalt[$i]) ) {
-		    $tmp = $this->title->csimalt[$i];
-		    $this->csimarea .= " title=\"$tmp\"";
-		}
-		$this->csimarea .= " alt=\"$tmp\" />\n";
-	    }
-	}
-
-	if( $d <  $aScale->iStartDate || $d > $aScale->iEndDate )
-		return;
-
-	// Remember the coordinates for any constrains linking to
-	// this milestone
-	$w = $this->mark->GetWidth()/2;
-	$this->SetConstrainPos($x,round($y-$w),$x,round($y+$w));
-	
-	// Setup CSIM
-	if( $this->csimtarget != '' ) {
-	    $this->mark->SetCSIMTarget( $this->csimtarget );
-	    $this->mark->SetCSIMAlt( $this->csimalt );
-	}
-		
-	$this->mark->Stroke($aImg,$x,$y);		
-	$this->caption->Stroke($aImg,$x+$this->mark->width/2+$this->iCaptionMargin,$y);
-
-	$this->csimarea .= $this->mark->GetCSIMAreas();
-    }
-}
-
-
-//===================================================
-// CLASS GanttVLine
-// Responsible for formatting individual milestones
-//===================================================
-
-class TextPropertyBelow extends TextProperty {
-    function TextPropertyBelow($aTxt='') {
-	parent::TextProperty($aTxt);
-    }
-
-    function GetColWidth(&$aImg,$margin) {
-	// Since we are not stroking the title in the columns
-	// but rather under the graph we want this to return 0.
-	return array(0);
-    }
-}
-
-class GanttVLine extends GanttPlotObject {
-
-    var $iLine,$title_margin=3;
-    var $iDayOffset=1;	// Defult to right edge of day
-	
-//---------------
-// CONSTRUCTOR	
-    function GanttVLine($aDate,$aTitle="",$aColor="black",$aWeight=3,$aStyle="dashed") {
-	GanttPlotObject::GanttPlotObject();
-	$this->iLine = new LineProperty();
-	$this->iLine->SetColor($aColor);
-	$this->iLine->SetWeight($aWeight);
-	$this->iLine->SetStyle($aStyle);
-	$this->iStart = $aDate;
-	$this->title = new TextPropertyBelow();
-	$this->title->Set($aTitle);
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    function SetDayOffset($aOff=0.5) {
-	if( $aOff < 0.0 || $aOff > 1.0 )
-	    JpGraphError::RaiseL(6029);
-//("Offset for vertical line must be in range [0,1]");
-	$this->iDayOffset = $aOff;
-    }
-	
-    function SetTitleMargin($aMarg) {
-	$this->title_margin = $aMarg;
-    }
-	
-    function Stroke(&$aImg,$aScale) {
-	$d = $aScale->NormalizeDate($this->iStart);
-	if( $d <  $aScale->iStartDate || $d > $aScale->iEndDate )
-	    return;	
-	if($this->iDayOffset != 0.0)
-	    $d += 24*60*60*$this->iDayOffset;	
-	$x = $aScale->TranslateDate($d);	
-	$y1 = $aScale->iVertHeaderSize+$aImg->top_margin;
-	$y2 = $aImg->height - $aImg->bottom_margin;	
-	$this->iLine->Stroke($aImg,$x,$y1,$x,$y2);
-	$this->title->Align("center","top");
-	$this->title->Stroke($aImg,$x,$y2+$this->title_margin);
-    }	
-}
-
-//===================================================
-// CLASS LinkArrow
-// Handles the drawing of a an arrow 
-//===================================================
-class LinkArrow {
-    var $ix,$iy;
-    var $isizespec = array(
-	array(2,3),array(3,5),array(3,8),array(6,15),array(8,22));
-    var $iDirection=ARROW_DOWN,$iType=ARROWT_SOLID,$iSize=ARROW_S2;
-    var $iColor='black';
-
-    function LinkArrow($x,$y,$aDirection,$aType=ARROWT_SOLID,$aSize=ARROW_S2) {
-	$this->iDirection = $aDirection;
-	$this->iType = $aType;
-	$this->iSize = $aSize;
-	$this->ix = $x;
-	$this->iy = $y;
-    }
-    
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetSize($aSize) {
-	$this->iSize = $aSize;
-    }
-
-    function SetType($aType) {
-	$this->iType = $aType;
-    }
-
-    function Stroke(&$aImg) {
-	list($dx,$dy) = $this->isizespec[$this->iSize];
-	$x = $this->ix;
-	$y = $this->iy;
-	switch ( $this->iDirection ) {
-	    case ARROW_DOWN:
-		$c = array($x,$y,$x-$dx,$y-$dy,$x+$dx,$y-$dy,$x,$y);
-		break;
-	    case ARROW_UP:
-		$c = array($x,$y,$x-$dx,$y+$dy,$x+$dx,$y+$dy,$x,$y);
-		break;
-	    case ARROW_LEFT:
-		$c = array($x,$y,$x+$dy,$y-$dx,$x+$dy,$y+$dx,$x,$y);
-		break;
-	    case ARROW_RIGHT:
-		$c = array($x,$y,$x-$dy,$y-$dx,$x-$dy,$y+$dx,$x,$y);
-		break;
-	    default:
-		JpGraphError::RaiseL(6030);
-//('Unknown arrow direction for link.');
-		die();
-		break;
-	}
-	$aImg->SetColor($this->iColor);
-	switch( $this->iType ) {
-	    case ARROWT_SOLID:
-		$aImg->FilledPolygon($c);
-		break;
-	    case ARROWT_OPEN:
-		$aImg->Polygon($c);
-		break;
-	    default:
-		JpGraphError::RaiseL(6031);
-//('Unknown arrow type for link.');
-		die();
-		break;		
-	}
-    }
-}
-
-//===================================================
-// CLASS GanttLink
-// Handles the drawing of a link line between 2 points
-//===================================================
-
-class GanttLink {
-    var $ix1,$ix2,$iy1,$iy2;
-    var $iPathType=2,$iPathExtend=15;
-    var $iColor='black',$iWeight=1;
-    var $iArrowSize=ARROW_S2,$iArrowType=ARROWT_SOLID;
-
-    function GanttLink($x1=0,$y1=0,$x2=0,$y2=0) {
-	$this->ix1 = $x1;
-	$this->ix2 = $x2;
-	$this->iy1 = $y1;
-	$this->iy2 = $y2;
-    }
-
-    function SetPos($x1,$y1,$x2,$y2) {
-	$this->ix1 = $x1;
-	$this->ix2 = $x2;
-	$this->iy1 = $y1;
-	$this->iy2 = $y2;
-    }
-
-    function SetPath($aPath) {
-	$this->iPathType = $aPath;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function SetArrow($aSize,$aType=ARROWT_SOLID) {
-	$this->iArrowSize = $aSize;
-	$this->iArrowType = $aType;
-    }
-    
-    function SetWeight($aWeight) {
-	$this->iWeight = $aWeight;
-    }
-
-    function Stroke(&$aImg) {
-	// The way the path for the arrow is constructed is partly based
-	// on some heuristics. This is not an exact science but draws the
-	// path in a way that, for me, makes esthetic sence. For example
-	// if the start and end activities are very close we make a small
-	// detour to endter the target horixontally. If there are more
-	// space between axctivities then no suh detour is made and the 
-	// target is "hit" directly vertical. I have tried to keep this
-	// simple. no doubt this could become almost infinitive complex
-	// and have some real AI. Feel free to modify this.
-	// This will no-doubt be tweaked as times go by. One design aim
-	// is to avoid having the user choose what types of arrow
-	// he wants.
-
-	// The arrow is drawn between (x1,y1) to (x2,y2)
-	$x1 = $this->ix1 ;
-	$x2 = $this->ix2 ;
-	$y1 = $this->iy1 ;
-	$y2 = $this->iy2 ;
-
-	// Depending on if the target is below or above we have to
-	// handle thi different.
-	if( $y2 > $y1 ) {
-	    $arrowtype = ARROW_DOWN;
-	    $midy = round(($y2-$y1)/2+$y1);
-	    if( $x2 > $x1 ) {
-		switch ( $this->iPathType  ) {
-		    case 0:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 1:
-		    case 2:
-		    case 3:
-			$c = array($x1,$y1,$x2,$y1,$x2,$y2);
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type (='.$this->iPathType .') specified for link.');
-			exit(1);
-			break;
-		}
-	    }
-	    else {
-		switch ( $this->iPathType  ) {
-		    case 0:
-		    case 1:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 2:
-			// Always extend out horizontally a bit from the first point
-			// If we draw a link back in time (end to start) and the bars 
-			// are very close we also change the path so it comes in from 
-			// the left on the activity
-			$c = array($x1,$y1,$x1+$this->iPathExtend,$y1,
-				   $x1+$this->iPathExtend,$midy,
-				   $x2,$midy,$x2,$y2);
-			break;
-		    case 3:
-			if( $y2-$midy < 6 ) {
-			    $c = array($x1,$y1,$x1,$midy,
-				       $x2-$this->iPathExtend,$midy,
-				       $x2-$this->iPathExtend,$y2,
-				       $x2,$y2);
-			    $arrowtype = ARROW_RIGHT;
-			}
-			else {
-			    $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			}
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type specified for link.');
-			exit(1);
-			break;
-		}
-	    }
-	    $arrow = new LinkArrow($x2,$y2,$arrowtype);
-	}
-	else {
-	    // Y2 < Y1
-	    $arrowtype = ARROW_UP;
-	    $midy = round(($y1-$y2)/2+$y2);
-	    if( $x2 > $x1 ) {
-		switch ( $this->iPathType  ) {
-		    case 0:
-		    case 1:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 3:
-			if( $midy-$y2 < 8 ) {
-			    $arrowtype = ARROW_RIGHT;
-			    $c = array($x1,$y1,$x1,$y2,$x2,$y2);
-			}
-			else {
-			    $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			}
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type specified for link.');
-			break;
-		}
-	    }
-	    else {
-		switch ( $this->iPathType  ) {
-		    case 0:
-		    case 1:
-			$c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			break;
-		    case 2:
-			// Always extend out horizontally a bit from the first point
-			$c = array($x1,$y1,$x1+$this->iPathExtend,$y1,
-				   $x1+$this->iPathExtend,$midy,
-				   $x2,$midy,$x2,$y2);
-			break;
-		    case 3:
-			if( $midy-$y2 < 16 ) {
-			    $arrowtype = ARROW_RIGHT;
-			    $c = array($x1,$y1,$x1,$midy,$x2-$this->iPathExtend,$midy,
-				       $x2-$this->iPathExtend,$y2,
-				       $x2,$y2);
-			}
-			else {
-			    $c = array($x1,$y1,$x1,$midy,$x2,$midy,$x2,$y2);
-			}
-			break;
-		    default:
-			JpGraphError::RaiseL(6032,$this->iPathType);
-//('Internal error: Unknown path type specified for link.');
-			break;
-		}
-	    }
-	    $arrow = new LinkArrow($x2,$y2,$arrowtype);
-	}
-	$aImg->SetColor($this->iColor);
-	$aImg->SetLineWeight($this->iWeight);
-	$aImg->Polygon($c);
-	$aImg->SetLineWeight(1);
-	$arrow->SetColor($this->iColor);
-	$arrow->SetSize($this->iArrowSize);
-	$arrow->SetType($this->iArrowType);
-	$arrow->Stroke($aImg);
-    }
-}
-
-// <EOF>
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_gb2312.php b/nightly-test-server/jpgraph/jpgraph_gb2312.php
deleted file mode 100644
index d0185bf..0000000
--- a/nightly-test-server/jpgraph/jpgraph_gb2312.php
+++ /dev/null
@@ -1,1553 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_GB2312.PHP
-// Description:	PHP4 Graph Plotting library. Chinese font conversions
-// Created: 	2003-05-30
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-class GB2312toUTF8 {
-// --------------------------------------------------------------------
-// This code table is used to translate GB2312 code (key) to 
-// it's corresponding Unicode value (data)
-// --------------------------------------------------------------------
-    var $codetable = array( 
-	8481 => 12288, 8482 => 12289, 8483 => 12290, 8484 => 12539, 8485 => 713,
-	8486 => 711, 8487 => 168, 8488 => 12291, 8489 => 12293, 8490 => 8213,
-	8491 => 65374, 8492 => 8214, 8493 => 8230, 8494 => 8216, 8495 => 8217,
-	8496 => 8220, 8497 => 8221, 8498 => 12308, 8499 => 12309, 8500 => 12296,
-	8501 => 12297, 8502 => 12298, 8503 => 12299, 8504 => 12300, 8505 => 12301,
-	8506 => 12302, 8507 => 12303, 8508 => 12310, 8509 => 12311, 8510 => 12304,
-	8511 => 12305, 8512 => 177, 8513 => 215, 8514 => 247, 8515 => 8758,
-	8516 => 8743, 8517 => 8744, 8518 => 8721, 8519 => 8719, 8520 => 8746,
-	8521 => 8745, 8522 => 8712, 8523 => 8759, 8524 => 8730, 8525 => 8869,
-	8526 => 8741, 8527 => 8736, 8528 => 8978, 8529 => 8857, 8530 => 8747,
-	8531 => 8750, 8532 => 8801, 8533 => 8780, 8534 => 8776, 8535 => 8765,
-	8536 => 8733, 8537 => 8800, 8538 => 8814, 8539 => 8815, 8540 => 8804,
-	8541 => 8805, 8542 => 8734, 8543 => 8757, 8544 => 8756, 8545 => 9794,
-	8546 => 9792, 8547 => 176, 8548 => 8242, 8549 => 8243, 8550 => 8451,
-	8551 => 65284, 8552 => 164, 8553 => 65504, 8554 => 65505, 8555 => 8240,
-	8556 => 167, 8557 => 8470, 8558 => 9734, 8559 => 9733, 8560 => 9675,
-	8561 => 9679, 8562 => 9678, 8563 => 9671, 8564 => 9670, 8565 => 9633,
-	8566 => 9632, 8567 => 9651, 8568 => 9650, 8569 => 8251, 8570 => 8594,
-	8571 => 8592, 8572 => 8593, 8573 => 8595, 8574 => 12307, 8753 => 9352,
-	8754 => 9353, 8755 => 9354, 8756 => 9355, 8757 => 9356, 8758 => 9357,
-	8759 => 9358, 8760 => 9359, 8761 => 9360, 8762 => 9361, 8763 => 9362,
-	8764 => 9363, 8765 => 9364, 8766 => 9365, 8767 => 9366, 8768 => 9367,
-	8769 => 9368, 8770 => 9369, 8771 => 9370, 8772 => 9371, 8773 => 9332,
-	8774 => 9333, 8775 => 9334, 8776 => 9335, 8777 => 9336, 8778 => 9337,
-	8779 => 9338, 8780 => 9339, 8781 => 9340, 8782 => 9341, 8783 => 9342,
-	8784 => 9343, 8785 => 9344, 8786 => 9345, 8787 => 9346, 8788 => 9347,
-	8789 => 9348, 8790 => 9349, 8791 => 9350, 8792 => 9351, 8793 => 9312,
-	8794 => 9313, 8795 => 9314, 8796 => 9315, 8797 => 9316, 8798 => 9317,
-	8799 => 9318, 8800 => 9319, 8801 => 9320, 8802 => 9321, 8805 => 12832,
-	8806 => 12833, 8807 => 12834, 8808 => 12835, 8809 => 12836, 8810 => 12837,
-	8811 => 12838, 8812 => 12839, 8813 => 12840, 8814 => 12841, 8817 => 8544,
-	8818 => 8545, 8819 => 8546, 8820 => 8547, 8821 => 8548, 8822 => 8549,
-	8823 => 8550, 8824 => 8551, 8825 => 8552, 8826 => 8553, 8827 => 8554,
-	8828 => 8555, 8993 => 65281, 8994 => 65282, 8995 => 65283, 8996 => 65509,
-	8997 => 65285, 8998 => 65286, 8999 => 65287, 9000 => 65288, 9001 => 65289,
-	9002 => 65290, 9003 => 65291, 9004 => 65292, 9005 => 65293, 9006 => 65294,
-	9007 => 65295, 9008 => 65296, 9009 => 65297, 9010 => 65298, 9011 => 65299,
-	9012 => 65300, 9013 => 65301, 9014 => 65302, 9015 => 65303, 9016 => 65304,
-	9017 => 65305, 9018 => 65306, 9019 => 65307, 9020 => 65308, 9021 => 65309,
-	9022 => 65310, 9023 => 65311, 9024 => 65312, 9025 => 65313, 9026 => 65314,
-	9027 => 65315, 9028 => 65316, 9029 => 65317, 9030 => 65318, 9031 => 65319,
-	9032 => 65320, 9033 => 65321, 9034 => 65322, 9035 => 65323, 9036 => 65324,
-	9037 => 65325, 9038 => 65326, 9039 => 65327, 9040 => 65328, 9041 => 65329,
-	9042 => 65330, 9043 => 65331, 9044 => 65332, 9045 => 65333, 9046 => 65334,
-	9047 => 65335, 9048 => 65336, 9049 => 65337, 9050 => 65338, 9051 => 65339,
-	9052 => 65340, 9053 => 65341, 9054 => 65342, 9055 => 65343, 9056 => 65344,
-	9057 => 65345, 9058 => 65346, 9059 => 65347, 9060 => 65348, 9061 => 65349,
-	9062 => 65350, 9063 => 65351, 9064 => 65352, 9065 => 65353, 9066 => 65354,
-	9067 => 65355, 9068 => 65356, 9069 => 65357, 9070 => 65358, 9071 => 65359,
-	9072 => 65360, 9073 => 65361, 9074 => 65362, 9075 => 65363, 9076 => 65364,
-	9077 => 65365, 9078 => 65366, 9079 => 65367, 9080 => 65368, 9081 => 65369,
-	9082 => 65370, 9083 => 65371, 9084 => 65372, 9085 => 65373, 9086 => 65507,
-	9249 => 12353, 9250 => 12354, 9251 => 12355, 9252 => 12356, 9253 => 12357,
-	9254 => 12358, 9255 => 12359, 9256 => 12360, 9257 => 12361, 9258 => 12362,
-	9259 => 12363, 9260 => 12364, 9261 => 12365, 9262 => 12366, 9263 => 12367,
-	9264 => 12368, 9265 => 12369, 9266 => 12370, 9267 => 12371, 9268 => 12372,
-	9269 => 12373, 9270 => 12374, 9271 => 12375, 9272 => 12376, 9273 => 12377,
-	9274 => 12378, 9275 => 12379, 9276 => 12380, 9277 => 12381, 9278 => 12382,
-	9279 => 12383, 9280 => 12384, 9281 => 12385, 9282 => 12386, 9283 => 12387,
-	9284 => 12388, 9285 => 12389, 9286 => 12390, 9287 => 12391, 9288 => 12392,
-	9289 => 12393, 9290 => 12394, 9291 => 12395, 9292 => 12396, 9293 => 12397,
-	9294 => 12398, 9295 => 12399, 9296 => 12400, 9297 => 12401, 9298 => 12402,
-	9299 => 12403, 9300 => 12404, 9301 => 12405, 9302 => 12406, 9303 => 12407,
-	9304 => 12408, 9305 => 12409, 9306 => 12410, 9307 => 12411, 9308 => 12412,
-	9309 => 12413, 9310 => 12414, 9311 => 12415, 9312 => 12416, 9313 => 12417,
-	9314 => 12418, 9315 => 12419, 9316 => 12420, 9317 => 12421, 9318 => 12422,
-	9319 => 12423, 9320 => 12424, 9321 => 12425, 9322 => 12426, 9323 => 12427,
-	9324 => 12428, 9325 => 12429, 9326 => 12430, 9327 => 12431, 9328 => 12432,
-	9329 => 12433, 9330 => 12434, 9331 => 12435, 9505 => 12449, 9506 => 12450,
-	9507 => 12451, 9508 => 12452, 9509 => 12453, 9510 => 12454, 9511 => 12455,
-	9512 => 12456, 9513 => 12457, 9514 => 12458, 9515 => 12459, 9516 => 12460,
-	9517 => 12461, 9518 => 12462, 9519 => 12463, 9520 => 12464, 9521 => 12465,
-	9522 => 12466, 9523 => 12467, 9524 => 12468, 9525 => 12469, 9526 => 12470,
-	9527 => 12471, 9528 => 12472, 9529 => 12473, 9530 => 12474, 9531 => 12475,
-	9532 => 12476, 9533 => 12477, 9534 => 12478, 9535 => 12479, 9536 => 12480,
-	9537 => 12481, 9538 => 12482, 9539 => 12483, 9540 => 12484, 9541 => 12485,
-	9542 => 12486, 9543 => 12487, 9544 => 12488, 9545 => 12489, 9546 => 12490,
-	9547 => 12491, 9548 => 12492, 9549 => 12493, 9550 => 12494, 9551 => 12495,
-	9552 => 12496, 9553 => 12497, 9554 => 12498, 9555 => 12499, 9556 => 12500,
-	9557 => 12501, 9558 => 12502, 9559 => 12503, 9560 => 12504, 9561 => 12505,
-	9562 => 12506, 9563 => 12507, 9564 => 12508, 9565 => 12509, 9566 => 12510,
-	9567 => 12511, 9568 => 12512, 9569 => 12513, 9570 => 12514, 9571 => 12515,
-	9572 => 12516, 9573 => 12517, 9574 => 12518, 9575 => 12519, 9576 => 12520,
-	9577 => 12521, 9578 => 12522, 9579 => 12523, 9580 => 12524, 9581 => 12525,
-	9582 => 12526, 9583 => 12527, 9584 => 12528, 9585 => 12529, 9586 => 12530,
-	9587 => 12531, 9588 => 12532, 9589 => 12533, 9590 => 12534, 9761 => 913,
-	9762 => 914, 9763 => 915, 9764 => 916, 9765 => 917, 9766 => 918,
-	9767 => 919, 9768 => 920, 9769 => 921, 9770 => 922, 9771 => 923,
-	9772 => 924, 9773 => 925, 9774 => 926, 9775 => 927, 9776 => 928,
-	9777 => 929, 9778 => 931, 9779 => 932, 9780 => 933, 9781 => 934,
-	9782 => 935, 9783 => 936, 9784 => 937, 9793 => 945, 9794 => 946,
-	9795 => 947, 9796 => 948, 9797 => 949, 9798 => 950, 9799 => 951,
-	9800 => 952, 9801 => 953, 9802 => 954, 9803 => 955, 9804 => 956,
-	9805 => 957, 9806 => 958, 9807 => 959, 9808 => 960, 9809 => 961,
-	9810 => 963, 9811 => 964, 9812 => 965, 9813 => 966, 9814 => 967,
-	9815 => 968, 9816 => 969, 10017 => 1040, 10018 => 1041, 10019 => 1042,
-	10020 => 1043, 10021 => 1044, 10022 => 1045, 10023 => 1025, 10024 => 1046,
-	10025 => 1047, 10026 => 1048, 10027 => 1049, 10028 => 1050, 10029 => 1051,
-	10030 => 1052, 10031 => 1053, 10032 => 1054, 10033 => 1055, 10034 => 1056,
-	10035 => 1057, 10036 => 1058, 10037 => 1059, 10038 => 1060, 10039 => 1061,
-	10040 => 1062, 10041 => 1063, 10042 => 1064, 10043 => 1065, 10044 => 1066,
-	10045 => 1067, 10046 => 1068, 10047 => 1069, 10048 => 1070, 10049 => 1071,
-	10065 => 1072, 10066 => 1073, 10067 => 1074, 10068 => 1075, 10069 => 1076,
-	10070 => 1077, 10071 => 1105, 10072 => 1078, 10073 => 1079, 10074 => 1080,
-	10075 => 1081, 10076 => 1082, 10077 => 1083, 10078 => 1084, 10079 => 1085,
-	10080 => 1086, 10081 => 1087, 10082 => 1088, 10083 => 1089, 10084 => 1090,
-	10085 => 1091, 10086 => 1092, 10087 => 1093, 10088 => 1094, 10089 => 1095,
-	10090 => 1096, 10091 => 1097, 10092 => 1098, 10093 => 1099, 10094 => 1100,
-	10095 => 1101, 10096 => 1102, 10097 => 1103, 10273 => 257, 10274 => 225,
-	10275 => 462, 10276 => 224, 10277 => 275, 10278 => 233, 10279 => 283,
-	10280 => 232, 10281 => 299, 10282 => 237, 10283 => 464, 10284 => 236,
-	10285 => 333, 10286 => 243, 10287 => 466, 10288 => 242, 10289 => 363,
-	10290 => 250, 10291 => 468, 10292 => 249, 10293 => 470, 10294 => 472,
-	10295 => 474, 10296 => 476, 10297 => 252, 10298 => 234, 10309 => 12549,
-	10310 => 12550, 10311 => 12551, 10312 => 12552, 10313 => 12553, 10314 => 12554,
-	10315 => 12555, 10316 => 12556, 10317 => 12557, 10318 => 12558, 10319 => 12559,
-	10320 => 12560, 10321 => 12561, 10322 => 12562, 10323 => 12563, 10324 => 12564,
-	10325 => 12565, 10326 => 12566, 10327 => 12567, 10328 => 12568, 10329 => 12569,
-	10330 => 12570, 10331 => 12571, 10332 => 12572, 10333 => 12573, 10334 => 12574,
-	10335 => 12575, 10336 => 12576, 10337 => 12577, 10338 => 12578, 10339 => 12579,
-	10340 => 12580, 10341 => 12581, 10342 => 12582, 10343 => 12583, 10344 => 12584,
-	10345 => 12585, 10532 => 9472, 10533 => 9473, 10534 => 9474, 10535 => 9475,
-	10536 => 9476, 10537 => 9477, 10538 => 9478, 10539 => 9479, 10540 => 9480,
-	10541 => 9481, 10542 => 9482, 10543 => 9483, 10544 => 9484, 10545 => 9485,
-	10546 => 9486, 10547 => 9487, 10548 => 9488, 10549 => 9489, 10550 => 9490,
-	10551 => 9491, 10552 => 9492, 10553 => 9493, 10554 => 9494, 10555 => 9495,
-	10556 => 9496, 10557 => 9497, 10558 => 9498, 10559 => 9499, 10560 => 9500,
-	10561 => 9501, 10562 => 9502, 10563 => 9503, 10564 => 9504, 10565 => 9505,
-	10566 => 9506, 10567 => 9507, 10568 => 9508, 10569 => 9509, 10570 => 9510,
-	10571 => 9511, 10572 => 9512, 10573 => 9513, 10574 => 9514, 10575 => 9515,
-	10576 => 9516, 10577 => 9517, 10578 => 9518, 10579 => 9519, 10580 => 9520,
-	10581 => 9521, 10582 => 9522, 10583 => 9523, 10584 => 9524, 10585 => 9525,
-	10586 => 9526, 10587 => 9527, 10588 => 9528, 10589 => 9529, 10590 => 9530,
-	10591 => 9531, 10592 => 9532, 10593 => 9533, 10594 => 9534, 10595 => 9535,
-	10596 => 9536, 10597 => 9537, 10598 => 9538, 10599 => 9539, 10600 => 9540,
-	10601 => 9541, 10602 => 9542, 10603 => 9543, 10604 => 9544, 10605 => 9545,
-	10606 => 9546, 10607 => 9547, 12321 => 21834, 12322 => 38463, 12323 => 22467,
-	12324 => 25384, 12325 => 21710, 12326 => 21769, 12327 => 21696, 12328 => 30353,
-	12329 => 30284, 12330 => 34108, 12331 => 30702, 12332 => 33406, 12333 => 30861,
-	12334 => 29233, 12335 => 38552, 12336 => 38797, 12337 => 27688, 12338 => 23433,
-	12339 => 20474, 12340 => 25353, 12341 => 26263, 12342 => 23736, 12343 => 33018,
-	12344 => 26696, 12345 => 32942, 12346 => 26114, 12347 => 30414, 12348 => 20985,
-	12349 => 25942, 12350 => 29100, 12351 => 32753, 12352 => 34948, 12353 => 20658,
-	12354 => 22885, 12355 => 25034, 12356 => 28595, 12357 => 33453, 12358 => 25420,
-	12359 => 25170, 12360 => 21485, 12361 => 21543, 12362 => 31494, 12363 => 20843,
-	12364 => 30116, 12365 => 24052, 12366 => 25300, 12367 => 36299, 12368 => 38774,
-	12369 => 25226, 12370 => 32793, 12371 => 22365, 12372 => 38712, 12373 => 32610,
-	12374 => 29240, 12375 => 30333, 12376 => 26575, 12377 => 30334, 12378 => 25670,
-	12379 => 20336, 12380 => 36133, 12381 => 25308, 12382 => 31255, 12383 => 26001,
-	12384 => 29677, 12385 => 25644, 12386 => 25203, 12387 => 33324, 12388 => 39041,
-	12389 => 26495, 12390 => 29256, 12391 => 25198, 12392 => 25292, 12393 => 20276,
-	12394 => 29923, 12395 => 21322, 12396 => 21150, 12397 => 32458, 12398 => 37030,
-	12399 => 24110, 12400 => 26758, 12401 => 27036, 12402 => 33152, 12403 => 32465,
-	12404 => 26834, 12405 => 30917, 12406 => 34444, 12407 => 38225, 12408 => 20621,
-	12409 => 35876, 12410 => 33502, 12411 => 32990, 12412 => 21253, 12413 => 35090,
-	12414 => 21093, 12577 => 34180, 12578 => 38649, 12579 => 20445, 12580 => 22561,
-	12581 => 39281, 12582 => 23453, 12583 => 25265, 12584 => 25253, 12585 => 26292,
-	12586 => 35961, 12587 => 40077, 12588 => 29190, 12589 => 26479, 12590 => 30865,
-	12591 => 24754, 12592 => 21329, 12593 => 21271, 12594 => 36744, 12595 => 32972,
-	12596 => 36125, 12597 => 38049, 12598 => 20493, 12599 => 29384, 12600 => 22791,
-	12601 => 24811, 12602 => 28953, 12603 => 34987, 12604 => 22868, 12605 => 33519,
-	12606 => 26412, 12607 => 31528, 12608 => 23849, 12609 => 32503, 12610 => 29997,
-	12611 => 27893, 12612 => 36454, 12613 => 36856, 12614 => 36924, 12615 => 40763,
-	12616 => 27604, 12617 => 37145, 12618 => 31508, 12619 => 24444, 12620 => 30887,
-	12621 => 34006, 12622 => 34109, 12623 => 27605, 12624 => 27609, 12625 => 27606,
-	12626 => 24065, 12627 => 24199, 12628 => 30201, 12629 => 38381, 12630 => 25949,
-	12631 => 24330, 12632 => 24517, 12633 => 36767, 12634 => 22721, 12635 => 33218,
-	12636 => 36991, 12637 => 38491, 12638 => 38829, 12639 => 36793, 12640 => 32534,
-	12641 => 36140, 12642 => 25153, 12643 => 20415, 12644 => 21464, 12645 => 21342,
-	12646 => 36776, 12647 => 36777, 12648 => 36779, 12649 => 36941, 12650 => 26631,
-	12651 => 24426, 12652 => 33176, 12653 => 34920, 12654 => 40150, 12655 => 24971,
-	12656 => 21035, 12657 => 30250, 12658 => 24428, 12659 => 25996, 12660 => 28626,
-	12661 => 28392, 12662 => 23486, 12663 => 25672, 12664 => 20853, 12665 => 20912,
-	12666 => 26564, 12667 => 19993, 12668 => 31177, 12669 => 39292, 12670 => 28851,
-	12833 => 30149, 12834 => 24182, 12835 => 29627, 12836 => 33760, 12837 => 25773,
-	12838 => 25320, 12839 => 38069, 12840 => 27874, 12841 => 21338, 12842 => 21187,
-	12843 => 25615, 12844 => 38082, 12845 => 31636, 12846 => 20271, 12847 => 24091,
-	12848 => 33334, 12849 => 33046, 12850 => 33162, 12851 => 28196, 12852 => 27850,
-	12853 => 39539, 12854 => 25429, 12855 => 21340, 12856 => 21754, 12857 => 34917,
-	12858 => 22496, 12859 => 19981, 12860 => 24067, 12861 => 27493, 12862 => 31807,
-	12863 => 37096, 12864 => 24598, 12865 => 25830, 12866 => 29468, 12867 => 35009,
-	12868 => 26448, 12869 => 25165, 12870 => 36130, 12871 => 30572, 12872 => 36393,
-	12873 => 37319, 12874 => 24425, 12875 => 33756, 12876 => 34081, 12877 => 39184,
-	12878 => 21442, 12879 => 34453, 12880 => 27531, 12881 => 24813, 12882 => 24808,
-	12883 => 28799, 12884 => 33485, 12885 => 33329, 12886 => 20179, 12887 => 27815,
-	12888 => 34255, 12889 => 25805, 12890 => 31961, 12891 => 27133, 12892 => 26361,
-	12893 => 33609, 12894 => 21397, 12895 => 31574, 12896 => 20391, 12897 => 20876,
-	12898 => 27979, 12899 => 23618, 12900 => 36461, 12901 => 25554, 12902 => 21449,
-	12903 => 33580, 12904 => 33590, 12905 => 26597, 12906 => 30900, 12907 => 25661,
-	12908 => 23519, 12909 => 23700, 12910 => 24046, 12911 => 35815, 12912 => 25286,
-	12913 => 26612, 12914 => 35962, 12915 => 25600, 12916 => 25530, 12917 => 34633,
-	12918 => 39307, 12919 => 35863, 12920 => 32544, 12921 => 38130, 12922 => 20135,
-	12923 => 38416, 12924 => 39076, 12925 => 26124, 12926 => 29462, 13089 => 22330,
-	13090 => 23581, 13091 => 24120, 13092 => 38271, 13093 => 20607, 13094 => 32928,
-	13095 => 21378, 13096 => 25950, 13097 => 30021, 13098 => 21809, 13099 => 20513,
-	13100 => 36229, 13101 => 25220, 13102 => 38046, 13103 => 26397, 13104 => 22066,
-	13105 => 28526, 13106 => 24034, 13107 => 21557, 13108 => 28818, 13109 => 36710,
-	13110 => 25199, 13111 => 25764, 13112 => 25507, 13113 => 24443, 13114 => 28552,
-	13115 => 37108, 13116 => 33251, 13117 => 36784, 13118 => 23576, 13119 => 26216,
-	13120 => 24561, 13121 => 27785, 13122 => 38472, 13123 => 36225, 13124 => 34924,
-	13125 => 25745, 13126 => 31216, 13127 => 22478, 13128 => 27225, 13129 => 25104,
-	13130 => 21576, 13131 => 20056, 13132 => 31243, 13133 => 24809, 13134 => 28548,
-	13135 => 35802, 13136 => 25215, 13137 => 36894, 13138 => 39563, 13139 => 31204,
-13140 => 21507, 13141 => 30196, 13142 => 25345, 13143 => 21273, 13144 => 27744,
-13145 => 36831, 13146 => 24347, 13147 => 39536, 13148 => 32827, 13149 => 40831,
-13150 => 20360, 13151 => 23610, 13152 => 36196, 13153 => 32709, 13154 => 26021,
-13155 => 28861, 13156 => 20805, 13157 => 20914, 13158 => 34411, 13159 => 23815,
-13160 => 23456, 13161 => 25277, 13162 => 37228, 13163 => 30068, 13164 => 36364,
-13165 => 31264, 13166 => 24833, 13167 => 31609, 13168 => 20167, 13169 => 32504,
-13170 => 30597, 13171 => 19985, 13172 => 33261, 13173 => 21021, 13174 => 20986,
-13175 => 27249, 13176 => 21416, 13177 => 36487, 13178 => 38148, 13179 => 38607,
-13180 => 28353, 13181 => 38500, 13182 => 26970, 13345 => 30784, 13346 => 20648,
-13347 => 30679, 13348 => 25616, 13349 => 35302, 13350 => 22788, 13351 => 25571,
-13352 => 24029, 13353 => 31359, 13354 => 26941, 13355 => 20256, 13356 => 33337,
-13357 => 21912, 13358 => 20018, 13359 => 30126, 13360 => 31383, 13361 => 24162,
-13362 => 24202, 13363 => 38383, 13364 => 21019, 13365 => 21561, 13366 => 28810,
-13367 => 25462, 13368 => 38180, 13369 => 22402, 13370 => 26149, 13371 => 26943,
-13372 => 37255, 13373 => 21767, 13374 => 28147, 13375 => 32431, 13376 => 34850,
-13377 => 25139, 13378 => 32496, 13379 => 30133, 13380 => 33576, 13381 => 30913,
-13382 => 38604, 13383 => 36766, 13384 => 24904, 13385 => 29943, 13386 => 35789,
-13387 => 27492, 13388 => 21050, 13389 => 36176, 13390 => 27425, 13391 => 32874,
-13392 => 33905, 13393 => 22257, 13394 => 21254, 13395 => 20174, 13396 => 19995,
-13397 => 20945, 13398 => 31895, 13399 => 37259, 13400 => 31751, 13401 => 20419,
-13402 => 36479, 13403 => 31713, 13404 => 31388, 13405 => 25703, 13406 => 23828,
-13407 => 20652, 13408 => 33030, 13409 => 30209, 13410 => 31929, 13411 => 28140,
-13412 => 32736, 13413 => 26449, 13414 => 23384, 13415 => 23544, 13416 => 30923,
-13417 => 25774, 13418 => 25619, 13419 => 25514, 13420 => 25387, 13421 => 38169,
-13422 => 25645, 13423 => 36798, 13424 => 31572, 13425 => 30249, 13426 => 25171,
-13427 => 22823, 13428 => 21574, 13429 => 27513, 13430 => 20643, 13431 => 25140,
-13432 => 24102, 13433 => 27526, 13434 => 20195, 13435 => 36151, 13436 => 34955,
-13437 => 24453, 13438 => 36910, 13601 => 24608, 13602 => 32829, 13603 => 25285,
-13604 => 20025, 13605 => 21333, 13606 => 37112, 13607 => 25528, 13608 => 32966,
-13609 => 26086, 13610 => 27694, 13611 => 20294, 13612 => 24814, 13613 => 28129,
-13614 => 35806, 13615 => 24377, 13616 => 34507, 13617 => 24403, 13618 => 25377,
-13619 => 20826, 13620 => 33633, 13621 => 26723, 13622 => 20992, 13623 => 25443,
-13624 => 36424, 13625 => 20498, 13626 => 23707, 13627 => 31095, 13628 => 23548,
-13629 => 21040, 13630 => 31291, 13631 => 24764, 13632 => 36947, 13633 => 30423,
-13634 => 24503, 13635 => 24471, 13636 => 30340, 13637 => 36460, 13638 => 28783,
-13639 => 30331, 13640 => 31561, 13641 => 30634, 13642 => 20979, 13643 => 37011,
-13644 => 22564, 13645 => 20302, 13646 => 28404, 13647 => 36842, 13648 => 25932,
-13649 => 31515, 13650 => 29380, 13651 => 28068, 13652 => 32735, 13653 => 23265,
-13654 => 25269, 13655 => 24213, 13656 => 22320, 13657 => 33922, 13658 => 31532,
-13659 => 24093, 13660 => 24351, 13661 => 36882, 13662 => 32532, 13663 => 39072,
-13664 => 25474, 13665 => 28359, 13666 => 30872, 13667 => 28857, 13668 => 20856,
-13669 => 38747, 13670 => 22443, 13671 => 30005, 13672 => 20291, 13673 => 30008,
-13674 => 24215, 13675 => 24806, 13676 => 22880, 13677 => 28096, 13678 => 27583,
-13679 => 30857, 13680 => 21500, 13681 => 38613, 13682 => 20939, 13683 => 20993,
-13684 => 25481, 13685 => 21514, 13686 => 38035, 13687 => 35843, 13688 => 36300,
-13689 => 29241, 13690 => 30879, 13691 => 34678, 13692 => 36845, 13693 => 35853,
-13694 => 21472, 13857 => 19969, 13858 => 30447, 13859 => 21486, 13860 => 38025,
-13861 => 39030, 13862 => 40718, 13863 => 38189, 13864 => 23450, 13865 => 35746,
-13866 => 20002, 13867 => 19996, 13868 => 20908, 13869 => 33891, 13870 => 25026,
-13871 => 21160, 13872 => 26635, 13873 => 20375, 13874 => 24683, 13875 => 20923,
-13876 => 27934, 13877 => 20828, 13878 => 25238, 13879 => 26007, 13880 => 38497,
-13881 => 35910, 13882 => 36887, 13883 => 30168, 13884 => 37117, 13885 => 30563,
-13886 => 27602, 13887 => 29322, 13888 => 29420, 13889 => 35835, 13890 => 22581,
-13891 => 30585, 13892 => 36172, 13893 => 26460, 13894 => 38208, 13895 => 32922,
-13896 => 24230, 13897 => 28193, 13898 => 22930, 13899 => 31471, 13900 => 30701,
-13901 => 38203, 13902 => 27573, 13903 => 26029, 13904 => 32526, 13905 => 22534,
-13906 => 20817, 13907 => 38431, 13908 => 23545, 13909 => 22697, 13910 => 21544,
-13911 => 36466, 13912 => 25958, 13913 => 39039, 13914 => 22244, 13915 => 38045,
-13916 => 30462, 13917 => 36929, 13918 => 25479, 13919 => 21702, 13920 => 22810,
-13921 => 22842, 13922 => 22427, 13923 => 36530, 13924 => 26421, 13925 => 36346,
-13926 => 33333, 13927 => 21057, 13928 => 24816, 13929 => 22549, 13930 => 34558,
-13931 => 23784, 13932 => 40517, 13933 => 20420, 13934 => 39069, 13935 => 35769,
-13936 => 23077, 13937 => 24694, 13938 => 21380, 13939 => 25212, 13940 => 36943,
-13941 => 37122, 13942 => 39295, 13943 => 24681, 13944 => 32780, 13945 => 20799,
-13946 => 32819, 13947 => 23572, 13948 => 39285, 13949 => 27953, 13950 => 20108,
-14113 => 36144, 14114 => 21457, 14115 => 32602, 14116 => 31567, 14117 => 20240,
-14118 => 20047, 14119 => 38400, 14120 => 27861, 14121 => 29648, 14122 => 34281,
-14123 => 24070, 14124 => 30058, 14125 => 32763, 14126 => 27146, 14127 => 30718,
-14128 => 38034, 14129 => 32321, 14130 => 20961, 14131 => 28902, 14132 => 21453,
-14133 => 36820, 14134 => 33539, 14135 => 36137, 14136 => 29359, 14137 => 39277,
-14138 => 27867, 14139 => 22346, 14140 => 33459, 14141 => 26041, 14142 => 32938,
-14143 => 25151, 14144 => 38450, 14145 => 22952, 14146 => 20223, 14147 => 35775,
-14148 => 32442, 14149 => 25918, 14150 => 33778, 14151 => 38750, 14152 => 21857,
-14153 => 39134, 14154 => 32933, 14155 => 21290, 14156 => 35837, 14157 => 21536,
-14158 => 32954, 14159 => 24223, 14160 => 27832, 14161 => 36153, 14162 => 33452,
-14163 => 37210, 14164 => 21545, 14165 => 27675, 14166 => 20998, 14167 => 32439,
-14168 => 22367, 14169 => 28954, 14170 => 27774, 14171 => 31881, 14172 => 22859,
-14173 => 20221, 14174 => 24575, 14175 => 24868, 14176 => 31914, 14177 => 20016,
-14178 => 23553, 14179 => 26539, 14180 => 34562, 14181 => 23792, 14182 => 38155,
-14183 => 39118, 14184 => 30127, 14185 => 28925, 14186 => 36898, 14187 => 20911,
-14188 => 32541, 14189 => 35773, 14190 => 22857, 14191 => 20964, 14192 => 20315,
-14193 => 21542, 14194 => 22827, 14195 => 25975, 14196 => 32932, 14197 => 23413,
-14198 => 25206, 14199 => 25282, 14200 => 36752, 14201 => 24133, 14202 => 27679,
-14203 => 31526, 14204 => 20239, 14205 => 20440, 14206 => 26381, 14369 => 28014,
-14370 => 28074, 14371 => 31119, 14372 => 34993, 14373 => 24343, 14374 => 29995,
-14375 => 25242, 14376 => 36741, 14377 => 20463, 14378 => 37340, 14379 => 26023,
-14380 => 33071, 14381 => 33105, 14382 => 24220, 14383 => 33104, 14384 => 36212,
-14385 => 21103, 14386 => 35206, 14387 => 36171, 14388 => 22797, 14389 => 20613,
-14390 => 20184, 14391 => 38428, 14392 => 29238, 14393 => 33145, 14394 => 36127,
-14395 => 23500, 14396 => 35747, 14397 => 38468, 14398 => 22919, 14399 => 32538,
-14400 => 21648, 14401 => 22134, 14402 => 22030, 14403 => 35813, 14404 => 25913,
-14405 => 27010, 14406 => 38041, 14407 => 30422, 14408 => 28297, 14409 => 24178,
-14410 => 29976, 14411 => 26438, 14412 => 26577, 14413 => 31487, 14414 => 32925,
-14415 => 36214, 14416 => 24863, 14417 => 31174, 14418 => 25954, 14419 => 36195,
-14420 => 20872, 14421 => 21018, 14422 => 38050, 14423 => 32568, 14424 => 32923,
-14425 => 32434, 14426 => 23703, 14427 => 28207, 14428 => 26464, 14429 => 31705,
-14430 => 30347, 14431 => 39640, 14432 => 33167, 14433 => 32660, 14434 => 31957,
-14435 => 25630, 14436 => 38224, 14437 => 31295, 14438 => 21578, 14439 => 21733,
-14440 => 27468, 14441 => 25601, 14442 => 25096, 14443 => 40509, 14444 => 33011,
-14445 => 30105, 14446 => 21106, 14447 => 38761, 14448 => 33883, 14449 => 26684,
-14450 => 34532, 14451 => 38401, 14452 => 38548, 14453 => 38124, 14454 => 20010,
-14455 => 21508, 14456 => 32473, 14457 => 26681, 14458 => 36319, 14459 => 32789,
-14460 => 26356, 14461 => 24218, 14462 => 32697, 14625 => 22466, 14626 => 32831,
-14627 => 26775, 14628 => 24037, 14629 => 25915, 14630 => 21151, 14631 => 24685,
-14632 => 40858, 14633 => 20379, 14634 => 36524, 14635 => 20844, 14636 => 23467,
-14637 => 24339, 14638 => 24041, 14639 => 27742, 14640 => 25329, 14641 => 36129,
-14642 => 20849, 14643 => 38057, 14644 => 21246, 14645 => 27807, 14646 => 33503,
-14647 => 29399, 14648 => 22434, 14649 => 26500, 14650 => 36141, 14651 => 22815,
-14652 => 36764, 14653 => 33735, 14654 => 21653, 14655 => 31629, 14656 => 20272,
-14657 => 27837, 14658 => 23396, 14659 => 22993, 14660 => 40723, 14661 => 21476,
-14662 => 34506, 14663 => 39592, 14664 => 35895, 14665 => 32929, 14666 => 25925,
-14667 => 39038, 14668 => 22266, 14669 => 38599, 14670 => 21038, 14671 => 29916,
-14672 => 21072, 14673 => 23521, 14674 => 25346, 14675 => 35074, 14676 => 20054,
-14677 => 25296, 14678 => 24618, 14679 => 26874, 14680 => 20851, 14681 => 23448,
-14682 => 20896, 14683 => 35266, 14684 => 31649, 14685 => 39302, 14686 => 32592,
-14687 => 24815, 14688 => 28748, 14689 => 36143, 14690 => 20809, 14691 => 24191,
-14692 => 36891, 14693 => 29808, 14694 => 35268, 14695 => 22317, 14696 => 30789,
-14697 => 24402, 14698 => 40863, 14699 => 38394, 14700 => 36712, 14701 => 39740,
-14702 => 35809, 14703 => 30328, 14704 => 26690, 14705 => 26588, 14706 => 36330,
-14707 => 36149, 14708 => 21053, 14709 => 36746, 14710 => 28378, 14711 => 26829,
-14712 => 38149, 14713 => 37101, 14714 => 22269, 14715 => 26524, 14716 => 35065,
-14717 => 36807, 14718 => 21704, 14881 => 39608, 14882 => 23401, 14883 => 28023,
-14884 => 27686, 14885 => 20133, 14886 => 23475, 14887 => 39559, 14888 => 37219,
-14889 => 25000, 14890 => 37039, 14891 => 38889, 14892 => 21547, 14893 => 28085,
-14894 => 23506, 14895 => 20989, 14896 => 21898, 14897 => 32597, 14898 => 32752,
-14899 => 25788, 14900 => 25421, 14901 => 26097, 14902 => 25022, 14903 => 24717,
-14904 => 28938, 14905 => 27735, 14906 => 27721, 14907 => 22831, 14908 => 26477,
-14909 => 33322, 14910 => 22741, 14911 => 22158, 14912 => 35946, 14913 => 27627,
-14914 => 37085, 14915 => 22909, 14916 => 32791, 14917 => 21495, 14918 => 28009,
-14919 => 21621, 14920 => 21917, 14921 => 33655, 14922 => 33743, 14923 => 26680,
-14924 => 31166, 14925 => 21644, 14926 => 20309, 14927 => 21512, 14928 => 30418,
-14929 => 35977, 14930 => 38402, 14931 => 27827, 14932 => 28088, 14933 => 36203,
-14934 => 35088, 14935 => 40548, 14936 => 36154, 14937 => 22079, 14938 => 40657,
-14939 => 30165, 14940 => 24456, 14941 => 29408, 14942 => 24680, 14943 => 21756,
-14944 => 20136, 14945 => 27178, 14946 => 34913, 14947 => 24658, 14948 => 36720,
-14949 => 21700, 14950 => 28888, 14951 => 34425, 14952 => 40511, 14953 => 27946,
-14954 => 23439, 14955 => 24344, 14956 => 32418, 14957 => 21897, 14958 => 20399,
-14959 => 29492, 14960 => 21564, 14961 => 21402, 14962 => 20505, 14963 => 21518,
-14964 => 21628, 14965 => 20046, 14966 => 24573, 14967 => 29786, 14968 => 22774,
-14969 => 33899, 14970 => 32993, 14971 => 34676, 14972 => 29392, 14973 => 31946,
-14974 => 28246, 15137 => 24359, 15138 => 34382, 15139 => 21804, 15140 => 25252,
-15141 => 20114, 15142 => 27818, 15143 => 25143, 15144 => 33457, 15145 => 21719,
-15146 => 21326, 15147 => 29502, 15148 => 28369, 15149 => 30011, 15150 => 21010,
-15151 => 21270, 15152 => 35805, 15153 => 27088, 15154 => 24458, 15155 => 24576,
-15156 => 28142, 15157 => 22351, 15158 => 27426, 15159 => 29615, 15160 => 26707,
-15161 => 36824, 15162 => 32531, 15163 => 25442, 15164 => 24739, 15165 => 21796,
-15166 => 30186, 15167 => 35938, 15168 => 28949, 15169 => 28067, 15170 => 23462,
-15171 => 24187, 15172 => 33618, 15173 => 24908, 15174 => 40644, 15175 => 30970,
-15176 => 34647, 15177 => 31783, 15178 => 30343, 15179 => 20976, 15180 => 24822,
-15181 => 29004, 15182 => 26179, 15183 => 24140, 15184 => 24653, 15185 => 35854,
-15186 => 28784, 15187 => 25381, 15188 => 36745, 15189 => 24509, 15190 => 24674,
-15191 => 34516, 15192 => 22238, 15193 => 27585, 15194 => 24724, 15195 => 24935,
-15196 => 21321, 15197 => 24800, 15198 => 26214, 15199 => 36159, 15200 => 31229,
-15201 => 20250, 15202 => 28905, 15203 => 27719, 15204 => 35763, 15205 => 35826,
-15206 => 32472, 15207 => 33636, 15208 => 26127, 15209 => 23130, 15210 => 39746,
-15211 => 27985, 15212 => 28151, 15213 => 35905, 15214 => 27963, 15215 => 20249,
-15216 => 28779, 15217 => 33719, 15218 => 25110, 15219 => 24785, 15220 => 38669,
-15221 => 36135, 15222 => 31096, 15223 => 20987, 15224 => 22334, 15225 => 22522,
-15226 => 26426, 15227 => 30072, 15228 => 31293, 15229 => 31215, 15230 => 31637,
-15393 => 32908, 15394 => 39269, 15395 => 36857, 15396 => 28608, 15397 => 35749,
-15398 => 40481, 15399 => 23020, 15400 => 32489, 15401 => 32521, 15402 => 21513,
-15403 => 26497, 15404 => 26840, 15405 => 36753, 15406 => 31821, 15407 => 38598,
-15408 => 21450, 15409 => 24613, 15410 => 30142, 15411 => 27762, 15412 => 21363,
-15413 => 23241, 15414 => 32423, 15415 => 25380, 15416 => 20960, 15417 => 33034,
-15418 => 24049, 15419 => 34015, 15420 => 25216, 15421 => 20864, 15422 => 23395,
-15423 => 20238, 15424 => 31085, 15425 => 21058, 15426 => 24760, 15427 => 27982,
-15428 => 23492, 15429 => 23490, 15430 => 35745, 15431 => 35760, 15432 => 26082,
-15433 => 24524, 15434 => 38469, 15435 => 22931, 15436 => 32487, 15437 => 32426,
-15438 => 22025, 15439 => 26551, 15440 => 22841, 15441 => 20339, 15442 => 23478,
-15443 => 21152, 15444 => 33626, 15445 => 39050, 15446 => 36158, 15447 => 30002,
-15448 => 38078, 15449 => 20551, 15450 => 31292, 15451 => 20215, 15452 => 26550,
-15453 => 39550, 15454 => 23233, 15455 => 27516, 15456 => 30417, 15457 => 22362,
-15458 => 23574, 15459 => 31546, 15460 => 38388, 15461 => 29006, 15462 => 20860,
-15463 => 32937, 15464 => 33392, 15465 => 22904, 15466 => 32516, 15467 => 33575,
-15468 => 26816, 15469 => 26604, 15470 => 30897, 15471 => 30839, 15472 => 25315,
-15473 => 25441, 15474 => 31616, 15475 => 20461, 15476 => 21098, 15477 => 20943,
-15478 => 33616, 15479 => 27099, 15480 => 37492, 15481 => 36341, 15482 => 36145,
-15483 => 35265, 15484 => 38190, 15485 => 31661, 15486 => 20214, 15649 => 20581,
-15650 => 33328, 15651 => 21073, 15652 => 39279, 15653 => 28176, 15654 => 28293,
-15655 => 28071, 15656 => 24314, 15657 => 20725, 15658 => 23004, 15659 => 23558,
-15660 => 27974, 15661 => 27743, 15662 => 30086, 15663 => 33931, 15664 => 26728,
-15665 => 22870, 15666 => 35762, 15667 => 21280, 15668 => 37233, 15669 => 38477,
-15670 => 34121, 15671 => 26898, 15672 => 30977, 15673 => 28966, 15674 => 33014,
-15675 => 20132, 15676 => 37066, 15677 => 27975, 15678 => 39556, 15679 => 23047,
-15680 => 22204, 15681 => 25605, 15682 => 38128, 15683 => 30699, 15684 => 20389,
-15685 => 33050, 15686 => 29409, 15687 => 35282, 15688 => 39290, 15689 => 32564,
-15690 => 32478, 15691 => 21119, 15692 => 25945, 15693 => 37237, 15694 => 36735,
-15695 => 36739, 15696 => 21483, 15697 => 31382, 15698 => 25581, 15699 => 25509,
-15700 => 30342, 15701 => 31224, 15702 => 34903, 15703 => 38454, 15704 => 25130,
-15705 => 21163, 15706 => 33410, 15707 => 26708, 15708 => 26480, 15709 => 25463,
-15710 => 30571, 15711 => 31469, 15712 => 27905, 15713 => 32467, 15714 => 35299,
-15715 => 22992, 15716 => 25106, 15717 => 34249, 15718 => 33445, 15719 => 30028,
-15720 => 20511, 15721 => 20171, 15722 => 30117, 15723 => 35819, 15724 => 23626,
-15725 => 24062, 15726 => 31563, 15727 => 26020, 15728 => 37329, 15729 => 20170,
-15730 => 27941, 15731 => 35167, 15732 => 32039, 15733 => 38182, 15734 => 20165,
-15735 => 35880, 15736 => 36827, 15737 => 38771, 15738 => 26187, 15739 => 31105,
-15740 => 36817, 15741 => 28908, 15742 => 28024, 15905 => 23613, 15906 => 21170,
-15907 => 33606, 15908 => 20834, 15909 => 33550, 15910 => 30555, 15911 => 26230,
-15912 => 40120, 15913 => 20140, 15914 => 24778, 15915 => 31934, 15916 => 31923,
-15917 => 32463, 15918 => 20117, 15919 => 35686, 15920 => 26223, 15921 => 39048,
-15922 => 38745, 15923 => 22659, 15924 => 25964, 15925 => 38236, 15926 => 24452,
-15927 => 30153, 15928 => 38742, 15929 => 31455, 15930 => 31454, 15931 => 20928,
-15932 => 28847, 15933 => 31384, 15934 => 25578, 15935 => 31350, 15936 => 32416,
-15937 => 29590, 15938 => 38893, 15939 => 20037, 15940 => 28792, 15941 => 20061,
-15942 => 37202, 15943 => 21417, 15944 => 25937, 15945 => 26087, 15946 => 33276,
-15947 => 33285, 15948 => 21646, 15949 => 23601, 15950 => 30106, 15951 => 38816,
-15952 => 25304, 15953 => 29401, 15954 => 30141, 15955 => 23621, 15956 => 39545,
-15957 => 33738, 15958 => 23616, 15959 => 21632, 15960 => 30697, 15961 => 20030,
-15962 => 27822, 15963 => 32858, 15964 => 25298, 15965 => 25454, 15966 => 24040,
-15967 => 20855, 15968 => 36317, 15969 => 36382, 15970 => 38191, 15971 => 20465,
-15972 => 21477, 15973 => 24807, 15974 => 28844, 15975 => 21095, 15976 => 25424,
-15977 => 40515, 15978 => 23071, 15979 => 20518, 15980 => 30519, 15981 => 21367,
-15982 => 32482, 15983 => 25733, 15984 => 25899, 15985 => 25225, 15986 => 25496,
-15987 => 20500, 15988 => 29237, 15989 => 35273, 15990 => 20915, 15991 => 35776,
-15992 => 32477, 15993 => 22343, 15994 => 33740, 15995 => 38055, 15996 => 20891,
-15997 => 21531, 15998 => 23803, 16161 => 20426, 16162 => 31459, 16163 => 27994,
-16164 => 37089, 16165 => 39567, 16166 => 21888, 16167 => 21654, 16168 => 21345,
-16169 => 21679, 16170 => 24320, 16171 => 25577, 16172 => 26999, 16173 => 20975,
-16174 => 24936, 16175 => 21002, 16176 => 22570, 16177 => 21208, 16178 => 22350,
-16179 => 30733, 16180 => 30475, 16181 => 24247, 16182 => 24951, 16183 => 31968,
-16184 => 25179, 16185 => 25239, 16186 => 20130, 16187 => 28821, 16188 => 32771,
-16189 => 25335, 16190 => 28900, 16191 => 38752, 16192 => 22391, 16193 => 33499,
-16194 => 26607, 16195 => 26869, 16196 => 30933, 16197 => 39063, 16198 => 31185,
-16199 => 22771, 16200 => 21683, 16201 => 21487, 16202 => 28212, 16203 => 20811,
-16204 => 21051, 16205 => 23458, 16206 => 35838, 16207 => 32943, 16208 => 21827,
-16209 => 22438, 16210 => 24691, 16211 => 22353, 16212 => 21549, 16213 => 31354,
-16214 => 24656, 16215 => 23380, 16216 => 25511, 16217 => 25248, 16218 => 21475,
-16219 => 25187, 16220 => 23495, 16221 => 26543, 16222 => 21741, 16223 => 31391,
-16224 => 33510, 16225 => 37239, 16226 => 24211, 16227 => 35044, 16228 => 22840,
-16229 => 22446, 16230 => 25358, 16231 => 36328, 16232 => 33007, 16233 => 22359,
-16234 => 31607, 16235 => 20393, 16236 => 24555, 16237 => 23485, 16238 => 27454,
-16239 => 21281, 16240 => 31568, 16241 => 29378, 16242 => 26694, 16243 => 30719,
-16244 => 30518, 16245 => 26103, 16246 => 20917, 16247 => 20111, 16248 => 30420,
-16249 => 23743, 16250 => 31397, 16251 => 33909, 16252 => 22862, 16253 => 39745,
-16254 => 20608, 16417 => 39304, 16418 => 24871, 16419 => 28291, 16420 => 22372,
-16421 => 26118, 16422 => 25414, 16423 => 22256, 16424 => 25324, 16425 => 25193,
-16426 => 24275, 16427 => 38420, 16428 => 22403, 16429 => 25289, 16430 => 21895,
-16431 => 34593, 16432 => 33098, 16433 => 36771, 16434 => 21862, 16435 => 33713,
-16436 => 26469, 16437 => 36182, 16438 => 34013, 16439 => 23146, 16440 => 26639,
-16441 => 25318, 16442 => 31726, 16443 => 38417, 16444 => 20848, 16445 => 28572,
-16446 => 35888, 16447 => 25597, 16448 => 35272, 16449 => 25042, 16450 => 32518,
-16451 => 28866, 16452 => 28389, 16453 => 29701, 16454 => 27028, 16455 => 29436,
-16456 => 24266, 16457 => 37070, 16458 => 26391, 16459 => 28010, 16460 => 25438,
-16461 => 21171, 16462 => 29282, 16463 => 32769, 16464 => 20332, 16465 => 23013,
-16466 => 37226, 16467 => 28889, 16468 => 28061, 16469 => 21202, 16470 => 20048,
-16471 => 38647, 16472 => 38253, 16473 => 34174, 16474 => 30922, 16475 => 32047,
-16476 => 20769, 16477 => 22418, 16478 => 25794, 16479 => 32907, 16480 => 31867,
-16481 => 27882, 16482 => 26865, 16483 => 26974, 16484 => 20919, 16485 => 21400,
-16486 => 26792, 16487 => 29313, 16488 => 40654, 16489 => 31729, 16490 => 29432,
-16491 => 31163, 16492 => 28435, 16493 => 29702, 16494 => 26446, 16495 => 37324,
-16496 => 40100, 16497 => 31036, 16498 => 33673, 16499 => 33620, 16500 => 21519,
-16501 => 26647, 16502 => 20029, 16503 => 21385, 16504 => 21169, 16505 => 30782,
-16506 => 21382, 16507 => 21033, 16508 => 20616, 16509 => 20363, 16510 => 20432,
-16673 => 30178, 16674 => 31435, 16675 => 31890, 16676 => 27813, 16677 => 38582,
-16678 => 21147, 16679 => 29827, 16680 => 21737, 16681 => 20457, 16682 => 32852,
-16683 => 33714, 16684 => 36830, 16685 => 38256, 16686 => 24265, 16687 => 24604,
-16688 => 28063, 16689 => 24088, 16690 => 25947, 16691 => 33080, 16692 => 38142,
-16693 => 24651, 16694 => 28860, 16695 => 32451, 16696 => 31918, 16697 => 20937,
-16698 => 26753, 16699 => 31921, 16700 => 33391, 16701 => 20004, 16702 => 36742,
-16703 => 37327, 16704 => 26238, 16705 => 20142, 16706 => 35845, 16707 => 25769,
-16708 => 32842, 16709 => 20698, 16710 => 30103, 16711 => 29134, 16712 => 23525,
-16713 => 36797, 16714 => 28518, 16715 => 20102, 16716 => 25730, 16717 => 38243,
-16718 => 24278, 16719 => 26009, 16720 => 21015, 16721 => 35010, 16722 => 28872,
-16723 => 21155, 16724 => 29454, 16725 => 29747, 16726 => 26519, 16727 => 30967,
-16728 => 38678, 16729 => 20020, 16730 => 37051, 16731 => 40158, 16732 => 28107,
-16733 => 20955, 16734 => 36161, 16735 => 21533, 16736 => 25294, 16737 => 29618,
-16738 => 33777, 16739 => 38646, 16740 => 40836, 16741 => 38083, 16742 => 20278,
-16743 => 32666, 16744 => 20940, 16745 => 28789, 16746 => 38517, 16747 => 23725,
-16748 => 39046, 16749 => 21478, 16750 => 20196, 16751 => 28316, 16752 => 29705,
-16753 => 27060, 16754 => 30827, 16755 => 39311, 16756 => 30041, 16757 => 21016,
-16758 => 30244, 16759 => 27969, 16760 => 26611, 16761 => 20845, 16762 => 40857,
-16763 => 32843, 16764 => 21657, 16765 => 31548, 16766 => 31423, 16929 => 38534,
-16930 => 22404, 16931 => 25314, 16932 => 38471, 16933 => 27004, 16934 => 23044,
-16935 => 25602, 16936 => 31699, 16937 => 28431, 16938 => 38475, 16939 => 33446,
-16940 => 21346, 16941 => 39045, 16942 => 24208, 16943 => 28809, 16944 => 25523,
-16945 => 21348, 16946 => 34383, 16947 => 40065, 16948 => 40595, 16949 => 30860,
-16950 => 38706, 16951 => 36335, 16952 => 36162, 16953 => 40575, 16954 => 28510,
-16955 => 31108, 16956 => 24405, 16957 => 38470, 16958 => 25134, 16959 => 39540,
-16960 => 21525, 16961 => 38109, 16962 => 20387, 16963 => 26053, 16964 => 23653,
-16965 => 23649, 16966 => 32533, 16967 => 34385, 16968 => 27695, 16969 => 24459,
-16970 => 29575, 16971 => 28388, 16972 => 32511, 16973 => 23782, 16974 => 25371,
-16975 => 23402, 16976 => 28390, 16977 => 21365, 16978 => 20081, 16979 => 25504,
-16980 => 30053, 16981 => 25249, 16982 => 36718, 16983 => 20262, 16984 => 20177,
-16985 => 27814, 16986 => 32438, 16987 => 35770, 16988 => 33821, 16989 => 34746,
-16990 => 32599, 16991 => 36923, 16992 => 38179, 16993 => 31657, 16994 => 39585,
-16995 => 35064, 16996 => 33853, 16997 => 27931, 16998 => 39558, 16999 => 32476,
-17000 => 22920, 17001 => 40635, 17002 => 29595, 17003 => 30721, 17004 => 34434,
-17005 => 39532, 17006 => 39554, 17007 => 22043, 17008 => 21527, 17009 => 22475,
-17010 => 20080, 17011 => 40614, 17012 => 21334, 17013 => 36808, 17014 => 33033,
-17015 => 30610, 17016 => 39314, 17017 => 34542, 17018 => 28385, 17019 => 34067,
-17020 => 26364, 17021 => 24930, 17022 => 28459, 17185 => 35881, 17186 => 33426,
-17187 => 33579, 17188 => 30450, 17189 => 27667, 17190 => 24537, 17191 => 33725,
-17192 => 29483, 17193 => 33541, 17194 => 38170, 17195 => 27611, 17196 => 30683,
-17197 => 38086, 17198 => 21359, 17199 => 33538, 17200 => 20882, 17201 => 24125,
-17202 => 35980, 17203 => 36152, 17204 => 20040, 17205 => 29611, 17206 => 26522,
-17207 => 26757, 17208 => 37238, 17209 => 38665, 17210 => 29028, 17211 => 27809,
-17212 => 30473, 17213 => 23186, 17214 => 38209, 17215 => 27599, 17216 => 32654,
-17217 => 26151, 17218 => 23504, 17219 => 22969, 17220 => 23194, 17221 => 38376,
-17222 => 38391, 17223 => 20204, 17224 => 33804, 17225 => 33945, 17226 => 27308,
-17227 => 30431, 17228 => 38192, 17229 => 29467, 17230 => 26790, 17231 => 23391,
-17232 => 30511, 17233 => 37274, 17234 => 38753, 17235 => 31964, 17236 => 36855,
-17237 => 35868, 17238 => 24357, 17239 => 31859, 17240 => 31192, 17241 => 35269,
-17242 => 27852, 17243 => 34588, 17244 => 23494, 17245 => 24130, 17246 => 26825,
-17247 => 30496, 17248 => 32501, 17249 => 20885, 17250 => 20813, 17251 => 21193,
-17252 => 23081, 17253 => 32517, 17254 => 38754, 17255 => 33495, 17256 => 25551,
-17257 => 30596, 17258 => 34256, 17259 => 31186, 17260 => 28218, 17261 => 24217,
-17262 => 22937, 17263 => 34065, 17264 => 28781, 17265 => 27665, 17266 => 25279,
-17267 => 30399, 17268 => 25935, 17269 => 24751, 17270 => 38397, 17271 => 26126,
-17272 => 34719, 17273 => 40483, 17274 => 38125, 17275 => 21517, 17276 => 21629,
-17277 => 35884, 17278 => 25720, 17441 => 25721, 17442 => 34321, 17443 => 27169,
-17444 => 33180, 17445 => 30952, 17446 => 25705, 17447 => 39764, 17448 => 25273,
-17449 => 26411, 17450 => 33707, 17451 => 22696, 17452 => 40664, 17453 => 27819,
-17454 => 28448, 17455 => 23518, 17456 => 38476, 17457 => 35851, 17458 => 29279,
-17459 => 26576, 17460 => 25287, 17461 => 29281, 17462 => 20137, 17463 => 22982,
-17464 => 27597, 17465 => 22675, 17466 => 26286, 17467 => 24149, 17468 => 21215,
-17469 => 24917, 17470 => 26408, 17471 => 30446, 17472 => 30566, 17473 => 29287,
-17474 => 31302, 17475 => 25343, 17476 => 21738, 17477 => 21584, 17478 => 38048,
-17479 => 37027, 17480 => 23068, 17481 => 32435, 17482 => 27670, 17483 => 20035,
-17484 => 22902, 17485 => 32784, 17486 => 22856, 17487 => 21335, 17488 => 30007,
-17489 => 38590, 17490 => 22218, 17491 => 25376, 17492 => 33041, 17493 => 24700,
-17494 => 38393, 17495 => 28118, 17496 => 21602, 17497 => 39297, 17498 => 20869,
-17499 => 23273, 17500 => 33021, 17501 => 22958, 17502 => 38675, 17503 => 20522,
-17504 => 27877, 17505 => 23612, 17506 => 25311, 17507 => 20320, 17508 => 21311,
-17509 => 33147, 17510 => 36870, 17511 => 28346, 17512 => 34091, 17513 => 25288,
-17514 => 24180, 17515 => 30910, 17516 => 25781, 17517 => 25467, 17518 => 24565,
-17519 => 23064, 17520 => 37247, 17521 => 40479, 17522 => 23615, 17523 => 25423,
-17524 => 32834, 17525 => 23421, 17526 => 21870, 17527 => 38218, 17528 => 38221,
-17529 => 28037, 17530 => 24744, 17531 => 26592, 17532 => 29406, 17533 => 20957,
-17534 => 23425, 17697 => 25319, 17698 => 27870, 17699 => 29275, 17700 => 25197,
-17701 => 38062, 17702 => 32445, 17703 => 33043, 17704 => 27987, 17705 => 20892,
-17706 => 24324, 17707 => 22900, 17708 => 21162, 17709 => 24594, 17710 => 22899,
-17711 => 26262, 17712 => 34384, 17713 => 30111, 17714 => 25386, 17715 => 25062,
-17716 => 31983, 17717 => 35834, 17718 => 21734, 17719 => 27431, 17720 => 40485,
-17721 => 27572, 17722 => 34261, 17723 => 21589, 17724 => 20598, 17725 => 27812,
-17726 => 21866, 17727 => 36276, 17728 => 29228, 17729 => 24085, 17730 => 24597,
-17731 => 29750, 17732 => 25293, 17733 => 25490, 17734 => 29260, 17735 => 24472,
-17736 => 28227, 17737 => 27966, 17738 => 25856, 17739 => 28504, 17740 => 30424,
-17741 => 30928, 17742 => 30460, 17743 => 30036, 17744 => 21028, 17745 => 21467,
-17746 => 20051, 17747 => 24222, 17748 => 26049, 17749 => 32810, 17750 => 32982,
-17751 => 25243, 17752 => 21638, 17753 => 21032, 17754 => 28846, 17755 => 34957,
-17756 => 36305, 17757 => 27873, 17758 => 21624, 17759 => 32986, 17760 => 22521,
-17761 => 35060, 17762 => 36180, 17763 => 38506, 17764 => 37197, 17765 => 20329,
-17766 => 27803, 17767 => 21943, 17768 => 30406, 17769 => 30768, 17770 => 25256,
-17771 => 28921, 17772 => 28558, 17773 => 24429, 17774 => 34028, 17775 => 26842,
-17776 => 30844, 17777 => 31735, 17778 => 33192, 17779 => 26379, 17780 => 40527,
-17781 => 25447, 17782 => 30896, 17783 => 22383, 17784 => 30738, 17785 => 38713,
-17786 => 25209, 17787 => 25259, 17788 => 21128, 17789 => 29749, 17790 => 27607,
-17953 => 21860, 17954 => 33086, 17955 => 30130, 17956 => 30382, 17957 => 21305,
-17958 => 30174, 17959 => 20731, 17960 => 23617, 17961 => 35692, 17962 => 31687,
-17963 => 20559, 17964 => 29255, 17965 => 39575, 17966 => 39128, 17967 => 28418,
-17968 => 29922, 17969 => 31080, 17970 => 25735, 17971 => 30629, 17972 => 25340,
-17973 => 39057, 17974 => 36139, 17975 => 21697, 17976 => 32856, 17977 => 20050,
-17978 => 22378, 17979 => 33529, 17980 => 33805, 17981 => 24179, 17982 => 20973,
-17983 => 29942, 17984 => 35780, 17985 => 23631, 17986 => 22369, 17987 => 27900,
-17988 => 39047, 17989 => 23110, 17990 => 30772, 17991 => 39748, 17992 => 36843,
-17993 => 31893, 17994 => 21078, 17995 => 25169, 17996 => 38138, 17997 => 20166,
-17998 => 33670, 17999 => 33889, 18000 => 33769, 18001 => 33970, 18002 => 22484,
-18003 => 26420, 18004 => 22275, 18005 => 26222, 18006 => 28006, 18007 => 35889,
-18008 => 26333, 18009 => 28689, 18010 => 26399, 18011 => 27450, 18012 => 26646,
-18013 => 25114, 18014 => 22971, 18015 => 19971, 18016 => 20932, 18017 => 28422,
-18018 => 26578, 18019 => 27791, 18020 => 20854, 18021 => 26827, 18022 => 22855,
-18023 => 27495, 18024 => 30054, 18025 => 23822, 18026 => 33040, 18027 => 40784,
-18028 => 26071, 18029 => 31048, 18030 => 31041, 18031 => 39569, 18032 => 36215,
-18033 => 23682, 18034 => 20062, 18035 => 20225, 18036 => 21551, 18037 => 22865,
-18038 => 30732, 18039 => 22120, 18040 => 27668, 18041 => 36804, 18042 => 24323,
-18043 => 27773, 18044 => 27875, 18045 => 35755, 18046 => 25488, 18209 => 24688,
-18210 => 27965, 18211 => 29301, 18212 => 25190, 18213 => 38030, 18214 => 38085,
-18215 => 21315, 18216 => 36801, 18217 => 31614, 18218 => 20191, 18219 => 35878,
-18220 => 20094, 18221 => 40660, 18222 => 38065, 18223 => 38067, 18224 => 21069,
-18225 => 28508, 18226 => 36963, 18227 => 27973, 18228 => 35892, 18229 => 22545,
-18230 => 23884, 18231 => 27424, 18232 => 27465, 18233 => 26538, 18234 => 21595,
-18235 => 33108, 18236 => 32652, 18237 => 22681, 18238 => 34103, 18239 => 24378,
-18240 => 25250, 18241 => 27207, 18242 => 38201, 18243 => 25970, 18244 => 24708,
-18245 => 26725, 18246 => 30631, 18247 => 20052, 18248 => 20392, 18249 => 24039,
-18250 => 38808, 18251 => 25772, 18252 => 32728, 18253 => 23789, 18254 => 20431,
-18255 => 31373, 18256 => 20999, 18257 => 33540, 18258 => 19988, 18259 => 24623,
-18260 => 31363, 18261 => 38054, 18262 => 20405, 18263 => 20146, 18264 => 31206,
-18265 => 29748, 18266 => 21220, 18267 => 33465, 18268 => 25810, 18269 => 31165,
-18270 => 23517, 18271 => 27777, 18272 => 38738, 18273 => 36731, 18274 => 27682,
-18275 => 20542, 18276 => 21375, 18277 => 28165, 18278 => 25806, 18279 => 26228,
-18280 => 27696, 18281 => 24773, 18282 => 39031, 18283 => 35831, 18284 => 24198,
-18285 => 29756, 18286 => 31351, 18287 => 31179, 18288 => 19992, 18289 => 37041,
-18290 => 29699, 18291 => 27714, 18292 => 22234, 18293 => 37195, 18294 => 27845,
-18295 => 36235, 18296 => 21306, 18297 => 34502, 18298 => 26354, 18299 => 36527,
-18300 => 23624, 18301 => 39537, 18302 => 28192, 18465 => 21462, 18466 => 23094,
-18467 => 40843, 18468 => 36259, 18469 => 21435, 18470 => 22280, 18471 => 39079,
-18472 => 26435, 18473 => 37275, 18474 => 27849, 18475 => 20840, 18476 => 30154,
-18477 => 25331, 18478 => 29356, 18479 => 21048, 18480 => 21149, 18481 => 32570,
-18482 => 28820, 18483 => 30264, 18484 => 21364, 18485 => 40522, 18486 => 27063,
-18487 => 30830, 18488 => 38592, 18489 => 35033, 18490 => 32676, 18491 => 28982,
-18492 => 29123, 18493 => 20873, 18494 => 26579, 18495 => 29924, 18496 => 22756,
-18497 => 25880, 18498 => 22199, 18499 => 35753, 18500 => 39286, 18501 => 25200,
-18502 => 32469, 18503 => 24825, 18504 => 28909, 18505 => 22764, 18506 => 20161,
-18507 => 20154, 18508 => 24525, 18509 => 38887, 18510 => 20219, 18511 => 35748,
-18512 => 20995, 18513 => 22922, 18514 => 32427, 18515 => 25172, 18516 => 20173,
-18517 => 26085, 18518 => 25102, 18519 => 33592, 18520 => 33993, 18521 => 33635,
-18522 => 34701, 18523 => 29076, 18524 => 28342, 18525 => 23481, 18526 => 32466,
-18527 => 20887, 18528 => 25545, 18529 => 26580, 18530 => 32905, 18531 => 33593,
-18532 => 34837, 18533 => 20754, 18534 => 23418, 18535 => 22914, 18536 => 36785,
-18537 => 20083, 18538 => 27741, 18539 => 20837, 18540 => 35109, 18541 => 36719,
-18542 => 38446, 18543 => 34122, 18544 => 29790, 18545 => 38160, 18546 => 38384,
-18547 => 28070, 18548 => 33509, 18549 => 24369, 18550 => 25746, 18551 => 27922,
-18552 => 33832, 18553 => 33134, 18554 => 40131, 18555 => 22622, 18556 => 36187,
-18557 => 19977, 18558 => 21441, 18721 => 20254, 18722 => 25955, 18723 => 26705,
-18724 => 21971, 18725 => 20007, 18726 => 25620, 18727 => 39578, 18728 => 25195,
-18729 => 23234, 18730 => 29791, 18731 => 33394, 18732 => 28073, 18733 => 26862,
-18734 => 20711, 18735 => 33678, 18736 => 30722, 18737 => 26432, 18738 => 21049,
-18739 => 27801, 18740 => 32433, 18741 => 20667, 18742 => 21861, 18743 => 29022,
-18744 => 31579, 18745 => 26194, 18746 => 29642, 18747 => 33515, 18748 => 26441,
-18749 => 23665, 18750 => 21024, 18751 => 29053, 18752 => 34923, 18753 => 38378,
-18754 => 38485, 18755 => 25797, 18756 => 36193, 18757 => 33203, 18758 => 21892,
-18759 => 27733, 18760 => 25159, 18761 => 32558, 18762 => 22674, 18763 => 20260,
-18764 => 21830, 18765 => 36175, 18766 => 26188, 18767 => 19978, 18768 => 23578,
-18769 => 35059, 18770 => 26786, 18771 => 25422, 18772 => 31245, 18773 => 28903,
-18774 => 33421, 18775 => 21242, 18776 => 38902, 18777 => 23569, 18778 => 21736,
-18779 => 37045, 18780 => 32461, 18781 => 22882, 18782 => 36170, 18783 => 34503,
-18784 => 33292, 18785 => 33293, 18786 => 36198, 18787 => 25668, 18788 => 23556,
-18789 => 24913, 18790 => 28041, 18791 => 31038, 18792 => 35774, 18793 => 30775,
-18794 => 30003, 18795 => 21627, 18796 => 20280, 18797 => 36523, 18798 => 28145,
-18799 => 23072, 18800 => 32453, 18801 => 31070, 18802 => 27784, 18803 => 23457,
-18804 => 23158, 18805 => 29978, 18806 => 32958, 18807 => 24910, 18808 => 28183,
-18809 => 22768, 18810 => 29983, 18811 => 29989, 18812 => 29298, 18813 => 21319,
-18814 => 32499, 18977 => 30465, 18978 => 30427, 18979 => 21097, 18980 => 32988,
-18981 => 22307, 18982 => 24072, 18983 => 22833, 18984 => 29422, 18985 => 26045,
-18986 => 28287, 18987 => 35799, 18988 => 23608, 18989 => 34417, 18990 => 21313,
-18991 => 30707, 18992 => 25342, 18993 => 26102, 18994 => 20160, 18995 => 39135,
-18996 => 34432, 18997 => 23454, 18998 => 35782, 18999 => 21490, 19000 => 30690,
-19001 => 20351, 19002 => 23630, 19003 => 39542, 19004 => 22987, 19005 => 24335,
-19006 => 31034, 19007 => 22763, 19008 => 19990, 19009 => 26623, 19010 => 20107,
-19011 => 25325, 19012 => 35475, 19013 => 36893, 19014 => 21183, 19015 => 26159,
-19016 => 21980, 19017 => 22124, 19018 => 36866, 19019 => 20181, 19020 => 20365,
-19021 => 37322, 19022 => 39280, 19023 => 27663, 19024 => 24066, 19025 => 24643,
-19026 => 23460, 19027 => 35270, 19028 => 35797, 19029 => 25910, 19030 => 25163,
-19031 => 39318, 19032 => 23432, 19033 => 23551, 19034 => 25480, 19035 => 21806,
-19036 => 21463, 19037 => 30246, 19038 => 20861, 19039 => 34092, 19040 => 26530,
-19041 => 26803, 19042 => 27530, 19043 => 25234, 19044 => 36755, 19045 => 21460,
-19046 => 33298, 19047 => 28113, 19048 => 30095, 19049 => 20070, 19050 => 36174,
-19051 => 23408, 19052 => 29087, 19053 => 34223, 19054 => 26257, 19055 => 26329,
-19056 => 32626, 19057 => 34560, 19058 => 40653, 19059 => 40736, 19060 => 23646,
-19061 => 26415, 19062 => 36848, 19063 => 26641, 19064 => 26463, 19065 => 25101,
-19066 => 31446, 19067 => 22661, 19068 => 24246, 19069 => 25968, 19070 => 28465,
-19233 => 24661, 19234 => 21047, 19235 => 32781, 19236 => 25684, 19237 => 34928,
-19238 => 29993, 19239 => 24069, 19240 => 26643, 19241 => 25332, 19242 => 38684,
-19243 => 21452, 19244 => 29245, 19245 => 35841, 19246 => 27700, 19247 => 30561,
-19248 => 31246, 19249 => 21550, 19250 => 30636, 19251 => 39034, 19252 => 33308,
-19253 => 35828, 19254 => 30805, 19255 => 26388, 19256 => 28865, 19257 => 26031,
-19258 => 25749, 19259 => 22070, 19260 => 24605, 19261 => 31169, 19262 => 21496,
-19263 => 19997, 19264 => 27515, 19265 => 32902, 19266 => 23546, 19267 => 21987,
-19268 => 22235, 19269 => 20282, 19270 => 20284, 19271 => 39282, 19272 => 24051,
-19273 => 26494, 19274 => 32824, 19275 => 24578, 19276 => 39042, 19277 => 36865,
-19278 => 23435, 19279 => 35772, 19280 => 35829, 19281 => 25628, 19282 => 33368,
-19283 => 25822, 19284 => 22013, 19285 => 33487, 19286 => 37221, 19287 => 20439,
-19288 => 32032, 19289 => 36895, 19290 => 31903, 19291 => 20723, 19292 => 22609,
-19293 => 28335, 19294 => 23487, 19295 => 35785, 19296 => 32899, 19297 => 37240,
-19298 => 33948, 19299 => 31639, 19300 => 34429, 19301 => 38539, 19302 => 38543,
-19303 => 32485, 19304 => 39635, 19305 => 30862, 19306 => 23681, 19307 => 31319,
-19308 => 36930, 19309 => 38567, 19310 => 31071, 19311 => 23385, 19312 => 25439,
-19313 => 31499, 19314 => 34001, 19315 => 26797, 19316 => 21766, 19317 => 32553,
-19318 => 29712, 19319 => 32034, 19320 => 38145, 19321 => 25152, 19322 => 22604,
-19323 => 20182, 19324 => 23427, 19325 => 22905, 19326 => 22612, 19489 => 29549,
-19490 => 25374, 19491 => 36427, 19492 => 36367, 19493 => 32974, 19494 => 33492,
-19495 => 25260, 19496 => 21488, 19497 => 27888, 19498 => 37214, 19499 => 22826,
-19500 => 24577, 19501 => 27760, 19502 => 22349, 19503 => 25674, 19504 => 36138,
-19505 => 30251, 19506 => 28393, 19507 => 22363, 19508 => 27264, 19509 => 30192,
-19510 => 28525, 19511 => 35885, 19512 => 35848, 19513 => 22374, 19514 => 27631,
-19515 => 34962, 19516 => 30899, 19517 => 25506, 19518 => 21497, 19519 => 28845,
-19520 => 27748, 19521 => 22616, 19522 => 25642, 19523 => 22530, 19524 => 26848,
-19525 => 33179, 19526 => 21776, 19527 => 31958, 19528 => 20504, 19529 => 36538,
-19530 => 28108, 19531 => 36255, 19532 => 28907, 19533 => 25487, 19534 => 28059,
-19535 => 28372, 19536 => 32486, 19537 => 33796, 19538 => 26691, 19539 => 36867,
-19540 => 28120, 19541 => 38518, 19542 => 35752, 19543 => 22871, 19544 => 29305,
-19545 => 34276, 19546 => 33150, 19547 => 30140, 19548 => 35466, 19549 => 26799,
-19550 => 21076, 19551 => 36386, 19552 => 38161, 19553 => 25552, 19554 => 39064,
-19555 => 36420, 19556 => 21884, 19557 => 20307, 19558 => 26367, 19559 => 22159,
-19560 => 24789, 19561 => 28053, 19562 => 21059, 19563 => 23625, 19564 => 22825,
-19565 => 28155, 19566 => 22635, 19567 => 30000, 19568 => 29980, 19569 => 24684,
-19570 => 33300, 19571 => 33094, 19572 => 25361, 19573 => 26465, 19574 => 36834,
-19575 => 30522, 19576 => 36339, 19577 => 36148, 19578 => 38081, 19579 => 24086,
-19580 => 21381, 19581 => 21548, 19582 => 28867, 19745 => 27712, 19746 => 24311,
-19747 => 20572, 19748 => 20141, 19749 => 24237, 19750 => 25402, 19751 => 33351,
-19752 => 36890, 19753 => 26704, 19754 => 37230, 19755 => 30643, 19756 => 21516,
-19757 => 38108, 19758 => 24420, 19759 => 31461, 19760 => 26742, 19761 => 25413,
-19762 => 31570, 19763 => 32479, 19764 => 30171, 19765 => 20599, 19766 => 25237,
-19767 => 22836, 19768 => 36879, 19769 => 20984, 19770 => 31171, 19771 => 31361,
-19772 => 22270, 19773 => 24466, 19774 => 36884, 19775 => 28034, 19776 => 23648,
-19777 => 22303, 19778 => 21520, 19779 => 20820, 19780 => 28237, 19781 => 22242,
-19782 => 25512, 19783 => 39059, 19784 => 33151, 19785 => 34581, 19786 => 35114,
-19787 => 36864, 19788 => 21534, 19789 => 23663, 19790 => 33216, 19791 => 25302,
-19792 => 25176, 19793 => 33073, 19794 => 40501, 19795 => 38464, 19796 => 39534,
-19797 => 39548, 19798 => 26925, 19799 => 22949, 19800 => 25299, 19801 => 21822,
-19802 => 25366, 19803 => 21703, 19804 => 34521, 19805 => 27964, 19806 => 23043,
-19807 => 29926, 19808 => 34972, 19809 => 27498, 19810 => 22806, 19811 => 35916,
-19812 => 24367, 19813 => 28286, 19814 => 29609, 19815 => 39037, 19816 => 20024,
-19817 => 28919, 19818 => 23436, 19819 => 30871, 19820 => 25405, 19821 => 26202,
-19822 => 30358, 19823 => 24779, 19824 => 23451, 19825 => 23113, 19826 => 19975,
-19827 => 33109, 19828 => 27754, 19829 => 29579, 19830 => 20129, 19831 => 26505,
-19832 => 32593, 19833 => 24448, 19834 => 26106, 19835 => 26395, 19836 => 24536,
-19837 => 22916, 19838 => 23041, 20001 => 24013, 20002 => 24494, 20003 => 21361,
-20004 => 38886, 20005 => 36829, 20006 => 26693, 20007 => 22260, 20008 => 21807,
-20009 => 24799, 20010 => 20026, 20011 => 28493, 20012 => 32500, 20013 => 33479,
-20014 => 33806, 20015 => 22996, 20016 => 20255, 20017 => 20266, 20018 => 23614,
-20019 => 32428, 20020 => 26410, 20021 => 34074, 20022 => 21619, 20023 => 30031,
-20024 => 32963, 20025 => 21890, 20026 => 39759, 20027 => 20301, 20028 => 28205,
-20029 => 35859, 20030 => 23561, 20031 => 24944, 20032 => 21355, 20033 => 30239,
-20034 => 28201, 20035 => 34442, 20036 => 25991, 20037 => 38395, 20038 => 32441,
-20039 => 21563, 20040 => 31283, 20041 => 32010, 20042 => 38382, 20043 => 21985,
-20044 => 32705, 20045 => 29934, 20046 => 25373, 20047 => 34583, 20048 => 28065,
-20049 => 31389, 20050 => 25105, 20051 => 26017, 20052 => 21351, 20053 => 25569,
-20054 => 27779, 20055 => 24043, 20056 => 21596, 20057 => 38056, 20058 => 20044,
-20059 => 27745, 20060 => 35820, 20061 => 23627, 20062 => 26080, 20063 => 33436,
-20064 => 26791, 20065 => 21566, 20066 => 21556, 20067 => 27595, 20068 => 27494,
-20069 => 20116, 20070 => 25410, 20071 => 21320, 20072 => 33310, 20073 => 20237,
-20074 => 20398, 20075 => 22366, 20076 => 25098, 20077 => 38654, 20078 => 26212,
-20079 => 29289, 20080 => 21247, 20081 => 21153, 20082 => 24735, 20083 => 35823,
-20084 => 26132, 20085 => 29081, 20086 => 26512, 20087 => 35199, 20088 => 30802,
-20089 => 30717, 20090 => 26224, 20091 => 22075, 20092 => 21560, 20093 => 38177,
-20094 => 29306, 20257 => 31232, 20258 => 24687, 20259 => 24076, 20260 => 24713,
-20261 => 33181, 20262 => 22805, 20263 => 24796, 20264 => 29060, 20265 => 28911,
-20266 => 28330, 20267 => 27728, 20268 => 29312, 20269 => 27268, 20270 => 34989,
-20271 => 24109, 20272 => 20064, 20273 => 23219, 20274 => 21916, 20275 => 38115,
-20276 => 27927, 20277 => 31995, 20278 => 38553, 20279 => 25103, 20280 => 32454,
-20281 => 30606, 20282 => 34430, 20283 => 21283, 20284 => 38686, 20285 => 36758,
-20286 => 26247, 20287 => 23777, 20288 => 20384, 20289 => 29421, 20290 => 19979,
-20291 => 21414, 20292 => 22799, 20293 => 21523, 20294 => 25472, 20295 => 38184,
-20296 => 20808, 20297 => 20185, 20298 => 40092, 20299 => 32420, 20300 => 21688,
-20301 => 36132, 20302 => 34900, 20303 => 33335, 20304 => 38386, 20305 => 28046,
-20306 => 24358, 20307 => 23244, 20308 => 26174, 20309 => 38505, 20310 => 29616,
-20311 => 29486, 20312 => 21439, 20313 => 33146, 20314 => 39301, 20315 => 32673,
-20316 => 23466, 20317 => 38519, 20318 => 38480, 20319 => 32447, 20320 => 30456,
-20321 => 21410, 20322 => 38262, 20323 => 39321, 20324 => 31665, 20325 => 35140,
-20326 => 28248, 20327 => 20065, 20328 => 32724, 20329 => 31077, 20330 => 35814,
-20331 => 24819, 20332 => 21709, 20333 => 20139, 20334 => 39033, 20335 => 24055,
-20336 => 27233, 20337 => 20687, 20338 => 21521, 20339 => 35937, 20340 => 33831,
-20341 => 30813, 20342 => 38660, 20343 => 21066, 20344 => 21742, 20345 => 22179,
-20346 => 38144, 20347 => 28040, 20348 => 23477, 20349 => 28102, 20350 => 26195,
-20513 => 23567, 20514 => 23389, 20515 => 26657, 20516 => 32918, 20517 => 21880,
-20518 => 31505, 20519 => 25928, 20520 => 26964, 20521 => 20123, 20522 => 27463,
-20523 => 34638, 20524 => 38795, 20525 => 21327, 20526 => 25375, 20527 => 25658,
-20528 => 37034, 20529 => 26012, 20530 => 32961, 20531 => 35856, 20532 => 20889,
-20533 => 26800, 20534 => 21368, 20535 => 34809, 20536 => 25032, 20537 => 27844,
-20538 => 27899, 20539 => 35874, 20540 => 23633, 20541 => 34218, 20542 => 33455,
-20543 => 38156, 20544 => 27427, 20545 => 36763, 20546 => 26032, 20547 => 24571,
-20548 => 24515, 20549 => 20449, 20550 => 34885, 20551 => 26143, 20552 => 33125,
-20553 => 29481, 20554 => 24826, 20555 => 20852, 20556 => 21009, 20557 => 22411,
-20558 => 24418, 20559 => 37026, 20560 => 34892, 20561 => 37266, 20562 => 24184,
-20563 => 26447, 20564 => 24615, 20565 => 22995, 20566 => 20804, 20567 => 20982,
-20568 => 33016, 20569 => 21256, 20570 => 27769, 20571 => 38596, 20572 => 29066,
-20573 => 20241, 20574 => 20462, 20575 => 32670, 20576 => 26429, 20577 => 21957,
-20578 => 38152, 20579 => 31168, 20580 => 34966, 20581 => 32483, 20582 => 22687,
-20583 => 25100, 20584 => 38656, 20585 => 34394, 20586 => 22040, 20587 => 39035,
-20588 => 24464, 20589 => 35768, 20590 => 33988, 20591 => 37207, 20592 => 21465,
-20593 => 26093, 20594 => 24207, 20595 => 30044, 20596 => 24676, 20597 => 32110,
-20598 => 23167, 20599 => 32490, 20600 => 32493, 20601 => 36713, 20602 => 21927,
-20603 => 23459, 20604 => 24748, 20605 => 26059, 20606 => 29572, 20769 => 36873,
-20770 => 30307, 20771 => 30505, 20772 => 32474, 20773 => 38772, 20774 => 34203,
-20775 => 23398, 20776 => 31348, 20777 => 38634, 20778 => 34880, 20779 => 21195,
-20780 => 29071, 20781 => 24490, 20782 => 26092, 20783 => 35810, 20784 => 23547,
-20785 => 39535, 20786 => 24033, 20787 => 27529, 20788 => 27739, 20789 => 35757,
-20790 => 35759, 20791 => 36874, 20792 => 36805, 20793 => 21387, 20794 => 25276,
-20795 => 40486, 20796 => 40493, 20797 => 21568, 20798 => 20011, 20799 => 33469,
-20800 => 29273, 20801 => 34460, 20802 => 23830, 20803 => 34905, 20804 => 28079,
-20805 => 38597, 20806 => 21713, 20807 => 20122, 20808 => 35766, 20809 => 28937,
-20810 => 21693, 20811 => 38409, 20812 => 28895, 20813 => 28153, 20814 => 30416,
-20815 => 20005, 20816 => 30740, 20817 => 34578, 20818 => 23721, 20819 => 24310,
-20820 => 35328, 20821 => 39068, 20822 => 38414, 20823 => 28814, 20824 => 27839,
-20825 => 22852, 20826 => 25513, 20827 => 30524, 20828 => 34893, 20829 => 28436,
-20830 => 33395, 20831 => 22576, 20832 => 29141, 20833 => 21388, 20834 => 30746,
-20835 => 38593, 20836 => 21761, 20837 => 24422, 20838 => 28976, 20839 => 23476,
-20840 => 35866, 20841 => 39564, 20842 => 27523, 20843 => 22830, 20844 => 40495,
-20845 => 31207, 20846 => 26472, 20847 => 25196, 20848 => 20335, 20849 => 30113,
-20850 => 32650, 20851 => 27915, 20852 => 38451, 20853 => 27687, 20854 => 20208,
-20855 => 30162, 20856 => 20859, 20857 => 26679, 20858 => 28478, 20859 => 36992,
-20860 => 33136, 20861 => 22934, 20862 => 29814, 21025 => 25671, 21026 => 23591,
-21027 => 36965, 21028 => 31377, 21029 => 35875, 21030 => 23002, 21031 => 21676,
-21032 => 33280, 21033 => 33647, 21034 => 35201, 21035 => 32768, 21036 => 26928,
-21037 => 22094, 21038 => 32822, 21039 => 29239, 21040 => 37326, 21041 => 20918,
-21042 => 20063, 21043 => 39029, 21044 => 25494, 21045 => 19994, 21046 => 21494,
-21047 => 26355, 21048 => 33099, 21049 => 22812, 21050 => 28082, 21051 => 19968,
-21052 => 22777, 21053 => 21307, 21054 => 25558, 21055 => 38129, 21056 => 20381,
-21057 => 20234, 21058 => 34915, 21059 => 39056, 21060 => 22839, 21061 => 36951,
-21062 => 31227, 21063 => 20202, 21064 => 33008, 21065 => 30097, 21066 => 27778,
-21067 => 23452, 21068 => 23016, 21069 => 24413, 21070 => 26885, 21071 => 34433,
-21072 => 20506, 21073 => 24050, 21074 => 20057, 21075 => 30691, 21076 => 20197,
-21077 => 33402, 21078 => 25233, 21079 => 26131, 21080 => 37009, 21081 => 23673,
-21082 => 20159, 21083 => 24441, 21084 => 33222, 21085 => 36920, 21086 => 32900,
-21087 => 30123, 21088 => 20134, 21089 => 35028, 21090 => 24847, 21091 => 27589,
-21092 => 24518, 21093 => 20041, 21094 => 30410, 21095 => 28322, 21096 => 35811,
-21097 => 35758, 21098 => 35850, 21099 => 35793, 21100 => 24322, 21101 => 32764,
-21102 => 32716, 21103 => 32462, 21104 => 33589, 21105 => 33643, 21106 => 22240,
-21107 => 27575, 21108 => 38899, 21109 => 38452, 21110 => 23035, 21111 => 21535,
-21112 => 38134, 21113 => 28139, 21114 => 23493, 21115 => 39278, 21116 => 23609,
-21117 => 24341, 21118 => 38544, 21281 => 21360, 21282 => 33521, 21283 => 27185,
-21284 => 23156, 21285 => 40560, 21286 => 24212, 21287 => 32552, 21288 => 33721,
-21289 => 33828, 21290 => 33829, 21291 => 33639, 21292 => 34631, 21293 => 36814,
-21294 => 36194, 21295 => 30408, 21296 => 24433, 21297 => 39062, 21298 => 30828,
-21299 => 26144, 21300 => 21727, 21301 => 25317, 21302 => 20323, 21303 => 33219,
-21304 => 30152, 21305 => 24248, 21306 => 38605, 21307 => 36362, 21308 => 34553,
-21309 => 21647, 21310 => 27891, 21311 => 28044, 21312 => 27704, 21313 => 24703,
-21314 => 21191, 21315 => 29992, 21316 => 24189, 21317 => 20248, 21318 => 24736,
-21319 => 24551, 21320 => 23588, 21321 => 30001, 21322 => 37038, 21323 => 38080,
-21324 => 29369, 21325 => 27833, 21326 => 28216, 21327 => 37193, 21328 => 26377,
-21329 => 21451, 21330 => 21491, 21331 => 20305, 21332 => 37321, 21333 => 35825,
-21334 => 21448, 21335 => 24188, 21336 => 36802, 21337 => 28132, 21338 => 20110,
-21339 => 30402, 21340 => 27014, 21341 => 34398, 21342 => 24858, 21343 => 33286,
-21344 => 20313, 21345 => 20446, 21346 => 36926, 21347 => 40060, 21348 => 24841,
-21349 => 28189, 21350 => 28180, 21351 => 38533, 21352 => 20104, 21353 => 23089,
-21354 => 38632, 21355 => 19982, 21356 => 23679, 21357 => 31161, 21358 => 23431,
-21359 => 35821, 21360 => 32701, 21361 => 29577, 21362 => 22495, 21363 => 33419,
-21364 => 37057, 21365 => 21505, 21366 => 36935, 21367 => 21947, 21368 => 23786,
-21369 => 24481, 21370 => 24840, 21371 => 27442, 21372 => 29425, 21373 => 32946,
-21374 => 35465, 21537 => 28020, 21538 => 23507, 21539 => 35029, 21540 => 39044,
-21541 => 35947, 21542 => 39533, 21543 => 40499, 21544 => 28170, 21545 => 20900,
-21546 => 20803, 21547 => 22435, 21548 => 34945, 21549 => 21407, 21550 => 25588,
-21551 => 36757, 21552 => 22253, 21553 => 21592, 21554 => 22278, 21555 => 29503,
-21556 => 28304, 21557 => 32536, 21558 => 36828, 21559 => 33489, 21560 => 24895,
-21561 => 24616, 21562 => 38498, 21563 => 26352, 21564 => 32422, 21565 => 36234,
-21566 => 36291, 21567 => 38053, 21568 => 23731, 21569 => 31908, 21570 => 26376,
-21571 => 24742, 21572 => 38405, 21573 => 32792, 21574 => 20113, 21575 => 37095,
-21576 => 21248, 21577 => 38504, 21578 => 20801, 21579 => 36816, 21580 => 34164,
-21581 => 37213, 21582 => 26197, 21583 => 38901, 21584 => 23381, 21585 => 21277,
-21586 => 30776, 21587 => 26434, 21588 => 26685, 21589 => 21705, 21590 => 28798,
-21591 => 23472, 21592 => 36733, 21593 => 20877, 21594 => 22312, 21595 => 21681,
-21596 => 25874, 21597 => 26242, 21598 => 36190, 21599 => 36163, 21600 => 33039,
-21601 => 33900, 21602 => 36973, 21603 => 31967, 21604 => 20991, 21605 => 34299,
-21606 => 26531, 21607 => 26089, 21608 => 28577, 21609 => 34468, 21610 => 36481,
-21611 => 22122, 21612 => 36896, 21613 => 30338, 21614 => 28790, 21615 => 29157,
-21616 => 36131, 21617 => 25321, 21618 => 21017, 21619 => 27901, 21620 => 36156,
-21621 => 24590, 21622 => 22686, 21623 => 24974, 21624 => 26366, 21625 => 36192,
-21626 => 25166, 21627 => 21939, 21628 => 28195, 21629 => 26413, 21630 => 36711,
-21793 => 38113, 21794 => 38392, 21795 => 30504, 21796 => 26629, 21797 => 27048,
-21798 => 21643, 21799 => 20045, 21800 => 28856, 21801 => 35784, 21802 => 25688,
-21803 => 25995, 21804 => 23429, 21805 => 31364, 21806 => 20538, 21807 => 23528,
-21808 => 30651, 21809 => 27617, 21810 => 35449, 21811 => 31896, 21812 => 27838,
-21813 => 30415, 21814 => 26025, 21815 => 36759, 21816 => 23853, 21817 => 23637,
-21818 => 34360, 21819 => 26632, 21820 => 21344, 21821 => 25112, 21822 => 31449,
-21823 => 28251, 21824 => 32509, 21825 => 27167, 21826 => 31456, 21827 => 24432,
-21828 => 28467, 21829 => 24352, 21830 => 25484, 21831 => 28072, 21832 => 26454,
-21833 => 19976, 21834 => 24080, 21835 => 36134, 21836 => 20183, 21837 => 32960,
-21838 => 30260, 21839 => 38556, 21840 => 25307, 21841 => 26157, 21842 => 25214,
-21843 => 27836, 21844 => 36213, 21845 => 29031, 21846 => 32617, 21847 => 20806,
-21848 => 32903, 21849 => 21484, 21850 => 36974, 21851 => 25240, 21852 => 21746,
-21853 => 34544, 21854 => 36761, 21855 => 32773, 21856 => 38167, 21857 => 34071,
-21858 => 36825, 21859 => 27993, 21860 => 29645, 21861 => 26015, 21862 => 30495,
-21863 => 29956, 21864 => 30759, 21865 => 33275, 21866 => 36126, 21867 => 38024,
-21868 => 20390, 21869 => 26517, 21870 => 30137, 21871 => 35786, 21872 => 38663,
-21873 => 25391, 21874 => 38215, 21875 => 38453, 21876 => 33976, 21877 => 25379,
-21878 => 30529, 21879 => 24449, 21880 => 29424, 21881 => 20105, 21882 => 24596,
-21883 => 25972, 21884 => 25327, 21885 => 27491, 21886 => 25919, 22049 => 24103,
-22050 => 30151, 22051 => 37073, 22052 => 35777, 22053 => 33437, 22054 => 26525,
-22055 => 25903, 22056 => 21553, 22057 => 34584, 22058 => 30693, 22059 => 32930,
-22060 => 33026, 22061 => 27713, 22062 => 20043, 22063 => 32455, 22064 => 32844,
-22065 => 30452, 22066 => 26893, 22067 => 27542, 22068 => 25191, 22069 => 20540,
-22070 => 20356, 22071 => 22336, 22072 => 25351, 22073 => 27490, 22074 => 36286,
-22075 => 21482, 22076 => 26088, 22077 => 32440, 22078 => 24535, 22079 => 25370,
-22080 => 25527, 22081 => 33267, 22082 => 33268, 22083 => 32622, 22084 => 24092,
-22085 => 23769, 22086 => 21046, 22087 => 26234, 22088 => 31209, 22089 => 31258,
-22090 => 36136, 22091 => 28825, 22092 => 30164, 22093 => 28382, 22094 => 27835,
-22095 => 31378, 22096 => 20013, 22097 => 30405, 22098 => 24544, 22099 => 38047,
-22100 => 34935, 22101 => 32456, 22102 => 31181, 22103 => 32959, 22104 => 37325,
-22105 => 20210, 22106 => 20247, 22107 => 33311, 22108 => 21608, 22109 => 24030,
-22110 => 27954, 22111 => 35788, 22112 => 31909, 22113 => 36724, 22114 => 32920,
-22115 => 24090, 22116 => 21650, 22117 => 30385, 22118 => 23449, 22119 => 26172,
-22120 => 39588, 22121 => 29664, 22122 => 26666, 22123 => 34523, 22124 => 26417,
-22125 => 29482, 22126 => 35832, 22127 => 35803, 22128 => 36880, 22129 => 31481,
-22130 => 28891, 22131 => 29038, 22132 => 25284, 22133 => 30633, 22134 => 22065,
-22135 => 20027, 22136 => 33879, 22137 => 26609, 22138 => 21161, 22139 => 34496,
-22140 => 36142, 22141 => 38136, 22142 => 31569, 22305 => 20303, 22306 => 27880,
-22307 => 31069, 22308 => 39547, 22309 => 25235, 22310 => 29226, 22311 => 25341,
-22312 => 19987, 22313 => 30742, 22314 => 36716, 22315 => 25776, 22316 => 36186,
-22317 => 31686, 22318 => 26729, 22319 => 24196, 22320 => 35013, 22321 => 22918,
-22322 => 25758, 22323 => 22766, 22324 => 29366, 22325 => 26894, 22326 => 38181,
-22327 => 36861, 22328 => 36184, 22329 => 22368, 22330 => 32512, 22331 => 35846,
-22332 => 20934, 22333 => 25417, 22334 => 25305, 22335 => 21331, 22336 => 26700,
-22337 => 29730, 22338 => 33537, 22339 => 37196, 22340 => 21828, 22341 => 30528,
-22342 => 28796, 22343 => 27978, 22344 => 20857, 22345 => 21672, 22346 => 36164,
-22347 => 23039, 22348 => 28363, 22349 => 28100, 22350 => 23388, 22351 => 32043,
-22352 => 20180, 22353 => 31869, 22354 => 28371, 22355 => 23376, 22356 => 33258,
-22357 => 28173, 22358 => 23383, 22359 => 39683, 22360 => 26837, 22361 => 36394,
-22362 => 23447, 22363 => 32508, 22364 => 24635, 22365 => 32437, 22366 => 37049,
-22367 => 36208, 22368 => 22863, 22369 => 25549, 22370 => 31199, 22371 => 36275,
-22372 => 21330, 22373 => 26063, 22374 => 31062, 22375 => 35781, 22376 => 38459,
-22377 => 32452, 22378 => 38075, 22379 => 32386, 22380 => 22068, 22381 => 37257,
-22382 => 26368, 22383 => 32618, 22384 => 23562, 22385 => 36981, 22386 => 26152,
-22387 => 24038, 22388 => 20304, 22389 => 26590, 22390 => 20570, 22391 => 20316,
-22392 => 22352, 22393 => 24231, 22561 => 20109, 22562 => 19980, 22563 => 20800,
-22564 => 19984, 22565 => 24319, 22566 => 21317, 22567 => 19989, 22568 => 20120,
-22569 => 19998, 22570 => 39730, 22571 => 23404, 22572 => 22121, 22573 => 20008,
-22574 => 31162, 22575 => 20031, 22576 => 21269, 22577 => 20039, 22578 => 22829,
-22579 => 29243, 22580 => 21358, 22581 => 27664, 22582 => 22239, 22583 => 32996,
-22584 => 39319, 22585 => 27603, 22586 => 30590, 22587 => 40727, 22588 => 20022,
-22589 => 20127, 22590 => 40720, 22591 => 20060, 22592 => 20073, 22593 => 20115,
-22594 => 33416, 22595 => 23387, 22596 => 21868, 22597 => 22031, 22598 => 20164,
-22599 => 21389, 22600 => 21405, 22601 => 21411, 22602 => 21413, 22603 => 21422,
-22604 => 38757, 22605 => 36189, 22606 => 21274, 22607 => 21493, 22608 => 21286,
-22609 => 21294, 22610 => 21310, 22611 => 36188, 22612 => 21350, 22613 => 21347,
-22614 => 20994, 22615 => 21000, 22616 => 21006, 22617 => 21037, 22618 => 21043,
-22619 => 21055, 22620 => 21056, 22621 => 21068, 22622 => 21086, 22623 => 21089,
-22624 => 21084, 22625 => 33967, 22626 => 21117, 22627 => 21122, 22628 => 21121,
-22629 => 21136, 22630 => 21139, 22631 => 20866, 22632 => 32596, 22633 => 20155,
-22634 => 20163, 22635 => 20169, 22636 => 20162, 22637 => 20200, 22638 => 20193,
-22639 => 20203, 22640 => 20190, 22641 => 20251, 22642 => 20211, 22643 => 20258,
-22644 => 20324, 22645 => 20213, 22646 => 20261, 22647 => 20263, 22648 => 20233,
-22649 => 20267, 22650 => 20318, 22651 => 20327, 22652 => 25912, 22653 => 20314,
-22654 => 20317, 22817 => 20319, 22818 => 20311, 22819 => 20274, 22820 => 20285,
-22821 => 20342, 22822 => 20340, 22823 => 20369, 22824 => 20361, 22825 => 20355,
-22826 => 20367, 22827 => 20350, 22828 => 20347, 22829 => 20394, 22830 => 20348,
-22831 => 20396, 22832 => 20372, 22833 => 20454, 22834 => 20456, 22835 => 20458,
-22836 => 20421, 22837 => 20442, 22838 => 20451, 22839 => 20444, 22840 => 20433,
-22841 => 20447, 22842 => 20472, 22843 => 20521, 22844 => 20556, 22845 => 20467,
-22846 => 20524, 22847 => 20495, 22848 => 20526, 22849 => 20525, 22850 => 20478,
-22851 => 20508, 22852 => 20492, 22853 => 20517, 22854 => 20520, 22855 => 20606,
-22856 => 20547, 22857 => 20565, 22858 => 20552, 22859 => 20558, 22860 => 20588,
-22861 => 20603, 22862 => 20645, 22863 => 20647, 22864 => 20649, 22865 => 20666,
-22866 => 20694, 22867 => 20742, 22868 => 20717, 22869 => 20716, 22870 => 20710,
-22871 => 20718, 22872 => 20743, 22873 => 20747, 22874 => 20189, 22875 => 27709,
-22876 => 20312, 22877 => 20325, 22878 => 20430, 22879 => 40864, 22880 => 27718,
-22881 => 31860, 22882 => 20846, 22883 => 24061, 22884 => 40649, 22885 => 39320,
-22886 => 20865, 22887 => 22804, 22888 => 21241, 22889 => 21261, 22890 => 35335,
-22891 => 21264, 22892 => 20971, 22893 => 22809, 22894 => 20821, 22895 => 20128,
-22896 => 20822, 22897 => 20147, 22898 => 34926, 22899 => 34980, 22900 => 20149,
-22901 => 33044, 22902 => 35026, 22903 => 31104, 22904 => 23348, 22905 => 34819,
-22906 => 32696, 22907 => 20907, 22908 => 20913, 22909 => 20925, 22910 => 20924,
-23073 => 20935, 23074 => 20886, 23075 => 20898, 23076 => 20901, 23077 => 35744,
-23078 => 35750, 23079 => 35751, 23080 => 35754, 23081 => 35764, 23082 => 35765,
-23083 => 35767, 23084 => 35778, 23085 => 35779, 23086 => 35787, 23087 => 35791,
-23088 => 35790, 23089 => 35794, 23090 => 35795, 23091 => 35796, 23092 => 35798,
-23093 => 35800, 23094 => 35801, 23095 => 35804, 23096 => 35807, 23097 => 35808,
-23098 => 35812, 23099 => 35816, 23100 => 35817, 23101 => 35822, 23102 => 35824,
-23103 => 35827, 23104 => 35830, 23105 => 35833, 23106 => 35836, 23107 => 35839,
-23108 => 35840, 23109 => 35842, 23110 => 35844, 23111 => 35847, 23112 => 35852,
-23113 => 35855, 23114 => 35857, 23115 => 35858, 23116 => 35860, 23117 => 35861,
-23118 => 35862, 23119 => 35865, 23120 => 35867, 23121 => 35864, 23122 => 35869,
-23123 => 35871, 23124 => 35872, 23125 => 35873, 23126 => 35877, 23127 => 35879,
-23128 => 35882, 23129 => 35883, 23130 => 35886, 23131 => 35887, 23132 => 35890,
-23133 => 35891, 23134 => 35893, 23135 => 35894, 23136 => 21353, 23137 => 21370,
-23138 => 38429, 23139 => 38434, 23140 => 38433, 23141 => 38449, 23142 => 38442,
-23143 => 38461, 23144 => 38460, 23145 => 38466, 23146 => 38473, 23147 => 38484,
-23148 => 38495, 23149 => 38503, 23150 => 38508, 23151 => 38514, 23152 => 38516,
-23153 => 38536, 23154 => 38541, 23155 => 38551, 23156 => 38576, 23157 => 37015,
-23158 => 37019, 23159 => 37021, 23160 => 37017, 23161 => 37036, 23162 => 37025,
-23163 => 37044, 23164 => 37043, 23165 => 37046, 23166 => 37050, 23329 => 37048,
-23330 => 37040, 23331 => 37071, 23332 => 37061, 23333 => 37054, 23334 => 37072,
-23335 => 37060, 23336 => 37063, 23337 => 37075, 23338 => 37094, 23339 => 37090,
-23340 => 37084, 23341 => 37079, 23342 => 37083, 23343 => 37099, 23344 => 37103,
-23345 => 37118, 23346 => 37124, 23347 => 37154, 23348 => 37150, 23349 => 37155,
-23350 => 37169, 23351 => 37167, 23352 => 37177, 23353 => 37187, 23354 => 37190,
-23355 => 21005, 23356 => 22850, 23357 => 21154, 23358 => 21164, 23359 => 21165,
-23360 => 21182, 23361 => 21759, 23362 => 21200, 23363 => 21206, 23364 => 21232,
-23365 => 21471, 23366 => 29166, 23367 => 30669, 23368 => 24308, 23369 => 20981,
-23370 => 20988, 23371 => 39727, 23372 => 21430, 23373 => 24321, 23374 => 30042,
-23375 => 24047, 23376 => 22348, 23377 => 22441, 23378 => 22433, 23379 => 22654,
-23380 => 22716, 23381 => 22725, 23382 => 22737, 23383 => 22313, 23384 => 22316,
-23385 => 22314, 23386 => 22323, 23387 => 22329, 23388 => 22318, 23389 => 22319,
-23390 => 22364, 23391 => 22331, 23392 => 22338, 23393 => 22377, 23394 => 22405,
-23395 => 22379, 23396 => 22406, 23397 => 22396, 23398 => 22395, 23399 => 22376,
-23400 => 22381, 23401 => 22390, 23402 => 22387, 23403 => 22445, 23404 => 22436,
-23405 => 22412, 23406 => 22450, 23407 => 22479, 23408 => 22439, 23409 => 22452,
-23410 => 22419, 23411 => 22432, 23412 => 22485, 23413 => 22488, 23414 => 22490,
-23415 => 22489, 23416 => 22482, 23417 => 22456, 23418 => 22516, 23419 => 22511,
-23420 => 22520, 23421 => 22500, 23422 => 22493, 23585 => 22539, 23586 => 22541,
-23587 => 22525, 23588 => 22509, 23589 => 22528, 23590 => 22558, 23591 => 22553,
-23592 => 22596, 23593 => 22560, 23594 => 22629, 23595 => 22636, 23596 => 22657,
-23597 => 22665, 23598 => 22682, 23599 => 22656, 23600 => 39336, 23601 => 40729,
-23602 => 25087, 23603 => 33401, 23604 => 33405, 23605 => 33407, 23606 => 33423,
-23607 => 33418, 23608 => 33448, 23609 => 33412, 23610 => 33422, 23611 => 33425,
-23612 => 33431, 23613 => 33433, 23614 => 33451, 23615 => 33464, 23616 => 33470,
-23617 => 33456, 23618 => 33480, 23619 => 33482, 23620 => 33507, 23621 => 33432,
-23622 => 33463, 23623 => 33454, 23624 => 33483, 23625 => 33484, 23626 => 33473,
-23627 => 33449, 23628 => 33460, 23629 => 33441, 23630 => 33450, 23631 => 33439,
-23632 => 33476, 23633 => 33486, 23634 => 33444, 23635 => 33505, 23636 => 33545,
-23637 => 33527, 23638 => 33508, 23639 => 33551, 23640 => 33543, 23641 => 33500,
-23642 => 33524, 23643 => 33490, 23644 => 33496, 23645 => 33548, 23646 => 33531,
-23647 => 33491, 23648 => 33553, 23649 => 33562, 23650 => 33542, 23651 => 33556,
-23652 => 33557, 23653 => 33504, 23654 => 33493, 23655 => 33564, 23656 => 33617,
-23657 => 33627, 23658 => 33628, 23659 => 33544, 23660 => 33682, 23661 => 33596,
-23662 => 33588, 23663 => 33585, 23664 => 33691, 23665 => 33630, 23666 => 33583,
-23667 => 33615, 23668 => 33607, 23669 => 33603, 23670 => 33631, 23671 => 33600,
-23672 => 33559, 23673 => 33632, 23674 => 33581, 23675 => 33594, 23676 => 33587,
-23677 => 33638, 23678 => 33637, 23841 => 33640, 23842 => 33563, 23843 => 33641,
-23844 => 33644, 23845 => 33642, 23846 => 33645, 23847 => 33646, 23848 => 33712,
-23849 => 33656, 23850 => 33715, 23851 => 33716, 23852 => 33696, 23853 => 33706,
-23854 => 33683, 23855 => 33692, 23856 => 33669, 23857 => 33660, 23858 => 33718,
-23859 => 33705, 23860 => 33661, 23861 => 33720, 23862 => 33659, 23863 => 33688,
-23864 => 33694, 23865 => 33704, 23866 => 33722, 23867 => 33724, 23868 => 33729,
-23869 => 33793, 23870 => 33765, 23871 => 33752, 23872 => 22535, 23873 => 33816,
-23874 => 33803, 23875 => 33757, 23876 => 33789, 23877 => 33750, 23878 => 33820,
-23879 => 33848, 23880 => 33809, 23881 => 33798, 23882 => 33748, 23883 => 33759,
-23884 => 33807, 23885 => 33795, 23886 => 33784, 23887 => 33785, 23888 => 33770,
-23889 => 33733, 23890 => 33728, 23891 => 33830, 23892 => 33776, 23893 => 33761,
-23894 => 33884, 23895 => 33873, 23896 => 33882, 23897 => 33881, 23898 => 33907,
-23899 => 33927, 23900 => 33928, 23901 => 33914, 23902 => 33929, 23903 => 33912,
-23904 => 33852, 23905 => 33862, 23906 => 33897, 23907 => 33910, 23908 => 33932,
-23909 => 33934, 23910 => 33841, 23911 => 33901, 23912 => 33985, 23913 => 33997,
-23914 => 34000, 23915 => 34022, 23916 => 33981, 23917 => 34003, 23918 => 33994,
-23919 => 33983, 23920 => 33978, 23921 => 34016, 23922 => 33953, 23923 => 33977,
-23924 => 33972, 23925 => 33943, 23926 => 34021, 23927 => 34019, 23928 => 34060,
-23929 => 29965, 23930 => 34104, 23931 => 34032, 23932 => 34105, 23933 => 34079,
-23934 => 34106, 24097 => 34134, 24098 => 34107, 24099 => 34047, 24100 => 34044,
-24101 => 34137, 24102 => 34120, 24103 => 34152, 24104 => 34148, 24105 => 34142,
-24106 => 34170, 24107 => 30626, 24108 => 34115, 24109 => 34162, 24110 => 34171,
-24111 => 34212, 24112 => 34216, 24113 => 34183, 24114 => 34191, 24115 => 34169,
-24116 => 34222, 24117 => 34204, 24118 => 34181, 24119 => 34233, 24120 => 34231,
-24121 => 34224, 24122 => 34259, 24123 => 34241, 24124 => 34268, 24125 => 34303,
-24126 => 34343, 24127 => 34309, 24128 => 34345, 24129 => 34326, 24130 => 34364,
-24131 => 24318, 24132 => 24328, 24133 => 22844, 24134 => 22849, 24135 => 32823,
-24136 => 22869, 24137 => 22874, 24138 => 22872, 24139 => 21263, 24140 => 23586,
-24141 => 23589, 24142 => 23596, 24143 => 23604, 24144 => 25164, 24145 => 25194,
-24146 => 25247, 24147 => 25275, 24148 => 25290, 24149 => 25306, 24150 => 25303,
-24151 => 25326, 24152 => 25378, 24153 => 25334, 24154 => 25401, 24155 => 25419,
-24156 => 25411, 24157 => 25517, 24158 => 25590, 24159 => 25457, 24160 => 25466,
-24161 => 25486, 24162 => 25524, 24163 => 25453, 24164 => 25516, 24165 => 25482,
-24166 => 25449, 24167 => 25518, 24168 => 25532, 24169 => 25586, 24170 => 25592,
-24171 => 25568, 24172 => 25599, 24173 => 25540, 24174 => 25566, 24175 => 25550,
-24176 => 25682, 24177 => 25542, 24178 => 25534, 24179 => 25669, 24180 => 25665,
-24181 => 25611, 24182 => 25627, 24183 => 25632, 24184 => 25612, 24185 => 25638,
-24186 => 25633, 24187 => 25694, 24188 => 25732, 24189 => 25709, 24190 => 25750,
-24353 => 25722, 24354 => 25783, 24355 => 25784, 24356 => 25753, 24357 => 25786,
-24358 => 25792, 24359 => 25808, 24360 => 25815, 24361 => 25828, 24362 => 25826,
-24363 => 25865, 24364 => 25893, 24365 => 25902, 24366 => 24331, 24367 => 24530,
-24368 => 29977, 24369 => 24337, 24370 => 21343, 24371 => 21489, 24372 => 21501,
-24373 => 21481, 24374 => 21480, 24375 => 21499, 24376 => 21522, 24377 => 21526,
-24378 => 21510, 24379 => 21579, 24380 => 21586, 24381 => 21587, 24382 => 21588,
-24383 => 21590, 24384 => 21571, 24385 => 21537, 24386 => 21591, 24387 => 21593,
-24388 => 21539, 24389 => 21554, 24390 => 21634, 24391 => 21652, 24392 => 21623,
-24393 => 21617, 24394 => 21604, 24395 => 21658, 24396 => 21659, 24397 => 21636,
-24398 => 21622, 24399 => 21606, 24400 => 21661, 24401 => 21712, 24402 => 21677,
-24403 => 21698, 24404 => 21684, 24405 => 21714, 24406 => 21671, 24407 => 21670,
-24408 => 21715, 24409 => 21716, 24410 => 21618, 24411 => 21667, 24412 => 21717,
-24413 => 21691, 24414 => 21695, 24415 => 21708, 24416 => 21721, 24417 => 21722,
-24418 => 21724, 24419 => 21673, 24420 => 21674, 24421 => 21668, 24422 => 21725,
-24423 => 21711, 24424 => 21726, 24425 => 21787, 24426 => 21735, 24427 => 21792,
-24428 => 21757, 24429 => 21780, 24430 => 21747, 24431 => 21794, 24432 => 21795,
-24433 => 21775, 24434 => 21777, 24435 => 21799, 24436 => 21802, 24437 => 21863,
-24438 => 21903, 24439 => 21941, 24440 => 21833, 24441 => 21869, 24442 => 21825,
-24443 => 21845, 24444 => 21823, 24445 => 21840, 24446 => 21820, 24609 => 21815,
-24610 => 21846, 24611 => 21877, 24612 => 21878, 24613 => 21879, 24614 => 21811,
-24615 => 21808, 24616 => 21852, 24617 => 21899, 24618 => 21970, 24619 => 21891,
-24620 => 21937, 24621 => 21945, 24622 => 21896, 24623 => 21889, 24624 => 21919,
-24625 => 21886, 24626 => 21974, 24627 => 21905, 24628 => 21883, 24629 => 21983,
-24630 => 21949, 24631 => 21950, 24632 => 21908, 24633 => 21913, 24634 => 21994,
-24635 => 22007, 24636 => 21961, 24637 => 22047, 24638 => 21969, 24639 => 21995,
-24640 => 21996, 24641 => 21972, 24642 => 21990, 24643 => 21981, 24644 => 21956,
-24645 => 21999, 24646 => 21989, 24647 => 22002, 24648 => 22003, 24649 => 21964,
-24650 => 21965, 24651 => 21992, 24652 => 22005, 24653 => 21988, 24654 => 36756,
-24655 => 22046, 24656 => 22024, 24657 => 22028, 24658 => 22017, 24659 => 22052,
-24660 => 22051, 24661 => 22014, 24662 => 22016, 24663 => 22055, 24664 => 22061,
-24665 => 22104, 24666 => 22073, 24667 => 22103, 24668 => 22060, 24669 => 22093,
-24670 => 22114, 24671 => 22105, 24672 => 22108, 24673 => 22092, 24674 => 22100,
-24675 => 22150, 24676 => 22116, 24677 => 22129, 24678 => 22123, 24679 => 22139,
-24680 => 22140, 24681 => 22149, 24682 => 22163, 24683 => 22191, 24684 => 22228,
-24685 => 22231, 24686 => 22237, 24687 => 22241, 24688 => 22261, 24689 => 22251,
-24690 => 22265, 24691 => 22271, 24692 => 22276, 24693 => 22282, 24694 => 22281,
-24695 => 22300, 24696 => 24079, 24697 => 24089, 24698 => 24084, 24699 => 24081,
-24700 => 24113, 24701 => 24123, 24702 => 24124, 24865 => 24119, 24866 => 24132,
-24867 => 24148, 24868 => 24155, 24869 => 24158, 24870 => 24161, 24871 => 23692,
-24872 => 23674, 24873 => 23693, 24874 => 23696, 24875 => 23702, 24876 => 23688,
-24877 => 23704, 24878 => 23705, 24879 => 23697, 24880 => 23706, 24881 => 23708,
-24882 => 23733, 24883 => 23714, 24884 => 23741, 24885 => 23724, 24886 => 23723,
-24887 => 23729, 24888 => 23715, 24889 => 23745, 24890 => 23735, 24891 => 23748,
-24892 => 23762, 24893 => 23780, 24894 => 23755, 24895 => 23781, 24896 => 23810,
-24897 => 23811, 24898 => 23847, 24899 => 23846, 24900 => 23854, 24901 => 23844,
-24902 => 23838, 24903 => 23814, 24904 => 23835, 24905 => 23896, 24906 => 23870,
-24907 => 23860, 24908 => 23869, 24909 => 23916, 24910 => 23899, 24911 => 23919,
-24912 => 23901, 24913 => 23915, 24914 => 23883, 24915 => 23882, 24916 => 23913,
-24917 => 23924, 24918 => 23938, 24919 => 23961, 24920 => 23965, 24921 => 35955,
-24922 => 23991, 24923 => 24005, 24924 => 24435, 24925 => 24439, 24926 => 24450,
-24927 => 24455, 24928 => 24457, 24929 => 24460, 24930 => 24469, 24931 => 24473,
-24932 => 24476, 24933 => 24488, 24934 => 24493, 24935 => 24501, 24936 => 24508,
-24937 => 34914, 24938 => 24417, 24939 => 29357, 24940 => 29360, 24941 => 29364,
-24942 => 29367, 24943 => 29368, 24944 => 29379, 24945 => 29377, 24946 => 29390,
-24947 => 29389, 24948 => 29394, 24949 => 29416, 24950 => 29423, 24951 => 29417,
-24952 => 29426, 24953 => 29428, 24954 => 29431, 24955 => 29441, 24956 => 29427,
-24957 => 29443, 24958 => 29434, 25121 => 29435, 25122 => 29463, 25123 => 29459,
-25124 => 29473, 25125 => 29450, 25126 => 29470, 25127 => 29469, 25128 => 29461,
-25129 => 29474, 25130 => 29497, 25131 => 29477, 25132 => 29484, 25133 => 29496,
-25134 => 29489, 25135 => 29520, 25136 => 29517, 25137 => 29527, 25138 => 29536,
-25139 => 29548, 25140 => 29551, 25141 => 29566, 25142 => 33307, 25143 => 22821,
-25144 => 39143, 25145 => 22820, 25146 => 22786, 25147 => 39267, 25148 => 39271,
-25149 => 39272, 25150 => 39273, 25151 => 39274, 25152 => 39275, 25153 => 39276,
-25154 => 39284, 25155 => 39287, 25156 => 39293, 25157 => 39296, 25158 => 39300,
-25159 => 39303, 25160 => 39306, 25161 => 39309, 25162 => 39312, 25163 => 39313,
-25164 => 39315, 25165 => 39316, 25166 => 39317, 25167 => 24192, 25168 => 24209,
-25169 => 24203, 25170 => 24214, 25171 => 24229, 25172 => 24224, 25173 => 24249,
-25174 => 24245, 25175 => 24254, 25176 => 24243, 25177 => 36179, 25178 => 24274,
-25179 => 24273, 25180 => 24283, 25181 => 24296, 25182 => 24298, 25183 => 33210,
-25184 => 24516, 25185 => 24521, 25186 => 24534, 25187 => 24527, 25188 => 24579,
-25189 => 24558, 25190 => 24580, 25191 => 24545, 25192 => 24548, 25193 => 24574,
-25194 => 24581, 25195 => 24582, 25196 => 24554, 25197 => 24557, 25198 => 24568,
-25199 => 24601, 25200 => 24629, 25201 => 24614, 25202 => 24603, 25203 => 24591,
-25204 => 24589, 25205 => 24617, 25206 => 24619, 25207 => 24586, 25208 => 24639,
-25209 => 24609, 25210 => 24696, 25211 => 24697, 25212 => 24699, 25213 => 24698,
-25214 => 24642, 25377 => 24682, 25378 => 24701, 25379 => 24726, 25380 => 24730,
-25381 => 24749, 25382 => 24733, 25383 => 24707, 25384 => 24722, 25385 => 24716,
-25386 => 24731, 25387 => 24812, 25388 => 24763, 25389 => 24753, 25390 => 24797,
-25391 => 24792, 25392 => 24774, 25393 => 24794, 25394 => 24756, 25395 => 24864,
-25396 => 24870, 25397 => 24853, 25398 => 24867, 25399 => 24820, 25400 => 24832,
-25401 => 24846, 25402 => 24875, 25403 => 24906, 25404 => 24949, 25405 => 25004,
-25406 => 24980, 25407 => 24999, 25408 => 25015, 25409 => 25044, 25410 => 25077,
-25411 => 24541, 25412 => 38579, 25413 => 38377, 25414 => 38379, 25415 => 38385,
-25416 => 38387, 25417 => 38389, 25418 => 38390, 25419 => 38396, 25420 => 38398,
-25421 => 38403, 25422 => 38404, 25423 => 38406, 25424 => 38408, 25425 => 38410,
-25426 => 38411, 25427 => 38412, 25428 => 38413, 25429 => 38415, 25430 => 38418,
-25431 => 38421, 25432 => 38422, 25433 => 38423, 25434 => 38425, 25435 => 38426,
-25436 => 20012, 25437 => 29247, 25438 => 25109, 25439 => 27701, 25440 => 27732,
-25441 => 27740, 25442 => 27722, 25443 => 27811, 25444 => 27781, 25445 => 27792,
-25446 => 27796, 25447 => 27788, 25448 => 27752, 25449 => 27753, 25450 => 27764,
-25451 => 27766, 25452 => 27782, 25453 => 27817, 25454 => 27856, 25455 => 27860,
-25456 => 27821, 25457 => 27895, 25458 => 27896, 25459 => 27889, 25460 => 27863,
-25461 => 27826, 25462 => 27872, 25463 => 27862, 25464 => 27898, 25465 => 27883,
-25466 => 27886, 25467 => 27825, 25468 => 27859, 25469 => 27887, 25470 => 27902,
-25633 => 27961, 25634 => 27943, 25635 => 27916, 25636 => 27971, 25637 => 27976,
-25638 => 27911, 25639 => 27908, 25640 => 27929, 25641 => 27918, 25642 => 27947,
-25643 => 27981, 25644 => 27950, 25645 => 27957, 25646 => 27930, 25647 => 27983,
-25648 => 27986, 25649 => 27988, 25650 => 27955, 25651 => 28049, 25652 => 28015,
-25653 => 28062, 25654 => 28064, 25655 => 27998, 25656 => 28051, 25657 => 28052,
-25658 => 27996, 25659 => 28000, 25660 => 28028, 25661 => 28003, 25662 => 28186,
-25663 => 28103, 25664 => 28101, 25665 => 28126, 25666 => 28174, 25667 => 28095,
-25668 => 28128, 25669 => 28177, 25670 => 28134, 25671 => 28125, 25672 => 28121,
-25673 => 28182, 25674 => 28075, 25675 => 28172, 25676 => 28078, 25677 => 28203,
-25678 => 28270, 25679 => 28238, 25680 => 28267, 25681 => 28338, 25682 => 28255,
-25683 => 28294, 25684 => 28243, 25685 => 28244, 25686 => 28210, 25687 => 28197,
-25688 => 28228, 25689 => 28383, 25690 => 28337, 25691 => 28312, 25692 => 28384,
-25693 => 28461, 25694 => 28386, 25695 => 28325, 25696 => 28327, 25697 => 28349,
-25698 => 28347, 25699 => 28343, 25700 => 28375, 25701 => 28340, 25702 => 28367,
-25703 => 28303, 25704 => 28354, 25705 => 28319, 25706 => 28514, 25707 => 28486,
-25708 => 28487, 25709 => 28452, 25710 => 28437, 25711 => 28409, 25712 => 28463,
-25713 => 28470, 25714 => 28491, 25715 => 28532, 25716 => 28458, 25717 => 28425,
-25718 => 28457, 25719 => 28553, 25720 => 28557, 25721 => 28556, 25722 => 28536,
-25723 => 28530, 25724 => 28540, 25725 => 28538, 25726 => 28625, 25889 => 28617,
-25890 => 28583, 25891 => 28601, 25892 => 28598, 25893 => 28610, 25894 => 28641,
-25895 => 28654, 25896 => 28638, 25897 => 28640, 25898 => 28655, 25899 => 28698,
-25900 => 28707, 25901 => 28699, 25902 => 28729, 25903 => 28725, 25904 => 28751,
-25905 => 28766, 25906 => 23424, 25907 => 23428, 25908 => 23445, 25909 => 23443,
-25910 => 23461, 25911 => 23480, 25912 => 29999, 25913 => 39582, 25914 => 25652,
-25915 => 23524, 25916 => 23534, 25917 => 35120, 25918 => 23536, 25919 => 36423,
-25920 => 35591, 25921 => 36790, 25922 => 36819, 25923 => 36821, 25924 => 36837,
-25925 => 36846, 25926 => 36836, 25927 => 36841, 25928 => 36838, 25929 => 36851,
-25930 => 36840, 25931 => 36869, 25932 => 36868, 25933 => 36875, 25934 => 36902,
-25935 => 36881, 25936 => 36877, 25937 => 36886, 25938 => 36897, 25939 => 36917,
-25940 => 36918, 25941 => 36909, 25942 => 36911, 25943 => 36932, 25944 => 36945,
-25945 => 36946, 25946 => 36944, 25947 => 36968, 25948 => 36952, 25949 => 36962,
-25950 => 36955, 25951 => 26297, 25952 => 36980, 25953 => 36989, 25954 => 36994,
-25955 => 37000, 25956 => 36995, 25957 => 37003, 25958 => 24400, 25959 => 24407,
-25960 => 24406, 25961 => 24408, 25962 => 23611, 25963 => 21675, 25964 => 23632,
-25965 => 23641, 25966 => 23409, 25967 => 23651, 25968 => 23654, 25969 => 32700,
-25970 => 24362, 25971 => 24361, 25972 => 24365, 25973 => 33396, 25974 => 24380,
-25975 => 39739, 25976 => 23662, 25977 => 22913, 25978 => 22915, 25979 => 22925,
-25980 => 22953, 25981 => 22954, 25982 => 22947, 26145 => 22935, 26146 => 22986,
-26147 => 22955, 26148 => 22942, 26149 => 22948, 26150 => 22994, 26151 => 22962,
-26152 => 22959, 26153 => 22999, 26154 => 22974, 26155 => 23045, 26156 => 23046,
-26157 => 23005, 26158 => 23048, 26159 => 23011, 26160 => 23000, 26161 => 23033,
-26162 => 23052, 26163 => 23049, 26164 => 23090, 26165 => 23092, 26166 => 23057,
-26167 => 23075, 26168 => 23059, 26169 => 23104, 26170 => 23143, 26171 => 23114,
-26172 => 23125, 26173 => 23100, 26174 => 23138, 26175 => 23157, 26176 => 33004,
-26177 => 23210, 26178 => 23195, 26179 => 23159, 26180 => 23162, 26181 => 23230,
-26182 => 23275, 26183 => 23218, 26184 => 23250, 26185 => 23252, 26186 => 23224,
-26187 => 23264, 26188 => 23267, 26189 => 23281, 26190 => 23254, 26191 => 23270,
-26192 => 23256, 26193 => 23260, 26194 => 23305, 26195 => 23319, 26196 => 23318,
-26197 => 23346, 26198 => 23351, 26199 => 23360, 26200 => 23573, 26201 => 23580,
-26202 => 23386, 26203 => 23397, 26204 => 23411, 26205 => 23377, 26206 => 23379,
-26207 => 23394, 26208 => 39541, 26209 => 39543, 26210 => 39544, 26211 => 39546,
-26212 => 39551, 26213 => 39549, 26214 => 39552, 26215 => 39553, 26216 => 39557,
-26217 => 39560, 26218 => 39562, 26219 => 39568, 26220 => 39570, 26221 => 39571,
-26222 => 39574, 26223 => 39576, 26224 => 39579, 26225 => 39580, 26226 => 39581,
-26227 => 39583, 26228 => 39584, 26229 => 39586, 26230 => 39587, 26231 => 39589,
-26232 => 39591, 26233 => 32415, 26234 => 32417, 26235 => 32419, 26236 => 32421,
-26237 => 32424, 26238 => 32425, 26401 => 32429, 26402 => 32432, 26403 => 32446,
-26404 => 32448, 26405 => 32449, 26406 => 32450, 26407 => 32457, 26408 => 32459,
-26409 => 32460, 26410 => 32464, 26411 => 32468, 26412 => 32471, 26413 => 32475,
-26414 => 32480, 26415 => 32481, 26416 => 32488, 26417 => 32491, 26418 => 32494,
-26419 => 32495, 26420 => 32497, 26421 => 32498, 26422 => 32525, 26423 => 32502,
-26424 => 32506, 26425 => 32507, 26426 => 32510, 26427 => 32513, 26428 => 32514,
-26429 => 32515, 26430 => 32519, 26431 => 32520, 26432 => 32523, 26433 => 32524,
-26434 => 32527, 26435 => 32529, 26436 => 32530, 26437 => 32535, 26438 => 32537,
-26439 => 32540, 26440 => 32539, 26441 => 32543, 26442 => 32545, 26443 => 32546,
-26444 => 32547, 26445 => 32548, 26446 => 32549, 26447 => 32550, 26448 => 32551,
-26449 => 32554, 26450 => 32555, 26451 => 32556, 26452 => 32557, 26453 => 32559,
-26454 => 32560, 26455 => 32561, 26456 => 32562, 26457 => 32563, 26458 => 32565,
-26459 => 24186, 26460 => 30079, 26461 => 24027, 26462 => 30014, 26463 => 37013,
-26464 => 29582, 26465 => 29585, 26466 => 29614, 26467 => 29602, 26468 => 29599,
-26469 => 29647, 26470 => 29634, 26471 => 29649, 26472 => 29623, 26473 => 29619,
-26474 => 29632, 26475 => 29641, 26476 => 29640, 26477 => 29669, 26478 => 29657,
-26479 => 39036, 26480 => 29706, 26481 => 29673, 26482 => 29671, 26483 => 29662,
-26484 => 29626, 26485 => 29682, 26486 => 29711, 26487 => 29738, 26488 => 29787,
-26489 => 29734, 26490 => 29733, 26491 => 29736, 26492 => 29744, 26493 => 29742,
-26494 => 29740, 26657 => 29723, 26658 => 29722, 26659 => 29761, 26660 => 29788,
-26661 => 29783, 26662 => 29781, 26663 => 29785, 26664 => 29815, 26665 => 29805,
-26666 => 29822, 26667 => 29852, 26668 => 29838, 26669 => 29824, 26670 => 29825,
-26671 => 29831, 26672 => 29835, 26673 => 29854, 26674 => 29864, 26675 => 29865,
-26676 => 29840, 26677 => 29863, 26678 => 29906, 26679 => 29882, 26680 => 38890,
-26681 => 38891, 26682 => 38892, 26683 => 26444, 26684 => 26451, 26685 => 26462,
-26686 => 26440, 26687 => 26473, 26688 => 26533, 26689 => 26503, 26690 => 26474,
-26691 => 26483, 26692 => 26520, 26693 => 26535, 26694 => 26485, 26695 => 26536,
-26696 => 26526, 26697 => 26541, 26698 => 26507, 26699 => 26487, 26700 => 26492,
-26701 => 26608, 26702 => 26633, 26703 => 26584, 26704 => 26634, 26705 => 26601,
-26706 => 26544, 26707 => 26636, 26708 => 26585, 26709 => 26549, 26710 => 26586,
-26711 => 26547, 26712 => 26589, 26713 => 26624, 26714 => 26563, 26715 => 26552,
-26716 => 26594, 26717 => 26638, 26718 => 26561, 26719 => 26621, 26720 => 26674,
-26721 => 26675, 26722 => 26720, 26723 => 26721, 26724 => 26702, 26725 => 26722,
-26726 => 26692, 26727 => 26724, 26728 => 26755, 26729 => 26653, 26730 => 26709,
-26731 => 26726, 26732 => 26689, 26733 => 26727, 26734 => 26688, 26735 => 26686,
-26736 => 26698, 26737 => 26697, 26738 => 26665, 26739 => 26805, 26740 => 26767,
-26741 => 26740, 26742 => 26743, 26743 => 26771, 26744 => 26731, 26745 => 26818,
-26746 => 26990, 26747 => 26876, 26748 => 26911, 26749 => 26912, 26750 => 26873,
-26913 => 26916, 26914 => 26864, 26915 => 26891, 26916 => 26881, 26917 => 26967,
-26918 => 26851, 26919 => 26896, 26920 => 26993, 26921 => 26937, 26922 => 26976,
-26923 => 26946, 26924 => 26973, 26925 => 27012, 26926 => 26987, 26927 => 27008,
-26928 => 27032, 26929 => 27000, 26930 => 26932, 26931 => 27084, 26932 => 27015,
-26933 => 27016, 26934 => 27086, 26935 => 27017, 26936 => 26982, 26937 => 26979,
-26938 => 27001, 26939 => 27035, 26940 => 27047, 26941 => 27067, 26942 => 27051,
-26943 => 27053, 26944 => 27092, 26945 => 27057, 26946 => 27073, 26947 => 27082,
-26948 => 27103, 26949 => 27029, 26950 => 27104, 26951 => 27021, 26952 => 27135,
-26953 => 27183, 26954 => 27117, 26955 => 27159, 26956 => 27160, 26957 => 27237,
-26958 => 27122, 26959 => 27204, 26960 => 27198, 26961 => 27296, 26962 => 27216,
-26963 => 27227, 26964 => 27189, 26965 => 27278, 26966 => 27257, 26967 => 27197,
-26968 => 27176, 26969 => 27224, 26970 => 27260, 26971 => 27281, 26972 => 27280,
-26973 => 27305, 26974 => 27287, 26975 => 27307, 26976 => 29495, 26977 => 29522,
-26978 => 27521, 26979 => 27522, 26980 => 27527, 26981 => 27524, 26982 => 27538,
-26983 => 27539, 26984 => 27533, 26985 => 27546, 26986 => 27547, 26987 => 27553,
-26988 => 27562, 26989 => 36715, 26990 => 36717, 26991 => 36721, 26992 => 36722,
-26993 => 36723, 26994 => 36725, 26995 => 36726, 26996 => 36728, 26997 => 36727,
-26998 => 36729, 26999 => 36730, 27000 => 36732, 27001 => 36734, 27002 => 36737,
-27003 => 36738, 27004 => 36740, 27005 => 36743, 27006 => 36747, 27169 => 36749,
-27170 => 36750, 27171 => 36751, 27172 => 36760, 27173 => 36762, 27174 => 36558,
-27175 => 25099, 27176 => 25111, 27177 => 25115, 27178 => 25119, 27179 => 25122,
-27180 => 25121, 27181 => 25125, 27182 => 25124, 27183 => 25132, 27184 => 33255,
-27185 => 29935, 27186 => 29940, 27187 => 29951, 27188 => 29967, 27189 => 29969,
-27190 => 29971, 27191 => 25908, 27192 => 26094, 27193 => 26095, 27194 => 26096,
-27195 => 26122, 27196 => 26137, 27197 => 26482, 27198 => 26115, 27199 => 26133,
-27200 => 26112, 27201 => 28805, 27202 => 26359, 27203 => 26141, 27204 => 26164,
-27205 => 26161, 27206 => 26166, 27207 => 26165, 27208 => 32774, 27209 => 26207,
-27210 => 26196, 27211 => 26177, 27212 => 26191, 27213 => 26198, 27214 => 26209,
-27215 => 26199, 27216 => 26231, 27217 => 26244, 27218 => 26252, 27219 => 26279,
-27220 => 26269, 27221 => 26302, 27222 => 26331, 27223 => 26332, 27224 => 26342,
-27225 => 26345, 27226 => 36146, 27227 => 36147, 27228 => 36150, 27229 => 36155,
-27230 => 36157, 27231 => 36160, 27232 => 36165, 27233 => 36166, 27234 => 36168,
-27235 => 36169, 27236 => 36167, 27237 => 36173, 27238 => 36181, 27239 => 36185,
-27240 => 35271, 27241 => 35274, 27242 => 35275, 27243 => 35276, 27244 => 35278,
-27245 => 35279, 27246 => 35280, 27247 => 35281, 27248 => 29294, 27249 => 29343,
-27250 => 29277, 27251 => 29286, 27252 => 29295, 27253 => 29310, 27254 => 29311,
-27255 => 29316, 27256 => 29323, 27257 => 29325, 27258 => 29327, 27259 => 29330,
-27260 => 25352, 27261 => 25394, 27262 => 25520, 27425 => 25663, 27426 => 25816,
-27427 => 32772, 27428 => 27626, 27429 => 27635, 27430 => 27645, 27431 => 27637,
-27432 => 27641, 27433 => 27653, 27434 => 27655, 27435 => 27654, 27436 => 27661,
-27437 => 27669, 27438 => 27672, 27439 => 27673, 27440 => 27674, 27441 => 27681,
-27442 => 27689, 27443 => 27684, 27444 => 27690, 27445 => 27698, 27446 => 25909,
-27447 => 25941, 27448 => 25963, 27449 => 29261, 27450 => 29266, 27451 => 29270,
-27452 => 29232, 27453 => 34402, 27454 => 21014, 27455 => 32927, 27456 => 32924,
-27457 => 32915, 27458 => 32956, 27459 => 26378, 27460 => 32957, 27461 => 32945,
-27462 => 32939, 27463 => 32941, 27464 => 32948, 27465 => 32951, 27466 => 32999,
-27467 => 33000, 27468 => 33001, 27469 => 33002, 27470 => 32987, 27471 => 32962,
-27472 => 32964, 27473 => 32985, 27474 => 32973, 27475 => 32983, 27476 => 26384,
-27477 => 32989, 27478 => 33003, 27479 => 33009, 27480 => 33012, 27481 => 33005,
-27482 => 33037, 27483 => 33038, 27484 => 33010, 27485 => 33020, 27486 => 26389,
-27487 => 33042, 27488 => 35930, 27489 => 33078, 27490 => 33054, 27491 => 33068,
-27492 => 33048, 27493 => 33074, 27494 => 33096, 27495 => 33100, 27496 => 33107,
-27497 => 33140, 27498 => 33113, 27499 => 33114, 27500 => 33137, 27501 => 33120,
-27502 => 33129, 27503 => 33148, 27504 => 33149, 27505 => 33133, 27506 => 33127,
-27507 => 22605, 27508 => 23221, 27509 => 33160, 27510 => 33154, 27511 => 33169,
-27512 => 28373, 27513 => 33187, 27514 => 33194, 27515 => 33228, 27516 => 26406,
-27517 => 33226, 27518 => 33211, 27681 => 33217, 27682 => 33190, 27683 => 27428,
-27684 => 27447, 27685 => 27449, 27686 => 27459, 27687 => 27462, 27688 => 27481,
-27689 => 39121, 27690 => 39122, 27691 => 39123, 27692 => 39125, 27693 => 39129,
-27694 => 39130, 27695 => 27571, 27696 => 24384, 27697 => 27586, 27698 => 35315,
-27699 => 26000, 27700 => 40785, 27701 => 26003, 27702 => 26044, 27703 => 26054,
-27704 => 26052, 27705 => 26051, 27706 => 26060, 27707 => 26062, 27708 => 26066,
-27709 => 26070, 27710 => 28800, 27711 => 28828, 27712 => 28822, 27713 => 28829,
-27714 => 28859, 27715 => 28864, 27716 => 28855, 27717 => 28843, 27718 => 28849,
-27719 => 28904, 27720 => 28874, 27721 => 28944, 27722 => 28947, 27723 => 28950,
-27724 => 28975, 27725 => 28977, 27726 => 29043, 27727 => 29020, 27728 => 29032,
-27729 => 28997, 27730 => 29042, 27731 => 29002, 27732 => 29048, 27733 => 29050,
-27734 => 29080, 27735 => 29107, 27736 => 29109, 27737 => 29096, 27738 => 29088,
-27739 => 29152, 27740 => 29140, 27741 => 29159, 27742 => 29177, 27743 => 29213,
-27744 => 29224, 27745 => 28780, 27746 => 28952, 27747 => 29030, 27748 => 29113,
-27749 => 25150, 27750 => 25149, 27751 => 25155, 27752 => 25160, 27753 => 25161,
-27754 => 31035, 27755 => 31040, 27756 => 31046, 27757 => 31049, 27758 => 31067,
-27759 => 31068, 27760 => 31059, 27761 => 31066, 27762 => 31074, 27763 => 31063,
-27764 => 31072, 27765 => 31087, 27766 => 31079, 27767 => 31098, 27768 => 31109,
-27769 => 31114, 27770 => 31130, 27771 => 31143, 27772 => 31155, 27773 => 24529,
-27774 => 24528, 27937 => 24636, 27938 => 24669, 27939 => 24666, 27940 => 24679,
-27941 => 24641, 27942 => 24665, 27943 => 24675, 27944 => 24747, 27945 => 24838,
-27946 => 24845, 27947 => 24925, 27948 => 25001, 27949 => 24989, 27950 => 25035,
-27951 => 25041, 27952 => 25094, 27953 => 32896, 27954 => 32895, 27955 => 27795,
-27956 => 27894, 27957 => 28156, 27958 => 30710, 27959 => 30712, 27960 => 30720,
-27961 => 30729, 27962 => 30743, 27963 => 30744, 27964 => 30737, 27965 => 26027,
-27966 => 30765, 27967 => 30748, 27968 => 30749, 27969 => 30777, 27970 => 30778,
-27971 => 30779, 27972 => 30751, 27973 => 30780, 27974 => 30757, 27975 => 30764,
-27976 => 30755, 27977 => 30761, 27978 => 30798, 27979 => 30829, 27980 => 30806,
-27981 => 30807, 27982 => 30758, 27983 => 30800, 27984 => 30791, 27985 => 30796,
-27986 => 30826, 27987 => 30875, 27988 => 30867, 27989 => 30874, 27990 => 30855,
-27991 => 30876, 27992 => 30881, 27993 => 30883, 27994 => 30898, 27995 => 30905,
-27996 => 30885, 27997 => 30932, 27998 => 30937, 27999 => 30921, 28000 => 30956,
-28001 => 30962, 28002 => 30981, 28003 => 30964, 28004 => 30995, 28005 => 31012,
-28006 => 31006, 28007 => 31028, 28008 => 40859, 28009 => 40697, 28010 => 40699,
-28011 => 40700, 28012 => 30449, 28013 => 30468, 28014 => 30477, 28015 => 30457,
-28016 => 30471, 28017 => 30472, 28018 => 30490, 28019 => 30498, 28020 => 30489,
-28021 => 30509, 28022 => 30502, 28023 => 30517, 28024 => 30520, 28025 => 30544,
-28026 => 30545, 28027 => 30535, 28028 => 30531, 28029 => 30554, 28030 => 30568,
-28193 => 30562, 28194 => 30565, 28195 => 30591, 28196 => 30605, 28197 => 30589,
-28198 => 30592, 28199 => 30604, 28200 => 30609, 28201 => 30623, 28202 => 30624,
-28203 => 30640, 28204 => 30645, 28205 => 30653, 28206 => 30010, 28207 => 30016,
-28208 => 30030, 28209 => 30027, 28210 => 30024, 28211 => 30043, 28212 => 30066,
-28213 => 30073, 28214 => 30083, 28215 => 32600, 28216 => 32609, 28217 => 32607,
-28218 => 35400, 28219 => 32616, 28220 => 32628, 28221 => 32625, 28222 => 32633,
-28223 => 32641, 28224 => 32638, 28225 => 30413, 28226 => 30437, 28227 => 34866,
-28228 => 38021, 28229 => 38022, 28230 => 38023, 28231 => 38027, 28232 => 38026,
-28233 => 38028, 28234 => 38029, 28235 => 38031, 28236 => 38032, 28237 => 38036,
-28238 => 38039, 28239 => 38037, 28240 => 38042, 28241 => 38043, 28242 => 38044,
-28243 => 38051, 28244 => 38052, 28245 => 38059, 28246 => 38058, 28247 => 38061,
-28248 => 38060, 28249 => 38063, 28250 => 38064, 28251 => 38066, 28252 => 38068,
-28253 => 38070, 28254 => 38071, 28255 => 38072, 28256 => 38073, 28257 => 38074,
-28258 => 38076, 28259 => 38077, 28260 => 38079, 28261 => 38084, 28262 => 38088,
-28263 => 38089, 28264 => 38090, 28265 => 38091, 28266 => 38092, 28267 => 38093,
-28268 => 38094, 28269 => 38096, 28270 => 38097, 28271 => 38098, 28272 => 38101,
-28273 => 38102, 28274 => 38103, 28275 => 38105, 28276 => 38104, 28277 => 38107,
-28278 => 38110, 28279 => 38111, 28280 => 38112, 28281 => 38114, 28282 => 38116,
-28283 => 38117, 28284 => 38119, 28285 => 38120, 28286 => 38122, 28449 => 38121,
-28450 => 38123, 28451 => 38126, 28452 => 38127, 28453 => 38131, 28454 => 38132,
-28455 => 38133, 28456 => 38135, 28457 => 38137, 28458 => 38140, 28459 => 38141,
-28460 => 38143, 28461 => 38147, 28462 => 38146, 28463 => 38150, 28464 => 38151,
-28465 => 38153, 28466 => 38154, 28467 => 38157, 28468 => 38158, 28469 => 38159,
-28470 => 38162, 28471 => 38163, 28472 => 38164, 28473 => 38165, 28474 => 38166,
-28475 => 38168, 28476 => 38171, 28477 => 38173, 28478 => 38174, 28479 => 38175,
-28480 => 38178, 28481 => 38186, 28482 => 38187, 28483 => 38185, 28484 => 38188,
-28485 => 38193, 28486 => 38194, 28487 => 38196, 28488 => 38198, 28489 => 38199,
-28490 => 38200, 28491 => 38204, 28492 => 38206, 28493 => 38207, 28494 => 38210,
-28495 => 38197, 28496 => 38212, 28497 => 38213, 28498 => 38214, 28499 => 38217,
-28500 => 38220, 28501 => 38222, 28502 => 38223, 28503 => 38226, 28504 => 38227,
-28505 => 38228, 28506 => 38230, 28507 => 38231, 28508 => 38232, 28509 => 38233,
-28510 => 38235, 28511 => 38238, 28512 => 38239, 28513 => 38237, 28514 => 38241,
-28515 => 38242, 28516 => 38244, 28517 => 38245, 28518 => 38246, 28519 => 38247,
-28520 => 38248, 28521 => 38249, 28522 => 38250, 28523 => 38251, 28524 => 38252,
-28525 => 38255, 28526 => 38257, 28527 => 38258, 28528 => 38259, 28529 => 38202,
-28530 => 30695, 28531 => 30700, 28532 => 38601, 28533 => 31189, 28534 => 31213,
-28535 => 31203, 28536 => 31211, 28537 => 31238, 28538 => 23879, 28539 => 31235,
-28540 => 31234, 28541 => 31262, 28542 => 31252, 28705 => 31289, 28706 => 31287,
-28707 => 31313, 28708 => 40655, 28709 => 39333, 28710 => 31344, 28711 => 30344,
-28712 => 30350, 28713 => 30355, 28714 => 30361, 28715 => 30372, 28716 => 29918,
-28717 => 29920, 28718 => 29996, 28719 => 40480, 28720 => 40482, 28721 => 40488,
-28722 => 40489, 28723 => 40490, 28724 => 40491, 28725 => 40492, 28726 => 40498,
-28727 => 40497, 28728 => 40502, 28729 => 40504, 28730 => 40503, 28731 => 40505,
-28732 => 40506, 28733 => 40510, 28734 => 40513, 28735 => 40514, 28736 => 40516,
-28737 => 40518, 28738 => 40519, 28739 => 40520, 28740 => 40521, 28741 => 40523,
-28742 => 40524, 28743 => 40526, 28744 => 40529, 28745 => 40533, 28746 => 40535,
-28747 => 40538, 28748 => 40539, 28749 => 40540, 28750 => 40542, 28751 => 40547,
-28752 => 40550, 28753 => 40551, 28754 => 40552, 28755 => 40553, 28756 => 40554,
-28757 => 40555, 28758 => 40556, 28759 => 40561, 28760 => 40557, 28761 => 40563,
-28762 => 30098, 28763 => 30100, 28764 => 30102, 28765 => 30112, 28766 => 30109,
-28767 => 30124, 28768 => 30115, 28769 => 30131, 28770 => 30132, 28771 => 30136,
-28772 => 30148, 28773 => 30129, 28774 => 30128, 28775 => 30147, 28776 => 30146,
-28777 => 30166, 28778 => 30157, 28779 => 30179, 28780 => 30184, 28781 => 30182,
-28782 => 30180, 28783 => 30187, 28784 => 30183, 28785 => 30211, 28786 => 30193,
-28787 => 30204, 28788 => 30207, 28789 => 30224, 28790 => 30208, 28791 => 30213,
-28792 => 30220, 28793 => 30231, 28794 => 30218, 28795 => 30245, 28796 => 30232,
-28797 => 30229, 28798 => 30233, 28961 => 30235, 28962 => 30268, 28963 => 30242,
-28964 => 30240, 28965 => 30272, 28966 => 30253, 28967 => 30256, 28968 => 30271,
-28969 => 30261, 28970 => 30275, 28971 => 30270, 28972 => 30259, 28973 => 30285,
-28974 => 30302, 28975 => 30292, 28976 => 30300, 28977 => 30294, 28978 => 30315,
-28979 => 30319, 28980 => 32714, 28981 => 31462, 28982 => 31352, 28983 => 31353,
-28984 => 31360, 28985 => 31366, 28986 => 31368, 28987 => 31381, 28988 => 31398,
-28989 => 31392, 28990 => 31404, 28991 => 31400, 28992 => 31405, 28993 => 31411,
-28994 => 34916, 28995 => 34921, 28996 => 34930, 28997 => 34941, 28998 => 34943,
-28999 => 34946, 29000 => 34978, 29001 => 35014, 29002 => 34999, 29003 => 35004,
-29004 => 35017, 29005 => 35042, 29006 => 35022, 29007 => 35043, 29008 => 35045,
-29009 => 35057, 29010 => 35098, 29011 => 35068, 29012 => 35048, 29013 => 35070,
-29014 => 35056, 29015 => 35105, 29016 => 35097, 29017 => 35091, 29018 => 35099,
-29019 => 35082, 29020 => 35124, 29021 => 35115, 29022 => 35126, 29023 => 35137,
-29024 => 35174, 29025 => 35195, 29026 => 30091, 29027 => 32997, 29028 => 30386,
-29029 => 30388, 29030 => 30684, 29031 => 32786, 29032 => 32788, 29033 => 32790,
-29034 => 32796, 29035 => 32800, 29036 => 32802, 29037 => 32805, 29038 => 32806,
-29039 => 32807, 29040 => 32809, 29041 => 32808, 29042 => 32817, 29043 => 32779,
-29044 => 32821, 29045 => 32835, 29046 => 32838, 29047 => 32845, 29048 => 32850,
-29049 => 32873, 29050 => 32881, 29051 => 35203, 29052 => 39032, 29053 => 39040,
-29054 => 39043, 29217 => 39049, 29218 => 39052, 29219 => 39053, 29220 => 39055,
-29221 => 39060, 29222 => 39066, 29223 => 39067, 29224 => 39070, 29225 => 39071,
-29226 => 39073, 29227 => 39074, 29228 => 39077, 29229 => 39078, 29230 => 34381,
-29231 => 34388, 29232 => 34412, 29233 => 34414, 29234 => 34431, 29235 => 34426,
-29236 => 34428, 29237 => 34427, 29238 => 34472, 29239 => 34445, 29240 => 34443,
-29241 => 34476, 29242 => 34461, 29243 => 34471, 29244 => 34467, 29245 => 34474,
-29246 => 34451, 29247 => 34473, 29248 => 34486, 29249 => 34500, 29250 => 34485,
-29251 => 34510, 29252 => 34480, 29253 => 34490, 29254 => 34481, 29255 => 34479,
-29256 => 34505, 29257 => 34511, 29258 => 34484, 29259 => 34537, 29260 => 34545,
-29261 => 34546, 29262 => 34541, 29263 => 34547, 29264 => 34512, 29265 => 34579,
-29266 => 34526, 29267 => 34548, 29268 => 34527, 29269 => 34520, 29270 => 34513,
-29271 => 34563, 29272 => 34567, 29273 => 34552, 29274 => 34568, 29275 => 34570,
-29276 => 34573, 29277 => 34569, 29278 => 34595, 29279 => 34619, 29280 => 34590,
-29281 => 34597, 29282 => 34606, 29283 => 34586, 29284 => 34622, 29285 => 34632,
-29286 => 34612, 29287 => 34609, 29288 => 34601, 29289 => 34615, 29290 => 34623,
-29291 => 34690, 29292 => 34594, 29293 => 34685, 29294 => 34686, 29295 => 34683,
-29296 => 34656, 29297 => 34672, 29298 => 34636, 29299 => 34670, 29300 => 34699,
-29301 => 34643, 29302 => 34659, 29303 => 34684, 29304 => 34660, 29305 => 34649,
-29306 => 34661, 29307 => 34707, 29308 => 34735, 29309 => 34728, 29310 => 34770,
-29473 => 34758, 29474 => 34696, 29475 => 34693, 29476 => 34733, 29477 => 34711,
-29478 => 34691, 29479 => 34731, 29480 => 34789, 29481 => 34732, 29482 => 34741,
-29483 => 34739, 29484 => 34763, 29485 => 34771, 29486 => 34749, 29487 => 34769,
-29488 => 34752, 29489 => 34762, 29490 => 34779, 29491 => 34794, 29492 => 34784,
-29493 => 34798, 29494 => 34838, 29495 => 34835, 29496 => 34814, 29497 => 34826,
-29498 => 34843, 29499 => 34849, 29500 => 34873, 29501 => 34876, 29502 => 32566,
-29503 => 32578, 29504 => 32580, 29505 => 32581, 29506 => 33296, 29507 => 31482,
-29508 => 31485, 29509 => 31496, 29510 => 31491, 29511 => 31492, 29512 => 31509,
-29513 => 31498, 29514 => 31531, 29515 => 31503, 29516 => 31559, 29517 => 31544,
-29518 => 31530, 29519 => 31513, 29520 => 31534, 29521 => 31537, 29522 => 31520,
-29523 => 31525, 29524 => 31524, 29525 => 31539, 29526 => 31550, 29527 => 31518,
-29528 => 31576, 29529 => 31578, 29530 => 31557, 29531 => 31605, 29532 => 31564,
-29533 => 31581, 29534 => 31584, 29535 => 31598, 29536 => 31611, 29537 => 31586,
-29538 => 31602, 29539 => 31601, 29540 => 31632, 29541 => 31654, 29542 => 31655,
-29543 => 31672, 29544 => 31660, 29545 => 31645, 29546 => 31656, 29547 => 31621,
-29548 => 31658, 29549 => 31644, 29550 => 31650, 29551 => 31659, 29552 => 31668,
-29553 => 31697, 29554 => 31681, 29555 => 31692, 29556 => 31709, 29557 => 31706,
-29558 => 31717, 29559 => 31718, 29560 => 31722, 29561 => 31756, 29562 => 31742,
-29563 => 31740, 29564 => 31759, 29565 => 31766, 29566 => 31755, 29729 => 31775,
-29730 => 31786, 29731 => 31782, 29732 => 31800, 29733 => 31809, 29734 => 31808,
-29735 => 33278, 29736 => 33281, 29737 => 33282, 29738 => 33284, 29739 => 33260,
-29740 => 34884, 29741 => 33313, 29742 => 33314, 29743 => 33315, 29744 => 33325,
-29745 => 33327, 29746 => 33320, 29747 => 33323, 29748 => 33336, 29749 => 33339,
-29750 => 33331, 29751 => 33332, 29752 => 33342, 29753 => 33348, 29754 => 33353,
-29755 => 33355, 29756 => 33359, 29757 => 33370, 29758 => 33375, 29759 => 33384,
-29760 => 34942, 29761 => 34949, 29762 => 34952, 29763 => 35032, 29764 => 35039,
-29765 => 35166, 29766 => 32669, 29767 => 32671, 29768 => 32679, 29769 => 32687,
-29770 => 32688, 29771 => 32690, 29772 => 31868, 29773 => 25929, 29774 => 31889,
-29775 => 31901, 29776 => 31900, 29777 => 31902, 29778 => 31906, 29779 => 31922,
-29780 => 31932, 29781 => 31933, 29782 => 31937, 29783 => 31943, 29784 => 31948,
-29785 => 31949, 29786 => 31944, 29787 => 31941, 29788 => 31959, 29789 => 31976,
-29790 => 33390, 29791 => 26280, 29792 => 32703, 29793 => 32718, 29794 => 32725,
-29795 => 32741, 29796 => 32737, 29797 => 32742, 29798 => 32745, 29799 => 32750,
-29800 => 32755, 29801 => 31992, 29802 => 32119, 29803 => 32166, 29804 => 32174,
-29805 => 32327, 29806 => 32411, 29807 => 40632, 29808 => 40628, 29809 => 36211,
-29810 => 36228, 29811 => 36244, 29812 => 36241, 29813 => 36273, 29814 => 36199,
-29815 => 36205, 29816 => 35911, 29817 => 35913, 29818 => 37194, 29819 => 37200,
-29820 => 37198, 29821 => 37199, 29822 => 37220, 29985 => 37218, 29986 => 37217,
-29987 => 37232, 29988 => 37225, 29989 => 37231, 29990 => 37245, 29991 => 37246,
-29992 => 37234, 29993 => 37236, 29994 => 37241, 29995 => 37260, 29996 => 37253,
-29997 => 37264, 29998 => 37261, 29999 => 37265, 30000 => 37282, 30001 => 37283,
-30002 => 37290, 30003 => 37293, 30004 => 37294, 30005 => 37295, 30006 => 37301,
-30007 => 37300, 30008 => 37306, 30009 => 35925, 30010 => 40574, 30011 => 36280,
-30012 => 36331, 30013 => 36357, 30014 => 36441, 30015 => 36457, 30016 => 36277,
-30017 => 36287, 30018 => 36284, 30019 => 36282, 30020 => 36292, 30021 => 36310,
-30022 => 36311, 30023 => 36314, 30024 => 36318, 30025 => 36302, 30026 => 36303,
-30027 => 36315, 30028 => 36294, 30029 => 36332, 30030 => 36343, 30031 => 36344,
-30032 => 36323, 30033 => 36345, 30034 => 36347, 30035 => 36324, 30036 => 36361,
-30037 => 36349, 30038 => 36372, 30039 => 36381, 30040 => 36383, 30041 => 36396,
-30042 => 36398, 30043 => 36387, 30044 => 36399, 30045 => 36410, 30046 => 36416,
-30047 => 36409, 30048 => 36405, 30049 => 36413, 30050 => 36401, 30051 => 36425,
-30052 => 36417, 30053 => 36418, 30054 => 36433, 30055 => 36434, 30056 => 36426,
-30057 => 36464, 30058 => 36470, 30059 => 36476, 30060 => 36463, 30061 => 36468,
-30062 => 36485, 30063 => 36495, 30064 => 36500, 30065 => 36496, 30066 => 36508,
-30067 => 36510, 30068 => 35960, 30069 => 35970, 30070 => 35978, 30071 => 35973,
-30072 => 35992, 30073 => 35988, 30074 => 26011, 30075 => 35286, 30076 => 35294,
-30077 => 35290, 30078 => 35292, 30241 => 35301, 30242 => 35307, 30243 => 35311,
-30244 => 35390, 30245 => 35622, 30246 => 38739, 30247 => 38633, 30248 => 38643,
-30249 => 38639, 30250 => 38662, 30251 => 38657, 30252 => 38664, 30253 => 38671,
-30254 => 38670, 30255 => 38698, 30256 => 38701, 30257 => 38704, 30258 => 38718,
-30259 => 40832, 30260 => 40835, 30261 => 40837, 30262 => 40838, 30263 => 40839,
-30264 => 40840, 30265 => 40841, 30266 => 40842, 30267 => 40844, 30268 => 40702,
-30269 => 40715, 30270 => 40717, 30271 => 38585, 30272 => 38588, 30273 => 38589,
-30274 => 38606, 30275 => 38610, 30276 => 30655, 30277 => 38624, 30278 => 37518,
-30279 => 37550, 30280 => 37576, 30281 => 37694, 30282 => 37738, 30283 => 37834,
-30284 => 37775, 30285 => 37950, 30286 => 37995, 30287 => 40063, 30288 => 40066,
-30289 => 40069, 30290 => 40070, 30291 => 40071, 30292 => 40072, 30293 => 31267,
-30294 => 40075, 30295 => 40078, 30296 => 40080, 30297 => 40081, 30298 => 40082,
-30299 => 40084, 30300 => 40085, 30301 => 40090, 30302 => 40091, 30303 => 40094,
-30304 => 40095, 30305 => 40096, 30306 => 40097, 30307 => 40098, 30308 => 40099,
-30309 => 40101, 30310 => 40102, 30311 => 40103, 30312 => 40104, 30313 => 40105,
-30314 => 40107, 30315 => 40109, 30316 => 40110, 30317 => 40112, 30318 => 40113,
-30319 => 40114, 30320 => 40115, 30321 => 40116, 30322 => 40117, 30323 => 40118,
-30324 => 40119, 30325 => 40122, 30326 => 40123, 30327 => 40124, 30328 => 40125,
-30329 => 40132, 30330 => 40133, 30331 => 40134, 30332 => 40135, 30333 => 40138,
-30334 => 40139, 30497 => 40140, 30498 => 40141, 30499 => 40142, 30500 => 40143,
-30501 => 40144, 30502 => 40147, 30503 => 40148, 30504 => 40149, 30505 => 40151,
-30506 => 40152, 30507 => 40153, 30508 => 40156, 30509 => 40157, 30510 => 40159,
-30511 => 40162, 30512 => 38780, 30513 => 38789, 30514 => 38801, 30515 => 38802,
-30516 => 38804, 30517 => 38831, 30518 => 38827, 30519 => 38819, 30520 => 38834,
-30521 => 38836, 30522 => 39601, 30523 => 39600, 30524 => 39607, 30525 => 40536,
-30526 => 39606, 30527 => 39610, 30528 => 39612, 30529 => 39617, 30530 => 39616,
-30531 => 39621, 30532 => 39618, 30533 => 39627, 30534 => 39628, 30535 => 39633,
-30536 => 39749, 30537 => 39747, 30538 => 39751, 30539 => 39753, 30540 => 39752,
-30541 => 39757, 30542 => 39761, 30543 => 39144, 30544 => 39181, 30545 => 39214,
-30546 => 39253, 30547 => 39252, 30548 => 39647, 30549 => 39649, 30550 => 39654,
-30551 => 39663, 30552 => 39659, 30553 => 39675, 30554 => 39661, 30555 => 39673,
-30556 => 39688, 30557 => 39695, 30558 => 39699, 30559 => 39711, 30560 => 39715,
-30561 => 40637, 30562 => 40638, 30563 => 32315, 30564 => 40578, 30565 => 40583,
-30566 => 40584, 30567 => 40587, 30568 => 40594, 30569 => 37846, 30570 => 40605,
-30571 => 40607, 30572 => 40667, 30573 => 40668, 30574 => 40669, 30575 => 40672,
-30576 => 40671, 30577 => 40674, 30578 => 40681, 30579 => 40679, 30580 => 40677,
-30581 => 40682, 30582 => 40687, 30583 => 40738, 30584 => 40748, 30585 => 40751,
-30586 => 40761, 30587 => 40759, 30588 => 40765, 30589 => 40766, 30590 => 40772,
-0 => 0 );
-
-    function gb2utf8($gb) {
-	if( !trim($gb) ) return $gb;
-	$utf8='';
-	while($gb) {
-	    if( ord(substr($gb,0,1)) > 127 ) {
-		$t=substr($gb,0,2);
-		$gb=substr($gb,2);
-		$utf8 .= $this->u2utf8($this->codetable[hexdec(bin2hex($t))-0x8080]);
-	    }
-	    else { 
-		$t=substr($gb,0,1);
-		$gb=substr($gb,1);
-		$utf8 .= $this->u2utf8($t);
-	    }
-	}
-	return $utf8;
-    }
-    
-    function u2utf8($c) {
-	$str='';
-	if ($c < 0x80) {
-	    $str.=$c;
-	    }
-	else if ($c < 0x800) {
-	    $str.=chr(0xC0 | $c>>6);
-	    $str.=chr(0x80 | $c & 0x3F);
-	    }
-	else if ($c < 0x10000) {
-	    $str.=chr(0xE0 | $c>>12);
-	    $str.=chr(0x80 | $c>>6 & 0x3F);
-		$str.=chr(0x80 | $c & 0x3F);
-	}
-	else if ($c < 0x200000) {
-	    $str.=chr(0xF0 | $c>>18);
-	    $str.=chr(0x80 | $c>>12 & 0x3F);
-	    $str.=chr(0x80 | $c>>6 & 0x3F);
-	    $str.=chr(0x80 | $c & 0x3F);
-	}
-	return $str;
-    }
-
-} // END Class 
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_gradient.php b/nightly-test-server/jpgraph/jpgraph_gradient.php
deleted file mode 100644
index 08b07b6..0000000
--- a/nightly-test-server/jpgraph/jpgraph_gradient.php
+++ /dev/null
@@ -1,425 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_GRADIENT.PHP
-// Description:	Create a color gradient
-// Created: 	2003-02-01
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-// Styles for gradient color fill
-DEFINE("GRAD_VER",1);
-DEFINE("GRAD_VERT",1);
-DEFINE("GRAD_HOR",2);
-DEFINE("GRAD_MIDHOR",3);
-DEFINE("GRAD_MIDVER",4);
-DEFINE("GRAD_CENTER",5);
-DEFINE("GRAD_WIDE_MIDVER",6);
-DEFINE("GRAD_WIDE_MIDHOR",7);
-DEFINE("GRAD_LEFT_REFLECTION",8);
-DEFINE("GRAD_RIGHT_REFLECTION",9);
-DEFINE("GRAD_RAISED_PANEL",10);
-DEFINE("GRAD_DIAGONAL",11);
-  
-//===================================================
-// CLASS Gradient
-// Description: Handles gradient fills. This is to be
-// considered a "friend" class of Class Image.
-//===================================================
-class Gradient {
-    var $img=null;
-    var $numcolors=100;
-//---------------
-// CONSTRUCTOR
-    function Gradient(&$img) {
-	$this->img = &$img;
-    }
-
-
-    function SetNumColors($aNum) {
-	$this->numcolors=$aNum;
-    }
-//---------------
-// PUBLIC METHODS	
-    // Produce a gradient filled rectangle with a smooth transition between
-    // two colors.
-    // ($xl,$yt) 	Top left corner
-    // ($xr,$yb)	Bottom right
-    // $from_color	Starting color in gradient
-    // $to_color	End color in the gradient
-    // $style		Which way is the gradient oriented?
-    function FilledRectangle($xl,$yt,$xr,$yb,$from_color,$to_color,$style=1) {
-	switch( $style ) {	
-	    case GRAD_VER:  
-		$steps = round(abs($xr-$xl));
-		$delta = $xr>=$xl ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for( $i=0, $x=$xl; $i < $steps; ++$i ) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yt,$x,$yb);
-		    $x += $delta;
-		}
-		break;
-
-	    case GRAD_HOR: 
-		$steps = round(abs($yb-$yt));
-		$delta = $yb>=$yt ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for($i=0,$y=$yt; $i < $steps; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		break;
-
-	    case GRAD_MIDHOR: 
-		$steps = round(abs($yb-$yt)/2);
-		$delta = $yb >= $yt ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for($y=$yt, $i=0; $i < $steps;  ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		--$i;
-		if( abs($yb-$yt) % 2 == 1 ) --$steps;
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		$this->img->Line($xl,$y,$xr,$y);
-		break;
-
-	    case GRAD_MIDVER: 
-		$steps = round(abs($xr-$xl)/2);
-		$delta = $xr>=$xl ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		for($x=$xl, $i=0; $i < $steps; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		--$i;
-		if( abs($xr-$xl) % 2 == 1 ) --$steps;
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$this->img->Line($x,$yb,$x,$yt);		
-		break;
-
-	    case GRAD_WIDE_MIDVER: 
-		$diff = round(abs($xr-$xl));
-		$steps = floor(abs($diff)/3);
-		$firststep = $diff - 2*$steps ; 
-		$delta = $xr >= $xl ? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$firststep,$colors,$this->numcolors);
-		for($x=$xl, $i=0; $i < $firststep; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		--$i;
-		$this->img->current_color = $colors[$i];
-		for($j=0; $j< $steps; ++$j) {
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];				
-		    $this->img->Line($x,$yb,$x,$yt);	
-		    $x += $delta;
-		}				
-		break;
-
-	    case GRAD_WIDE_MIDHOR:
-		$diff = round(abs($yb-$yt));
-		$steps = floor(abs($diff)/3);
-		$firststep = $diff - 2*$steps ; 
-		$delta = $yb >= $yt? 1 : -1;
-		$this->GetColArray($from_color,$to_color,$firststep,$colors,$this->numcolors);
-		for($y=$yt, $i=0; $i < $firststep;  ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		--$i;
-		$this->img->current_color = $colors[$i];
-		for($j=0; $j < $steps; ++$j) {
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}
-		for($j=0; $j < $steps; ++$j, --$i) {
-		    $this->img->current_color = $colors[$i];				
-		    $this->img->Line($xl,$y,$xr,$y);
-		    $y += $delta;
-		}				
-		break;	    
-
-	    case GRAD_LEFT_REFLECTION: 
-		$steps1 = round(0.3*abs($xr-$xl));
-		$delta = $xr>=$xl ? 1 : -1;		
-
-		$from_color = $this->img->rgb->Color($from_color);
-		$adj = 1.4;
-		$m = ($adj-1.0)*(255-min(255,min($from_color[0],min($from_color[1],$from_color[2]))));
-		$from_color2 = array(min(255,$from_color[0]+$m), 
-				    min(255,$from_color[1]+$m), min(255,$from_color[2]+$m));		
-
-		$this->GetColArray($from_color2,$to_color,$steps1,$colors,$this->numcolors);
-		$n = count($colors);
-		for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$steps2 = max(1,round(0.08*abs($xr-$xl)));
-		$this->img->SetColor($to_color);
-		for($j=0; $j< $steps2; ++$j) {
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$steps = abs($xr-$xl)-$steps1-$steps2;
-		$this->GetColArray($to_color,$from_color,$steps,$colors,$this->numcolors);   
-		$n = count($colors);
-		for($i=0; $i < $steps && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		break;
-
-	    case GRAD_RIGHT_REFLECTION: 
-		$steps1 = round(0.7*abs($xr-$xl));
-		$delta = $xr>=$xl ? 1 : -1;
-
-		$this->GetColArray($from_color,$to_color,$steps1,$colors,$this->numcolors);
-		$n = count($colors);
-		for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		$steps2 = max(1,round(0.08*abs($xr-$xl)));
-		$this->img->SetColor($to_color);
-		for($j=0; $j< $steps2; ++$j) {
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-
-		$from_color = $this->img->rgb->Color($from_color);
-		$adj = 1.4;
-		$m = ($adj-1.0)*(255-min(255,min($from_color[0],min($from_color[1],$from_color[2]))));
-		$from_color = array(min(255,$from_color[0]+$m), 
-				    min(255,$from_color[1]+$m), min(255,$from_color[2]+$m));		
-
-		$steps = abs($xr-$xl)-$steps1-$steps2;
-		$this->GetColArray($to_color,$from_color,$steps,$colors,$this->numcolors);   
-		$n = count($colors);
-		for($i=0; $i < $steps && $i < $n; ++$i) {
-		    $this->img->current_color = $colors[$i];
-		    $this->img->Line($x,$yb,$x,$yt);
-		    $x += $delta;
-		}
-		break;
-
-	    case GRAD_CENTER: 
-		$steps = ceil(min(($yb-$yt)+1,($xr-$xl)+1)/2);	
-		$this->GetColArray($from_color,$to_color,$steps,$colors,$this->numcolors);
-		$dx = ($xr-$xl)/2;
-		$dy = ($yb-$yt)/2;
-		$x=$xl;$y=$yt;$x2=$xr;$y2=$yb;
-		$n = count($colors);
-		for($x=$xl, $i=0; $x < $xl+$dx && $y < $yt+$dy && $i < $n; ++$x, ++$y, --$x2, --$y2, ++$i) {
-		    $this->img->current_color = $colors[$i];			
-		    $this->img->Rectangle($x,$y,$x2,$y2);
-		}
-		$this->img->Line($x,$y,$x2,$y2);
-		break;
-		
-	    case GRAD_RAISED_PANEL:
-		// right to left 
-		$steps1 = $xr-$xl; 
-		$delta = $xr>=$xl ? 1 : -1; 
-		$this->GetColArray($to_color,$from_color,$steps1,$colors,$this->numcolors); 
-		$n = count($colors);
-		for($x=$xl, $i=0; $i < $steps1 && $i < $n; ++$i) { 
-		    $this->img->current_color = $colors[$i]; 
-		    $this->img->Line($x,$yb,$x,$yt); 
-		    $x += $delta; 
-		} 
-		
-		// left to right 
-		$xr -= 3; 
-		$xl += 3; 
-		$yb -= 3; 
-		$yt += 3; 
-		$steps2 = $xr-$xl; 
-		$delta = $xr>=$xl ? 1 : -1; 
-		for($x=$xl, $j=$steps2; $j >= 0; --$j) { 
-		    $this->img->current_color = $colors[$j]; 
-		    $this->img->Line($x,$yb,$x,$yt); 
-		    $x += $delta; 
-		} 
-		break;
-
-	    case GRAD_DIAGONAL:
-		// use the longer dimension to determine the required number of steps.
-		// first loop draws from one corner to the mid-diagonal and the second
-		// loop draws from the mid-diagonal to the opposing corner.
-		if($xr-$xl > $yb - $yt) {
-		    // width is greater than height -> use x-dimension for steps
-		    $steps = $xr-$xl;
-		    $delta = $xr>=$xl ? 1 : -1;
-		    $this->GetColArray($from_color,$to_color,$steps*2,$colors,$this->numcolors);
-		    $n = count($colors);
-
-		    for($x=$xl, $i=0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$i];
-			$y = $yt+($i/$steps)*($yb-$yt)*$delta;
-			$this->img->Line($x,$yt,$xl,$y);
-			$x += $delta;
-		    }
-
-		    for($x=$xl, $i = 0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$steps+$i];
-			$y = $yt+($i/$steps)*($yb-$yt)*$delta;
-			$this->img->Line($x,$yb,$xr,$y);
-			$x += $delta;
-		    }
-		} else {
-		    // height is greater than width -> use y-dimension for steps
-		    $steps = $yb-$yt;
-		    $delta = $yb>=$yt ? 1 : -1;
-		    $this->GetColArray($from_color,$to_color,$steps*2,$colors,$this->numcolors);
-		    $n = count($colors);
-		    
-		    for($y=$yt, $i=0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$i];
-			$x = $xl+($i/$steps)*($xr-$xl)*$delta;
-			$this->img->Line($x,$yt,$xl,$y);
-			$y += $delta;
-		    }
-
-		    for($y=$yt, $i = 0; $i < $steps && $i < $n; ++$i) {
-			$this->img->current_color = $colors[$steps+$i];
-			$x = $xl+($i/$steps)*($xr-$xl)*$delta;
-			$this->img->Line($x,$yb,$xr,$y);
-			$x += $delta;
-		    }
-
-		}
-		break;
-
-	    default:
-		JpGraphError::RaiseL(7001,$style);
-//("Unknown gradient style (=$style).");
-		break;
-	}
-    }
-
-    // Fill a special case of a polygon with a flat bottom
-    // with a gradient. Can be used for filled line plots.
-    // Please note that this is NOT a generic gradient polygon fill
-    // routine. It assumes that the bottom is flat (like a drawing
-    // of a mountain)
-    function FilledFlatPolygon($pts,$from_color,$to_color) {
-	if( count($pts) == 0 ) return;
-	
-	$maxy=$pts[1];
-	$miny=$pts[1];		
-	$n = count($pts) ;
-	for( $i=0, $idx=0; $i < $n; $i += 2) {
-	    $x = round($pts[$i]);
-	    $y = round($pts[$i+1]);
-	    $miny = min($miny,$y);
-	    $maxy = max($maxy,$y);
-	}
-	    
-	$colors = array();
-	$this->GetColArray($from_color,$to_color,abs($maxy-$miny)+1,$colors,$this->numcolors);
-	for($i=$miny, $idx=0; $i <= $maxy; ++$i ) {
-	    $colmap[$i] = $colors[$idx++]; 
-	}
-
-	$n = count($pts)/2 ;
-	$idx = 0 ;
-	while( $idx < $n-1 ) {
-	    $p1 = array(round($pts[$idx*2]),round($pts[$idx*2+1]));
-	    $p2 = array(round($pts[++$idx*2]),round($pts[$idx*2+1]));
-		
-	    // Find the largest rectangle we can fill
-	    $y = max($p1[1],$p2[1]) ;
-	    for($yy=$maxy; $yy > $y; --$yy) {
-		$this->img->current_color = $colmap[$yy];
-		$this->img->Line($p1[0],$yy,$p2[0]-1,$yy);
-	    }
-	    
-	    if( $p1[1] == $p2[1] ) continue; 
-
-	    // Fill the rest using lines (slow...)
-	    $slope = ($p2[0]-$p1[0])/($p1[1]-$p2[1]);
-	    $x1 = $p1[0];
-	    $x2 = $p2[0]; //-1;
-	    $start = $y;
-	    if( $p1[1] > $p2[1] ) {
-		while( $y >= $p2[1] ) {
-		    $x1=$slope*($start-$y)+$p1[0];
-		    $this->img->current_color = $colmap[$y];
-		    $this->img->Line($x1,$y,$x2,$y);
-		    --$y;
-		} 
-	    }
-	    else {
-		while( $y >= $p1[1] ) {
-		    $x2=$p2[0]+$slope*($start-$y);
-		    $this->img->current_color = $colmap[$y];
-		    $this->img->Line($x1,$y,$x2,$y);
-		    --$y;
-		} 
-	    }
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-    // Add to the image color map the necessary colors to do the transition
-    // between the two colors using $numcolors intermediate colors
-    function GetColArray($from_color,$to_color,$arr_size,&$colors,$numcols=100) {
-	if( $arr_size==0 ) return;
-	// If color is given as text get it's corresponding r,g,b values
-	$from_color = $this->img->rgb->Color($from_color);
-	$to_color = $this->img->rgb->Color($to_color);
-		
-	$rdelta=($to_color[0]-$from_color[0])/$numcols;
-	$gdelta=($to_color[1]-$from_color[1])/$numcols;
-	$bdelta=($to_color[2]-$from_color[2])/$numcols;
-	$colorsperstep	= $numcols/$arr_size;
-	$prevcolnum	= -1;
-	$from_alpha = $from_color[3];
-	$to_alpha = $to_color[3];
-	$adelta = ( $to_alpha - $from_alpha ) / $numcols ;
-	for ($i=0; $i < $arr_size; ++$i) {
-	    $colnum = floor($colorsperstep*$i);
-	    if ( $colnum == $prevcolnum ) 
-		$colors[$i]	= $colidx;
-	    else {
-		$r = floor($from_color[0] + $colnum*$rdelta);
-		$g = floor($from_color[1] + $colnum*$gdelta);
-		$b = floor($from_color[2] + $colnum*$bdelta);
-		$alpha = $from_alpha + $colnum*$adelta;
-		$colidx = $this->img->rgb->Allocate(sprintf("#%02x%02x%02x",$r,$g,$b),$alpha);
-		$colors[$i] = $colidx;
-	    }
-	    $prevcolnum = $colnum;
-	}
-    }	
-} // Class
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_iconplot.php b/nightly-test-server/jpgraph/jpgraph_iconplot.php
deleted file mode 100644
index 895fe22..0000000
--- a/nightly-test-server/jpgraph/jpgraph_iconplot.php
+++ /dev/null
@@ -1,190 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_ICONPLOT.PHP
-// Description:	PHP4 Graph Plotting library. Extension module.
-// Created: 	2004-02-18
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-//===================================================
-// CLASS IconPlot
-// Description: Make it possible to add a (small) image
-// to the graph
-//===================================================
-class IconPlot {
-    var $iHorAnchor='left',$iVertAnchor='top';
-    var $iX=0,$iY=0;
-    var $iFile='';
-    var $iScale=1.0,$iMix=100;
-    var $iAnchors = array('left','right','top','bottom','center');
-    var $iCountryFlag='',$iCountryStdSize=3;
-    var $iScalePosY=null,$iScalePosX=null;
-    var $iImgString='';
-
-    function IconPlot($aFile="",$aX=0,$aY=0,$aScale=1.0,$aMix=100) {
-	$this->iFile = $aFile;
-	$this->iX=$aX;
-	$this->iY=$aY;
-	$this->iScale= $aScale;
-	if( $aMix < 0 || $aMix > 100 ) {
-	    JpGraphError::RaiseL(8001); //('Mix value for icon must be between 0 and 100.');
-	}
-	$this->iMix = $aMix ;
-    }
-
-    function CreateFromString($aStr) {
-	$this->iImgString = $aStr;
-    }
-
-    function SetCountryFlag($aFlag,$aX=0,$aY=0,$aScale=1.0,$aMix=100,$aStdSize=3) {
-	$this->iCountryFlag = $aFlag;
-	$this->iX=$aX;
-	$this->iY=$aY;
-	$this->iScale= $aScale;
-	if( $aMix < 0 || $aMix > 100 ) {
-	    JpGraphError::RaiseL(8001);//'Mix value for icon must be between 0 and 100.');
-	}
-	$this->iMix = $aMix;
-	$this->iCountryStdSize = $aStdSize;
-    }
-
-    function SetPos($aX,$aY) {
-	$this->iX=$aX;
-	$this->iY=$aY;
-    }
-
-    function SetScalePos($aX,$aY) {
-	$this->iScalePosX = $aX;
-	$this->iScalePosY = $aY;
-    }
-
-    function SetScale($aScale) {
-	$this->iScale = $aScale;
-    }
-
-    function SetMix($aMix) {
-	if( $aMix < 0 || $aMix > 100 ) {
-	    JpGraphError::RaiseL(8001);//('Mix value for icon must be between 0 and 100.');
-	}
-	$this->iMix = $aMix ;
-    }
-
-    function SetAnchor($aXAnchor='left',$aYAnchor='center') {
-	if( !in_array($aXAnchor,$this->iAnchors) ||
-	    !in_array($aYAnchor,$this->iAnchors) ) {
-	    JpGraphError::RaiseL(8002);//("Anchor position for icons must be one of 'top', 'bottom', 'left', 'right' or 'center'");
-	}
-	$this->iHorAnchor=$aXAnchor;
-	$this->iVertAnchor=$aYAnchor;
-    }
-    
-    function PreStrokeAdjust($aGraph) {
-	// Nothing to do ...
-    }
-
-    function DoLegend($aGraph) {
-	// Nothing to do ...
-    }
-
-    function Max() {
-	return array(false,false);
-    }
-
-
-    // The next four function are framework function tht gets called
-    // from Gantt and is not menaiungfull in the context of Icons but
-    // they must be implemented to avoid errors.
-    function GetMaxDate() { return false;   }
-    function GetMinDate() { return false;   }
-    function GetLineNbr() { return 0;   }
-    function GetAbsHeight() {return 0;  }
-
-
-    function Min() {
-	return array(false,false);
-    }
-
-    function StrokeMargin(&$aImg) {
-	return true;
-    }
-
-    function Stroke(&$aImg,$axscale,$ayscale) {
-	$this->StrokeWithScale($aImg,$axscale,$ayscale);
-    }
-
-    function StrokeWithScale(&$aImg,$axscale,$ayscale) {
-	if( $this->iScalePosX === null ||
-	    $this->iScalePosY === null ) {
-	    $this->_Stroke($aImg);
-	}
-	else {
-	    $this->_Stroke($aImg,
-			  round($axscale->Translate($this->iScalePosX)),
-			  round($ayscale->Translate($this->iScalePosY)));
-	}
-    }
-
-    function GetWidthHeight() {
-	$dummy=0;
-	return $this->_Stroke($dummy,null,null,true);
-    }
-
-    function _Stroke(&$aImg,$x=null,$y=null,$aReturnWidthHeight=false) {
-	if( $this->iFile != '' && $this->iCountryFlag != '' ) {
-	    JpGraphError::RaiseL(8003);//('It is not possible to specify both an image file and a country flag for the same icon.');	
-	}
-	if( $this->iFile != '' ) {
-	    $gdimg = Graph::LoadBkgImage('',$this->iFile);
-	}
-	elseif( $this->iImgString != '') {
-	    $gdimg = Image::CreateFromString($this->iImgString);
-	}
-	else {
-	    if( ! class_exists('FlagImages') ) {
-		JpGraphError::RaiseL(8004);//('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.');
-	    }
-	    $fobj = new FlagImages($this->iCountryStdSize);
-	    $dummy='';
-	    $gdimg = $fobj->GetImgByName($this->iCountryFlag,$dummy);
-	}
-
-	$iconw = imagesx($gdimg);
-	$iconh = imagesy($gdimg);
-	
-	if( $aReturnWidthHeight ) {
-	    return array(round($iconw*$this->iScale),round($iconh*$this->iScale));
-	}
-
-	if( $x !== null && $y !== null ) {
-	    $this->iX = $x; $this->iY = $y;
-	}
-	if( $this->iX >= 0  && $this->iX <= 1.0 ) {
-	    $w = imagesx($aImg->img);
-	    $this->iX = round($w*$this->iX);
-	}
-	if( $this->iY >= 0  && $this->iY <= 1.0 ) {
-	    $h = imagesy($aImg->img);
-	    $this->iY = round($h*$this->iY);
-	}
-
-	if( $this->iHorAnchor == 'center' ) 
-	    $this->iX -= round($iconw*$this->iScale/2);
-	if( $this->iHorAnchor == 'right' ) 
-	    $this->iX -= round($iconw*$this->iScale);
-	if( $this->iVertAnchor == 'center' ) 
-	    $this->iY -= round($iconh*$this->iScale/2);
-	if( $this->iVertAnchor == 'bottom' ) 
-	    $this->iY -= round($iconh*$this->iScale);
-
-	$aImg->CopyMerge($gdimg,$this->iX,$this->iY,0,0,
-			 round($iconw*$this->iScale),round($iconh*$this->iScale),
-			 $iconw,$iconh,
-			 $this->iMix);
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_imgtrans.php b/nightly-test-server/jpgraph/jpgraph_imgtrans.php
deleted file mode 100644
index f3b974e..0000000
--- a/nightly-test-server/jpgraph/jpgraph_imgtrans.php
+++ /dev/null
@@ -1,224 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_IMGTRANS.PHP
-// Description:	Extension for JpGraph to do some simple img transformations
-// Created: 	2003-09-06
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-//------------------------------------------------------------------------
-// Class ImgTrans
-// Perform some simple image transformations. 
-//------------------------------------------------------------------------
-class ImgTrans {
-    var $gdImg=null;
-
-    function ImgTrans($aGdImg) {
-	// Constructor
-	$this->gdImg = $aGdImg;
-    }
-
-    // --------------------------------------------------------------------
-    // _TransVert3D() and _TransHor3D() are helper methods to 
-    // Skew3D(). 
-    // --------------------------------------------------------------------
-    function _TransVert3D($aGdImg,$aHorizon=100,$aSkewDist=120,$aDir=SKEW3D_DOWN,$aMinSize=true,$aFillColor='#FFFFFF',$aQuality=false,$aBorder=false,$aHorizonPos=0.5) {
-
-
-	// Parameter check
-	if( $aHorizonPos < 0 || $aHorizonPos > 1.0 ) {
-	    JpGraphError::RaiseL(9001);
-//("Value for image transformation out of bounds.\nVanishing point on horizon must be specified as a value between 0 and 1.");
-	}
-
-	$w = imagesx($aGdImg);
-	$h = imagesy($aGdImg);
-
-	// Create new image
-	$ww = $w;
-	if( $aMinSize ) 
-	    $hh = ceil($h * $aHorizon / ($aSkewDist+$h));
-	else 
-	    $hh = $h;
-	
-	$newgdh = imagecreatetruecolor($ww,$hh);
-	$crgb = new RGB( $newgdh );
-	$fillColor = $crgb->Allocate($aFillColor);
-	imagefilledrectangle($newgdh,0,0,$ww-1,$hh-1,$fillColor);
-
-	if( $aBorder ) {
-	    $colidx = $crgb->Allocate($aBorder);
-	    imagerectangle($newgdh,0,0,$ww-1,$hh-1,$colidx);
-	}
-
-	$mid = round($w * $aHorizonPos);
-    
-	$last=$h;
-	for($y=0; $y < $h; ++$y) {	
-
-	    $yp = $h-$y-1;
-	    $yt = floor($yp * $aHorizon / ($aSkewDist + $yp));	    
-
-	    if( !$aQuality ) {
-		if( $last <= $yt ) continue ;
-		$last = $yt;
-	    }
-
-	    for($x=0; $x < $w; ++$x) {	    
-		$xt = ($x-$mid) * $aSkewDist / ($aSkewDist + $yp);
-		if( $aDir == SKEW3D_UP ) 
-		    $rgb = imagecolorat($aGdImg,$x,$h-$y-1);
-		else
-		    $rgb = imagecolorat($aGdImg,$x,$y);
-		$r = ($rgb >> 16) & 0xFF;
-		$g = ($rgb >> 8) & 0xFF;
-		$b = $rgb & 0xFF;    
-		$colidx = imagecolorallocate($newgdh,$r,$g,$b);	
-		$xt = round($xt+$mid);
-		if( $aDir == SKEW3D_UP ) {
-		    $syt = $yt;
-		}
-		else {
-		    $syt = $hh-$yt-1;
-		}
-
-		if( !empty($set[$yt]) ) {
-		    $nrgb = imagecolorat($newgdh,$xt,$syt);
-		    $nr = ($nrgb >> 16) & 0xFF;
-		    $ng = ($nrgb >> 8) & 0xFF;
-		    $nb = $nrgb & 0xFF;    
-		    $colidx = imagecolorallocate($newgdh,floor(($r+$nr)/2),
-						 floor(($g+$ng)/2),floor(($b+$nb)/2));	
-		}	
-
-		imagesetpixel($newgdh,$xt,$syt,$colidx);	
-	    }
-
-	    $set[$yt] = true;	
-	}
-
-	return $newgdh;
-    }
-
-    // --------------------------------------------------------------------
-    // _TransVert3D() and _TransHor3D() are helper methods to 
-    // Skew3D(). 
-    // --------------------------------------------------------------------
-    function _TransHor3D($aGdImg,$aHorizon=100,$aSkewDist=120,$aDir=SKEW3D_LEFT,$aMinSize=true,$aFillColor='#FFFFFF',$aQuality=false,$aBorder=false,$aHorizonPos=0.5) {
-
-	$w = imagesx($aGdImg);
-	$h = imagesy($aGdImg);
-
-	// Create new image
-	$hh = $h;
-	if( $aMinSize ) 
-	    $ww = ceil($w * $aHorizon / ($aSkewDist+$w));
-	else 
-	    $ww = $w;
-	
-	$newgdh = imagecreatetruecolor($ww,$hh);
-	$crgb = new RGB( $newgdh );
-	$fillColor = $crgb->Allocate($aFillColor);
-	imagefilledrectangle($newgdh,0,0,$ww-1,$hh-1,$fillColor);
-
-	if( $aBorder ) {
-	    $colidx = $crgb->Allocate($aBorder);
-	    imagerectangle($newgdh,0,0,$ww-1,$hh-1,$colidx);
-	}
-
-	$mid = round($h * $aHorizonPos);
-
-	$last = -1; 
-	for($x=0; $x < $w-1; ++$x) {	    
-	    $xt = floor($x * $aHorizon / ($aSkewDist + $x));
-	    if( !$aQuality ) {
-		if( $last >= $xt ) continue ;
-		$last = $xt;
-	    }
-
-	    for($y=0; $y < $h; ++$y) {	
-		$yp = $h-$y-1;
-		$yt = ($yp-$mid) * $aSkewDist / ($aSkewDist + $x);
-
-		if( $aDir == SKEW3D_RIGHT ) 
-		    $rgb = imagecolorat($aGdImg,$w-$x-1,$y);
-		else
-		    $rgb = imagecolorat($aGdImg,$x,$y);
-		$r = ($rgb >> 16) & 0xFF;
-		$g = ($rgb >> 8) & 0xFF;
-		$b = $rgb & 0xFF;    
-		$colidx = imagecolorallocate($newgdh,$r,$g,$b);	
-		$yt = floor($hh-$yt-$mid-1);
-		if( $aDir == SKEW3D_RIGHT ) {
-		    $sxt = $ww-$xt-1;
-		}
-		else
-		    $sxt = $xt ;
-
-		if( !empty($set[$xt]) ) {
-		    $nrgb = imagecolorat($newgdh,$sxt,$yt);
-		    $nr = ($nrgb >> 16) & 0xFF;
-		    $ng = ($nrgb >> 8) & 0xFF;
-		    $nb = $nrgb & 0xFF;    
-		    $colidx = imagecolorallocate($newgdh,floor(($r+$nr)/2),
-						 floor(($g+$ng)/2),floor(($b+$nb)/2));	
-		}
-		imagesetpixel($newgdh,$sxt,$yt,$colidx);	
-	    }
-
-	    $set[$xt] = true;
-	}
-
-	return $newgdh;
-    }
-
-    // --------------------------------------------------------------------
-    // Skew image for the apperance of a 3D effect
-    // This transforms an image into a 3D-skewed version
-    // of the image. The transformation is specified by giving the height
-    // of the artificial horizon and specifying a "skew" factor which
-    // is the distance on the horizon line between the point of 
-    // convergence and perspective line.
-    //
-    // The function returns the GD handle of the transformed image
-    // leaving the original image untouched.
-    //
-    // Parameters:
-    // * $aGdImg, GD handle to the image to be transformed
-    // * $aHorizon, Distance to the horizon 
-    // * $aSkewDist, Distance from the horizon point of convergence
-    //   on the horizon line to the perspective points. A larger 
-    //   value will fore-shorten the image more
-    // * $aDir, parameter specifies type of convergence. This of this 
-    //   as the walls in a room you are looking at. This specifies if the
-    //   image should be applied on the left,right,top or bottom walls.
-    // * $aMinSize, true=make the new image just as big as needed,
-    //   false = keep the image the same size as the original image
-    // * $aFillColor, Background fill color in the image
-    // * $aHiQuality, true=performa some interpolation that improves
-    //   the image quality but at the expense of performace. Enabling
-    //   high quality will have a dramatic effect on the time it takes
-    //   to transform an image.
-    // * $aBorder, if set to anything besides false this will draw a 
-    //   a border of the speciied color around the image
-    // --------------------------------------------------------------------
-    function Skew3D($aHorizon=120,$aSkewDist=150,$aDir=SKEW3D_DOWN,$aHiQuality=false,$aMinSize=true,$aFillColor='#FFFFFF',$aBorder=false) {
-	return $this->_Skew3D($this->gdImg,$aHorizon,$aSkewDist,$aDir,$aHiQuality,
-			      $aMinSize,$aFillColor,$aBorder);
-    }
-
-    function _Skew3D($aGdImg,$aHorizon=120,$aSkewDist=150,$aDir=SKEW3D_DOWN,$aHiQuality=false,$aMinSize=true,$aFillColor='#FFFFFF',$aBorder=false) {
-	if( $aDir == SKEW3D_DOWN || $aDir == SKEW3D_UP )
-	    return $this->_TransVert3D($aGdImg,$aHorizon,$aSkewDist,$aDir,$aMinSize,$aFillColor,$aHiQuality,$aBorder);
-	else
-	    return $this->_TransHor3D($aGdImg,$aHorizon,$aSkewDist,$aDir,$aMinSize,$aFillColor,$aHiQuality,$aBorder);
-
-    }
-    
-}
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_line.php b/nightly-test-server/jpgraph/jpgraph_line.php
deleted file mode 100644
index e47fd8b..0000000
--- a/nightly-test-server/jpgraph/jpgraph_line.php
+++ /dev/null
@@ -1,625 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_LINE.PHP
-// Description:	Line plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once ('jpgraph_plotmark.inc');
-
-// constants for the (filled) area
-DEFINE("LP_AREA_FILLED", true);
-DEFINE("LP_AREA_NOT_FILLED", false);
-DEFINE("LP_AREA_BORDER",false);
-DEFINE("LP_AREA_NO_BORDER",true);
-
-//===================================================
-// CLASS LinePlot
-// Description: 
-//===================================================
-class LinePlot extends Plot{
-    var $filled=false;
-    var $fill_color='blue';
-    var $mark=null;
-    var $step_style=false, $center=false;
-    var $line_style=1;	// Default to solid
-    var $filledAreas = array(); // array of arrays(with min,max,col,filled in them)
-    var $barcenter=false;  // When we mix line and bar. Should we center the line in the bar.
-    var $fillFromMin = false ;
-    var $fillgrad=false,$fillgrad_fromcolor='navy',$fillgrad_tocolor='silver',$fillgrad_numcolors=100;
-    var $iFastStroke=false;
-
-//---------------
-// CONSTRUCTOR
-    function LinePlot(&$datay,$datax=false) {
-	$this->Plot($datay,$datax);
-	$this->mark = new PlotMark();
-    }
-//---------------
-// PUBLIC METHODS	
-
-    // Set style, filled or open
-    function SetFilled($aFlag=true) {
-    	JpGraphError::RaiseL(10001);//('LinePlot::SetFilled() is deprecated. Use SetFillColor()');
-    }
-	
-    function SetBarCenter($aFlag=true) {
-	$this->barcenter=$aFlag;
-    }
-
-    function SetStyle($aStyle) {
-	$this->line_style=$aStyle;
-    }
-	
-    function SetStepStyle($aFlag=true) {
-	$this->step_style = $aFlag;
-    }
-	
-    function SetColor($aColor) {
-	parent::SetColor($aColor);
-    }
-	
-    function SetFillFromYMin($f=true) {
-	$this->fillFromMin = $f ;
-    }
-    
-    function SetFillColor($aColor,$aFilled=true) {
-	$this->fill_color=$aColor;
-	$this->filled=$aFilled;
-    }
-
-    function SetFillGradient($aFromColor,$aToColor,$aNumColors=100,$aFilled=true) {
-	$this->fillgrad_fromcolor = $aFromColor;
-	$this->fillgrad_tocolor   = $aToColor;
-	$this->fillgrad_numcolors = $aNumColors;
-	$this->filled = $aFilled;
-	$this->fillgrad = true;
-    }
-	
-    function Legend(&$graph) {
-	if( $this->legend!="" ) {
-	    if( $this->filled && !$this->fillgrad ) {
-		$graph->legend->Add($this->legend,
-				    $this->fill_color,$this->mark,0,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    } 
-	    elseif( $this->fillgrad ) {
-		$color=array($this->fillgrad_fromcolor,$this->fillgrad_tocolor);
-		// In order to differentiate between gradients and cooors specified as an RGB triple
-		$graph->legend->Add($this->legend,$color,"",-2 /* -GRAD_HOR */,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    }	
-	    else {
-		$graph->legend->Add($this->legend,
-				    $this->color,$this->mark,$this->line_style,
-				    $this->legendcsimtarget,$this->legendcsimalt);
-	    }
-	}	
-    }
-
-    function AddArea($aMin=0,$aMax=0,$aFilled=LP_AREA_NOT_FILLED,$aColor="gray9",$aBorder=LP_AREA_BORDER) {
-	if($aMin > $aMax) {
-	    // swap
-	    $tmp = $aMin;
-	    $aMin = $aMax;
-	    $aMax = $tmp;
-	} 
-	$this->filledAreas[] = array($aMin,$aMax,$aColor,$aFilled,$aBorder);
-    }
-	
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-
-	// If another plot type have already adjusted the
-	// offset we don't touch it.
-	// (We check for empty in case the scale is  a log scale 
-	// and hence doesn't contain any xlabel_offset)
-	if( empty($graph->xaxis->scale->ticks->xlabel_offset) ||
-	    $graph->xaxis->scale->ticks->xlabel_offset == 0 ) {
-	    if( $this->center ) {
-		++$this->numpoints;
-		$a=0.5; $b=0.5;
-	    } else {
-		$a=0; $b=0;
-	    }
-	    $graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	    $graph->SetTextScaleOff($b);						
-	    //$graph->xaxis->scale->ticks->SupressMinorTickMarks();
-	}
-    }
-
-    function SetFastStroke($aFlg=true) {
-	$this->iFastStroke = $aFlg;
-    }
-
-    function FastStroke(&$img,&$xscale,&$yscale,$aStartPoint=0,$exist_x=true) {
-	// An optimized stroke for many data points with no extra 
-	// features but 60% faster. You can't have values or line styles, or null
-	// values in plots.
-	$numpoints=count($this->coords[0]);
-	if( $this->barcenter ) 
-	    $textadj = 0.5-$xscale->text_scale_off;
-	else
-	    $textadj = 0;
-
-	$img->SetColor($this->color);
-	$img->SetLineWeight($this->weight);
-	$pnts=$aStartPoint;
-	while( $pnts < $numpoints ) {	    
-	    if( $exist_x ) $x=$this->coords[1][$pnts];
-	    else $x=$pnts+$textadj;
-	    $xt = $xscale->Translate($x);
-	    $y=$this->coords[0][$pnts];
-	    $yt = $yscale->Translate($y);    
-	    if( is_numeric($y) ) {
-		$cord[] = $xt;
-		$cord[] = $yt;
-	    }
-	    elseif( $y == '-' && $pnts > 0 ) {
-		// Just ignore
-	    }
-	    else {
-		JpGraphError::RaiseL(10002);//('Plot too complicated for fast line Stroke. Use standard Stroke()');
-		return;
-	    }
-	    ++$pnts;
-	} // WHILE
-
-	$img->Polygon($cord,false,true);
-
-    }
-	
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$idx=0;
-	$numpoints=count($this->coords[0]);
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$numpoints )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-
-	if( $this->barcenter ) 
-	    $textadj = 0.5-$xscale->text_scale_off;
-	else
-	    $textadj = 0;
-
-	// Find the first numeric data point
-	$startpoint=0;
-	while( $startpoint < $numpoints && !is_numeric($this->coords[0][$startpoint]) )
-	    ++$startpoint;
-
-	// Bail out if no data points
-	if( $startpoint == $numpoints ) 
-	    return;
-
-	if( $this->iFastStroke ) {
-	    $this->FastStroke($img,$xscale,$yscale,$startpoint,$exist_x);
-	    return;
-	}
-
-	if( $exist_x )
-	    $xs=$this->coords[1][$startpoint];
-	else
-	    $xs= $textadj+$startpoint;
-
-	$img->SetStartPoint($xscale->Translate($xs),
-			    $yscale->Translate($this->coords[0][$startpoint]));
-
-	if( $this->filled ) {
-	    $min = $yscale->GetMinVal();
-	    if( $min > 0 || $this->fillFromMin )
-		$fillmin = $yscale->scale_abs[0];//Translate($min);
-	    else
-		$fillmin = $yscale->Translate(0);
-
-	    $cord[$idx++] = $xscale->Translate($xs);
-	    $cord[$idx++] = $fillmin;
-	}
-	$xt = $xscale->Translate($xs);
-	$yt = $yscale->Translate($this->coords[0][$startpoint]);
-	$cord[$idx++] = $xt;
-	$cord[$idx++] = $yt;
-	$yt_old = $yt;
-	$xt_old = $xt;
-	$y_old = $this->coords[0][$startpoint];
-
-	$this->value->Stroke($img,$this->coords[0][$startpoint],$xt,$yt);
-
-	$img->SetColor($this->color);
-	$img->SetLineWeight($this->weight);
-	$img->SetLineStyle($this->line_style);
-	$pnts=$startpoint+1;
-	$firstnonumeric = false;
-	while( $pnts < $numpoints ) {
-	    
-	    if( $exist_x ) $x=$this->coords[1][$pnts];
-	    else $x=$pnts+$textadj;
-	    $xt = $xscale->Translate($x);
-	    $yt = $yscale->Translate($this->coords[0][$pnts]);
-	    
-	    $y=$this->coords[0][$pnts];
-	    if( $this->step_style ) {
-		// To handle null values within step style we need to record the
-		// first non numeric value so we know from where to start if the
-		// non value is '-'. 
-		if( is_numeric($y) ) {
-		    $firstnonumeric = false;
-		    if( is_numeric($y_old) ) {
-			$img->StyleLine($xt_old,$yt_old,$xt,$yt_old);
-			$img->StyleLine($xt,$yt_old,$xt,$yt);
-		    }
-		    elseif( $y_old == '-' ) {
-			$img->StyleLine($xt_first,$yt_first,$xt,$yt_first);
-			$img->StyleLine($xt,$yt_first,$xt,$yt);			
-		    }
-		    else {
-			$yt_old = $yt;
-			$xt_old = $xt;
-		    }
-		    $cord[$idx++] = $xt;
-		    $cord[$idx++] = $yt_old;
-		    $cord[$idx++] = $xt;
-		    $cord[$idx++] = $yt;
-		}
-		elseif( $firstnonumeric==false ) {
-		    $firstnonumeric = true;
-		    $yt_first = $yt_old;
-		    $xt_first = $xt_old;
-		}
-	    }
-	    else {
-		$tmp1=$y;
-		$prev=$this->coords[0][$pnts-1]; 		 			
-		if( $tmp1==='' || $tmp1===NULL || $tmp1==='X' ) $tmp1 = 'x';
-		if( $prev==='' || $prev===null || $prev==='X' ) $prev = 'x';
-
-		if( is_numeric($y) || (is_string($y) && $y != '-') ) {
-		    if( is_numeric($y) && (is_numeric($prev) || $prev === '-' ) ) { 
-			$img->StyleLineTo($xt,$yt);
-		    } 
-		    else {
-			$img->SetStartPoint($xt,$yt);
-		    }
-		}
-		if( $this->filled && $tmp1 !== '-' ) {
-		    if( $tmp1 === 'x' ) { 
-			$cord[$idx++] = $cord[$idx-3];
-			$cord[$idx++] = $fillmin;
-		    }
-		    elseif( $prev === 'x' ) {
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $fillmin;
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $yt; 			    
-		    }
-		    else {
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $yt;
-		    }
-		}
-		else {
-		    if( is_numeric($tmp1)  && (is_numeric($prev) || $prev === '-' ) ) {
-			$cord[$idx++] = $xt;
-			$cord[$idx++] = $yt;
-		    } 
-		}
-	    }
-	    $yt_old = $yt;
-	    $xt_old = $xt;
-	    $y_old = $y;
-
-	    $this->StrokeDataValue($img,$this->coords[0][$pnts],$xt,$yt);
-
-	    ++$pnts;
-	}	
-
-	if( $this->filled  ) {
-	    $cord[$idx++] = $xt;
-	    if( $min > 0 || $this->fillFromMin )
-		$cord[$idx++] = $yscale->Translate($min);
-	    else
-		$cord[$idx++] = $yscale->Translate(0);
-	    if( $this->fillgrad ) {
-		$img->SetLineWeight(1);
-		$grad = new Gradient($img);
-		$grad->SetNumColors($this->fillgrad_numcolors);
-		$grad->FilledFlatPolygon($cord,$this->fillgrad_fromcolor,$this->fillgrad_tocolor);
-		$img->SetLineWeight($this->weight);
-	    }
-	    else {
-		$img->SetColor($this->fill_color);	
-		$img->FilledPolygon($cord);
-	    }
-	    if( $this->line_weight > 0 ) {
-		$img->SetColor($this->color);
-		$img->Polygon($cord);
-	    }
-	}
-
-	if(!empty($this->filledAreas)) {
-
-	    $minY = $yscale->Translate($yscale->GetMinVal());
-	    $factor = ($this->step_style ? 4 : 2);
-
-	    for($i = 0; $i < sizeof($this->filledAreas); ++$i) {
-		// go through all filled area elements ordered by insertion
-		// fill polygon array
-		$areaCoords[] = $cord[$this->filledAreas[$i][0] * $factor];
-		$areaCoords[] = $minY;
-
-		$areaCoords =
-		    array_merge($areaCoords,
-				array_slice($cord,
-					    $this->filledAreas[$i][0] * $factor,
-					    ($this->filledAreas[$i][1] - $this->filledAreas[$i][0] + ($this->step_style ? 0 : 1))  * $factor));
-		$areaCoords[] = $areaCoords[sizeof($areaCoords)-2]; // last x
-		$areaCoords[] = $minY; // last y
-	    
-		if($this->filledAreas[$i][3]) {
-		    $img->SetColor($this->filledAreas[$i][2]);
-		    $img->FilledPolygon($areaCoords);
-		    $img->SetColor($this->color);
-		}
-		// Check if we should draw the frame.
-		// If not we still re-draw the line since it might have been
-		// partially overwritten by the filled area and it doesn't look
-		// very good.
-		// TODO: The behaviour is undefined if the line does not have
-		// any line at the position of the area.
-		if( $this->filledAreas[$i][4] )
-		    $img->Polygon($areaCoords);
-		else
-	    	    $img->Polygon($cord);
-
-		$areaCoords = array();
-	    }
-	}	
-
-	if( $this->mark->type == -1 || $this->mark->show == false )
-	    return;
-
-	for( $pnts=0; $pnts<$numpoints; ++$pnts) {
-
-	    if( $exist_x ) $x=$this->coords[1][$pnts];
-	    else $x=$pnts+$textadj;
-	    $xt = $xscale->Translate($x);
-	    $yt = $yscale->Translate($this->coords[0][$pnts]);
-
-	    if( is_numeric($this->coords[0][$pnts]) ) {
-		if( !empty($this->csimtargets[$pnts]) ) {
-		    $this->mark->SetCSIMTarget($this->csimtargets[$pnts]);
-		    $this->mark->SetCSIMAlt($this->csimalts[$pnts]);
-		}
-		if( $exist_x )
-		    $x=$this->coords[1][$pnts];
-		else
-		    $x=$pnts;
-		$this->mark->SetCSIMAltVal($this->coords[0][$pnts],$x);
-		$this->mark->Stroke($img,$xt,$yt);	
-		$this->csimareas .= $this->mark->GetCSIMAreas();
-		$this->StrokeDataValue($img,$this->coords[0][$pnts],$xt,$yt);
-	    }
-	}
-
-
-    }
-} // Class
-
-
-//===================================================
-// CLASS AccLinePlot
-// Description: 
-//===================================================
-class AccLinePlot extends Plot {
-    var $plots=null,$nbrplots=0,$numpoints=0;
-    var $iStartEndZero=true;
-//---------------
-// CONSTRUCTOR
-    function AccLinePlot($plots) {
-        $this->plots = $plots;
-	$this->nbrplots = count($plots);
-	$this->numpoints = $plots[0]->numpoints;
-
-	for($i=0; $i < $this->nbrplots; ++$i ) {
-	    $this->LineInterpolate($this->plots[$i]->coords[0]);
-	}	
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Legend(&$graph) {
-	$n=count($this->plots);
-	for($i=0; $i < $n; ++$i )
-	    $this->plots[$i]->DoLegend($graph);
-    }
-	
-    function Max() {
-	list($xmax) = $this->plots[0]->Max();
-	$nmax=0;
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    $nc = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$nc);
-	    list($x) = $this->plots[$i]->Max();
-	    $xmax = Max($xmax,$x);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for line $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots max y-value since that
-	    // would in most cases give to large y-value.
-	    $y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		$y += $this->plots[ $j ]->coords[0][$i];
-	    }
-	    $ymax[$i] = $y;
-	}
-	$ymax = max($ymax);
-	return array($xmax,$ymax);
-    }	
-
-    function Min() {
-	$nmax=0;
-	list($xmin,$ysetmin) = $this->plots[0]->Min();
-	$n = count($this->plots);
-	for($i=0; $i < $n; ++$i) {
-	    $nc = count($this->plots[$i]->coords[0]);
-	    $nmax = max($nmax,$nc);
-	    list($x,$y) = $this->plots[$i]->Min();
-	    $xmin = Min($xmin,$x);
-	    $ysetmin = Min($y,$ysetmin);
-	}
-	for( $i = 0; $i < $nmax; $i++ ) {
-	    // Get y-value for line $i by adding the
-	    // individual bars from all the plots added.
-	    // It would be wrong to just add the
-	    // individual plots min y-value since that
-	    // would in most cases give to small y-value.
-	    $y=$this->plots[0]->coords[0][$i];
-	    for( $j = 1; $j < $this->nbrplots; $j++ ) {
-		$y += $this->plots[ $j ]->coords[0][$i];
-	    }
-	    $ymin[$i] = $y;
-	}
-	$ymin = Min($ysetmin,Min($ymin));
-	return array($xmin,$ymin);
-    }
-
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-
-	// If another plot type have already adjusted the
-	// offset we don't touch it.
-	// (We check for empty in case the scale is  a log scale 
-	// and hence doesn't contain any xlabel_offset)
-	
-	if( empty($graph->xaxis->scale->ticks->xlabel_offset) ||
-	    $graph->xaxis->scale->ticks->xlabel_offset == 0 ) {
-	    if( $this->center ) {
-		++$this->numpoints;
-		$a=0.5; $b=0.5;
-	    } else {
-		$a=0; $b=0;
-	    }
-	    $graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	    $graph->SetTextScaleOff($b);						
-	    $graph->xaxis->scale->ticks->SupressMinorTickMarks();
-	}
-	
-    }
-
-    function SetInterpolateMode($aIntMode) {
-	$this->iStartEndZero=$aIntMode;
-    }
-
-    // Replace all '-' with an interpolated value. We use straightforward
-    // linear interpolation. If the data starts with one or several '-' they
-    // will be replaced by the the first valid data point
-    function LineInterpolate(&$aData) {
-
-	$n=count($aData);
-	$i=0;
-    
-	// If first point is undefined we will set it to the same as the first 
-	// valid data
-	if( $aData[$i]==='-' ) {
-	    // Find the first valid data
-	    while( $i < $n && $aData[$i]==='-' ) {
-		++$i;
-	    }
-	    if( $i < $n ) {
-		for($j=0; $j < $i; ++$j ) {
-		    if( $this->iStartEndZero )
-			$aData[$i] = 0;
-		    else
-			$aData[$j] = $aData[$i];
-		}
-	    }
-	    else {
-		// All '-' => Error
-		return false;
-	    }
-	}
-
-	while($i < $n) {
-	    while( $i < $n && $aData[$i] !== '-' ) {
-		++$i;
-	    }
-	    if( $i < $n ) {
-		$pstart=$i-1;
-
-		// Now see how long this segment of '-' are
-		while( $i < $n && $aData[$i] === '-' )
-		    ++$i;
-		if( $i < $n ) {
-		    $pend=$i;
-		    $size=$pend-$pstart;
-		    $k=($aData[$pend]-$aData[$pstart])/$size;
-		    // Replace the segment of '-' with a linear interpolated value.
-		    for($j=1; $j < $size; ++$j ) {
-			$aData[$pstart+$j] = $aData[$pstart] + $j*$k ;
-		    }
-		}
-		else {
-		    // There are no valid end point. The '-' goes all the way to the end
-		    // In that case we just set all the remaining values the the same as the
-		    // last valid data point.
-		    for( $j=$pstart+1; $j < $n; ++$j ) 
-			if( $this->iStartEndZero )
-			    $aData[$j] = 0;
-			else
-			    $aData[$j] = $aData[$pstart] ;		
-		}
-	    }
-	}
-	return true;
-    }
-
-
-
-    // To avoid duplicate of line drawing code here we just
-    // change the y-values for each plot and then restore it
-    // after we have made the stroke. We must do this copy since
-    // it wouldn't be possible to create an acc line plot
-    // with the same graphs, i.e AccLinePlot(array($pl,$pl,$pl));
-    // since this method would have a side effect.
-    function Stroke(&$img,&$xscale,&$yscale) {
-	$img->SetLineWeight($this->weight);
-	$this->numpoints = count($this->plots[0]->coords[0]);
-	// Allocate array
-	$coords[$this->nbrplots][$this->numpoints]=0;
-	for($i=0; $i<$this->numpoints; $i++) {
-	    $coords[0][$i]=$this->plots[0]->coords[0][$i]; 
-	    $accy=$coords[0][$i];
-	    for($j=1; $j<$this->nbrplots; ++$j ) {
-		$coords[$j][$i] = $this->plots[$j]->coords[0][$i]+$accy; 
-		$accy = $coords[$j][$i];
-	    }
-	}
-	for($j=$this->nbrplots-1; $j>=0; --$j) {
-	    $p=$this->plots[$j];
-	    for( $i=0; $i<$this->numpoints; ++$i) {
-		$tmp[$i]=$p->coords[0][$i];
-		$p->coords[0][$i]=$coords[$j][$i];
-	    }
-	    $p->Stroke($img,$xscale,$yscale);
-	    for( $i=0; $i<$this->numpoints; ++$i) 
-		$p->coords[0][$i]=$tmp[$i];
-	    $p->coords[0][]=$tmp;
-	}
-    }
-} // Class
-
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_log.php b/nightly-test-server/jpgraph/jpgraph_log.php
deleted file mode 100644
index 253a644..0000000
--- a/nightly-test-server/jpgraph/jpgraph_log.php
+++ /dev/null
@@ -1,267 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_LOG.PHP
-// Description:	Log scale plot extension for JpGraph
-// Created: 	2001-01-08
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-
-DEFINE('LOGLABELS_PLAIN',0);
-DEFINE('LOGLABELS_MAGNITUDE',1);
-
-//===================================================
-// CLASS LogScale
-// Description: Logarithmic scale between world and screen
-//===================================================
-class LogScale extends LinearScale {
-//---------------
-// CONSTRUCTOR
-
-    // Log scale is specified using the log of min and max
-    function LogScale($min,$max,$type="y") {
-	$this->LinearScale($min,$max,$type);
-	$this->ticks = new LogTicks();
-	$this->name = 'log';
-    }
-
-//----------------
-// PUBLIC METHODS	
-
-    // Translate between world and screen
-    function Translate($a) {
-	if( !is_numeric($a) ) {
-	    if( $a != '' && $a != '-' && $a != 'x' ) 
-		JpGraphError::RaiseL(11001);
-//('Your data contains non-numeric values.');
-	    return 1;
-	}
-	if( $a < 0 ) {
-	    JpGraphError::RaiseL(11002);
-//("Negative data values can not be used in a log scale.");
-	    exit(1);
-	}
-	if( $a==0 ) $a=1;
-	$a=log10($a);
-	return ceil($this->off + ($a*1.0 - $this->scale[0]) * $this->scale_factor); 
-    }
-
-    // Relative translate (don't include offset) usefull when we just want
-    // to know the relative position (in pixels) on the axis	
-    function RelTranslate($a) {
-	if( !is_numeric($a) ) {
-	    if( $a != '' && $a != '-' && $a != 'x' ) 
-		JpGraphError::RaiseL(11001);
-//('Your data contains non-numeric values.');
-	    return 1;
-	}
-	if( $a==0 ) $a=1;
-	$a=log10($a);
-	return round(($a*1.0 - $this->scale[0]) * $this->scale_factor); 
-    }
-		
-    // Use bcpow() for increased precision
-    function GetMinVal() {
-	if( function_exists("bcpow") )
-	    return round(bcpow(10,$this->scale[0],15),14);
-	else
-	    return round(pow(10,$this->scale[0]),14);
-    }
-	
-    function GetMaxVal() {
-	if( function_exists("bcpow") )
-	    return round(bcpow(10,$this->scale[1],15),14);
-	else
-	    return round(pow(10,$this->scale[1]),14);
-    }
-	
-    // Logarithmic autoscaling is much simplier since we just
-    // set the min and max to logs of the min and max values.
-    // Note that for log autoscale the "maxstep" the fourth argument
-    // isn't used. This is just included to give the method the same
-    // signature as the linear counterpart.
-    function AutoScale(&$img,$min,$max,$dummy) {
-	if( $min==0 ) $min=1;
-	
-	if( $max <= 0 ) {
-	    JpGraphError::RaiseL(11004);
-//('Scale error for logarithmic scale. You have a problem with your data values. The max value must be greater than 0. It is mathematically impossible to have 0 in a logarithmic scale.');
-	}
-	$smin = floor(log10($min));
-	$smax = ceil(log10($max));
-	$this->Update($img,$smin,$smax);					
-    }
-//---------------
-// PRIVATE METHODS	
-} // Class
-
-//===================================================
-// CLASS LogTicks
-// Description: 
-//===================================================
-class LogTicks extends Ticks{
-    var $label_logtype=LOGLABELS_MAGNITUDE;
-//---------------
-// CONSTRUCTOR
-    function LogTicks() {
-    }
-//---------------
-// PUBLIC METHODS	
-    function IsSpecified() {
-	return true;
-    }
-
-    function SetLabelLogType($aType) {
-	$this->label_logtype = $aType;
-    }
-	
-    // For log scale it's meaningless to speak about a major step
-    // We just return -1 to make the framework happy (specifically
-    // StrokeLabels() )
-    function GetMajor() {
-	return -1;
-    }
-
-    function SetTextLabelStart($aStart) {
-	JpGraphError::RaiseL(11005);
-//('Specifying tick interval for a logarithmic scale is undefined. Remove any calls to SetTextLabelStart() or SetTextTickInterval() on the logarithmic scale.');
-    }
-
-    function SetXLabelOffset($dummy) {
-	// For log scales we dont care about XLabel offset
-    }
-
-    // Draw ticks on image "img" using scale "scale". The axis absolute
-    // position in the image is specified in pos, i.e. for an x-axis
-    // it specifies the absolute y-coord and for Y-ticks it specified the
-    // absolute x-position.
-    function Stroke(&$img,&$scale,$pos) {
-	$start = $scale->GetMinVal();
-	$limit = $scale->GetMaxVal();
-	$nextMajor = 10*$start;
-	$step = $nextMajor / 10.0;
-		
-		
-	$img->SetLineWeight($this->weight);			
-		
-	if( $scale->type == "y" ) {
-	    // member direction specified if the ticks should be on
-	    // left or right side.
-	    $a=$pos + $this->direction*$this->GetMinTickAbsSize();
-	    $a2=$pos + $this->direction*$this->GetMajTickAbsSize();	
-			
-	    $count=1; 
-	    $this->maj_ticks_pos[0]=$scale->Translate($start);
-	    $this->maj_ticklabels_pos[0]=$scale->Translate($start);
-	    if( $this->supress_first )
-		$this->maj_ticks_label[0]="";
-	    else {
-		if( $this->label_formfunc != '' ) {
-		    $f = $this->label_formfunc;
-		    $this->maj_ticks_label[0]=call_user_func($f,$start);	
-		}
-		elseif( $this->label_logtype == LOGLABELS_PLAIN )
-		    $this->maj_ticks_label[0]=$start;	
-		else
-		    $this->maj_ticks_label[0]='10^'.round(log10($start));
-	    }
-	    $i=1;
-	    for($y=$start; $y<=$limit; $y+=$step,++$count  ) {
-		$ys=$scale->Translate($y);	
-		$this->ticks_pos[]=$ys;
-		$this->ticklabels_pos[]=$ys;
-		if( $count % 10 == 0 ) {
-		    if( !$this->supress_tickmarks ) {
-			if( $this->majcolor!="" ) {
-			    $img->PushColor($this->majcolor);
-			    $img->Line($pos,$ys,$a2,$ys);
-			    $img->PopColor();
-			}
-			else
-			    $img->Line($pos,$ys,$a2,$ys);
-		    }
-
-		    $this->maj_ticks_pos[$i]=$ys;
-		    $this->maj_ticklabels_pos[$i]=$ys;
-		    
-		    if( $this->label_formfunc != '' ) {
-			$f = $this->label_formfunc;
-			$this->maj_ticks_label[$i]=call_user_func($f,$nextMajor);	
-		    }
-		    elseif( $this->label_logtype == 0 )
-			$this->maj_ticks_label[$i]=$nextMajor;	
-		    else
-			$this->maj_ticks_label[$i]='10^'.round(log10($nextMajor));
-		    ++$i;						
-		    $nextMajor *= 10;
-		    $step *= 10;	
-		    $count=1; 				
-		}
-		else {
-		    if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) {
-			if( $this->mincolor!="" ) $img->PushColor($this->mincolor);
-			$img->Line($pos,$ys,$a,$ys);		
-			if( $this->mincolor!="" ) $img->PopColor();
-		    }
-		}
-	    }		
-	}
-	else {
-	    $a=$pos - $this->direction*$this->GetMinTickAbsSize();
-	    $a2=$pos - $this->direction*$this->GetMajTickAbsSize();	
-	    $count=1; 
-	    $this->maj_ticks_pos[0]=$scale->Translate($start);
-	    $this->maj_ticklabels_pos[0]=$scale->Translate($start);
-	    if( $this->supress_first )
-		$this->maj_ticks_label[0]="";
-	    else {
-		if( $this->label_formfunc != '' ) {
-		    $f = $this->label_formfunc;
-		    $this->maj_ticks_label[0]=call_user_func($f,$start);	
-		}
-		elseif( $this->label_logtype == 0 )
-		    $this->maj_ticks_label[0]=$start;	
-		else
-		    $this->maj_ticks_label[0]='10^'.round(log10($start));
-	    }
-	    $i=1;			
-	    for($x=$start; $x<=$limit; $x+=$step,++$count  ) {
-		$xs=$scale->Translate($x);	
-		$this->ticks_pos[]=$xs;
-		$this->ticklabels_pos[]=$xs;
-		if( $count % 10 == 0 ) {
-		    if( !$this->supress_tickmarks ) {
-			$img->Line($xs,$pos,$xs,$a2);
-		    }
-		    $this->maj_ticks_pos[$i]=$xs;
-		    $this->maj_ticklabels_pos[$i]=$xs;
-
-		    if( $this->label_formfunc != '' ) {
-			$f = $this->label_formfunc;
-			$this->maj_ticks_label[$i]=call_user_func($f,$nextMajor);	
-		    }
-		    elseif( $this->label_logtype == 0 )
-			$this->maj_ticks_label[$i]=$nextMajor;	
-		    else
-			$this->maj_ticks_label[$i]='10^'.round(log10($nextMajor));
-		    ++$i;
-		    $nextMajor *= 10;
-		    $step *= 10;	
-		    $count=1; 				
-		}
-		else {
-		    if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks) {
-			$img->Line($xs,$pos,$xs,$a);		
-		    }
-		}
-	    }		
-	}
-	return true;
-    }
-} // Class
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_mgraph.php b/nightly-test-server/jpgraph/jpgraph_mgraph.php
deleted file mode 100644
index 25c1165..0000000
--- a/nightly-test-server/jpgraph/jpgraph_mgraph.php
+++ /dev/null
@@ -1,388 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_MGRAPH.PHP
-// Description: Class to handle multiple graphs in the same image
-// Created: 	2006-01-15
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//=============================================================================
-// CLASS MGraph
-// Description: Create a container image that can hold several graph 
-//=============================================================================
-class MGraph {
-    var $img=NULL;
-    var $iCnt=0,$iGraphs = array(); // image_handle, x, y, fx, fy, sizex, sizey
-    var $iFillColor='white', $iCurrentColor=0;
-    var $lm=0,$rm=0,$tm=0,$bm=0;
-    var $iDoFrame = FALSE, $iFrameColor = 'black', $iFrameWeight = 1;
-    var $iLineWeight = 1;
-    var $expired=false;
-    var $img_format='png',$image_quality=75;
-    var $iWidth=NULL,$iHeight=NULL;
-    var $background_image='',$background_image_center=true,
-	$backround_image_format='',$background_image_mix=100,
-	$background_image_y=NULL, $background_image_x=NULL;
-
-
-    // Create a new instane of the combined graph
-    function MGraph($aWidth=NULL,$aHeight=NULL) {
-	$this->iWidth = $aWidth;
-	$this->iHeight = $aHeight;
-    }
-
-    // Specify background fill color for the combined graph
-    function SetFillColor($aColor) {
-	$this->iFillColor = $aColor;
-    }
-
-    // Add a frame around the combined graph
-    function SetFrame($aFlg,$aColor='black',$aWeight=1) {
-	$this->iDoFrame = $aFlg;
-	$this->iFrameColor = $aColor;
-	$this->iFrameWeight = $aWeight;
-    }
-
-    // Specify a background image blend    
-    function SetBackgroundImageMix($aMix) {
-	$this->background_image_mix = $aMix ;
-    }
-
-    // Specify a background image
-    function SetBackgroundImage($aFileName,$aCenter_aX=NULL,$aY=NULL) {
-	// Second argument can be either a boolean value or 
-	// a numeric
-	$aCenter=TRUE;
-	$aX=NULL;
-
-	if( $GLOBALS['gd2'] && !USE_TRUECOLOR ) {
-	    JpGraphError::RaiseL(12001);
-//("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x you <b>must</b> enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.");
-	}
-	if( is_numeric($aCenter_aX) ) {
-	    $aX=$aCenter_aX;
-	}
-
-	// Get extension to determine image type
-	$e = explode('.',$aFileName);
-	if( !$e ) {
-	    JpGraphError::RaiseL(12002,$aFileName);
-//('Incorrect file name for MGraph::SetBackgroundImage() : '.$aFileName.' Must have a valid image extension (jpg,gif,png) when using autodetection of image type');
-	}
-	
-	$valid_formats = array('png', 'jpg', 'gif');
-	$aImgFormat = strtolower($e[count($e)-1]);
-	if ($aImgFormat == 'jpeg')  {
-	    $aImgFormat = 'jpg';
-	}
-	elseif (!in_array($aImgFormat, $valid_formats) )  {
-	    JpGraphError::RaiseL(12003,$aImgFormat,$aFileName);
-//('Unknown file extension ($aImgFormat) in MGraph::SetBackgroundImage() for filename: '.$aFileName);
-	}    
-
-	$this->background_image = $aFileName;
-	$this->background_image_center=$aCenter;
-	$this->background_image_format=$aImgFormat;
-	$this->background_image_x = $aX;
-	$this->background_image_y = $aY;
-    }
-
-
-    // Private helper function for backgound image
-    function _loadBkgImage($aFile='') {
-	if( $aFile == '' )
-	    $aFile = $this->background_image;
-
-	// Remove case sensitivity and setup appropriate function to create image
-	// Get file extension. This should be the LAST '.' separated part of the filename
-	$e = explode('.',$aFile);
-	$ext = strtolower($e[count($e)-1]);
-	if ($ext == "jpeg")  {
-	    $ext = "jpg";
-	}
-	
-	if( trim($ext) == '' ) 
-	    $ext = 'png';  // Assume PNG if no extension specified
-
-	$supported = imagetypes();
-	if( ( $ext == 'jpg' && !($supported & IMG_JPG) ) ||
-	    ( $ext == 'gif' && !($supported & IMG_GIF) ) ||
-	    ( $ext == 'png' && !($supported & IMG_PNG) ) ) {
-	    JpGraphError::RaiseL(12004,$aFile);//('The image format of your background image ('.$aFile.') is not supported in your system configuration. ');
-	}
-
-	if( $ext == "jpg" || $ext == "jpeg") {
-	    $f = "imagecreatefromjpeg";
-	    $ext = "jpg";
-	}
-	else {
-	    $f = "imagecreatefrom".$ext;
-	}
-
-	$img = @$f($aFile);
-	if( !$img ) {
-	    JpGraphError::RaiseL(12005,$aFile);
-//(" Can't read background image: '".$aFile."'");   
-	}
-	return $img;
-    }	
-
-    function _strokeBackgroundImage() {
-	if( $this->background_image == '' ) 
-	    return;
-
-	$bkgimg = $this->_loadBkgImage();
-	// Background width & Heoght
-	$bw = imagesx($bkgimg);
-	$bh = imagesy($bkgimg);
-	// Canvas width and height
-	$cw = imagesx($this->img);
-	$ch = imagesy($this->img);
-
-	if( $this->background_image_x === NULL || $this->background_image_y === NULL ) {
-	    if( $this->background_image_center ) {
-		// Center original image in the plot area
-		$x = round($cw/2-$bw/2); $y = round($ch/2-$bh/2);
-	    }
-	    else {
-		// Just copy the image from left corner, no resizing
-		$x=0; $y=0;
-	    }			
-	}
-	else {
-	    $x = $this->background_image_x;
-	    $y = $this->background_image_y;
-	}
-	$this->_imageCp($bkgimg,$x,$y,0,0,$bw,$bh,$this->background_image_mix);
-    }
-
-    function _imageCp($aSrcImg,$x,$y,$fx,$fy,$w,$h,$mix=100) {
-	imagecopymerge($this->img,$aSrcImg,$x,$y,$fx,$fy,$w,$h,$mix);
-    }
-
-    function _imageCreate($aWidth,$aHeight) {
-	if( $aWidth <= 1 || $aHeight <= 1 ) {
-	    JpGraphError::RaiseL(12006,$aWidth,$aHeight);
-//("Illegal sizes specified for width or height when creating an image, (width=$aWidth, height=$aHeight)");
-	}
-	if( @$GLOBALS['gd2']==true && USE_TRUECOLOR ) {
-	    $this->img = @imagecreatetruecolor($aWidth, $aHeight);
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(12011);
-// die("<b>JpGraph Error:</b> Can't create truecolor image. Check that you really have GD2 library installed.");
-	    }
-	    ImageAlphaBlending($this->img,true);
-	} else {
-	    $this->img = @imagecreate($aWidth, $aHeight);	
-	    if( $this->img < 1 ) {
-		JpGraphError::RaiseL(12012);
-// die("<b>JpGraph Error:</b> Can't create image. Check that you really have the GD library installed.");
-	    }
-	}
-    }
-
-    function _polygon($p,$closed=FALSE) {
-	if( $this->iLineWeight==0 ) return;
-	$n=count($p);
-	$oldx = $p[0];
-	$oldy = $p[1];
-	for( $i=2; $i < $n; $i+=2 ) {
-	    imageline($this->img,$oldx,$oldy,$p[$i],$p[$i+1],$this->iCurrentColor);
-	    $oldx = $p[$i];
-	    $oldy = $p[$i+1];
-	}
-	if( $closed ) {
-	    imageline($this->img,$p[$n*2-2],$p[$n*2-1],$p[0],$p[1],$this->iCurrentColor);
-	}
-    }
-
-    function _filledPolygon($pts) {
-	$n=count($pts);
-	for($i=0; $i < $n; ++$i) 
-	    $pts[$i] = round($pts[$i]);
-	imagefilledpolygon($this->img,$pts,count($pts)/2,$this->iCurrentColor);
-    }
-	
-    function _rectangle($xl,$yu,$xr,$yl) {
-	for($i=0; $i < $this->iLineWeight; ++$i ) 
-	    $this->_polygon(array($xl+$i,$yu+$i,$xr-$i,$yu+$i,
-				  $xr-$i,$yl-$i,$xl+$i,$yl-$i,
-				  $xl+$i,$yu+$i));
-    }
-	
-    function _filledRectangle($xl,$yu,$xr,$yl) {
-	$this->_filledPolygon(array($xl,$yu,$xr,$yu,$xr,$yl,$xl,$yl));
-    }
-
-    function _setColor($aColor) {
-	$this->iCurrentColor = $this->iRGB->Allocate($aColor);
-    }
-
-    function AddMix($aGraph,$x=0,$y=0,$mix=100,$fx=0,$fy=0,$w=0,$h=0) {
-	$this->_gdImgHandle($aGraph->Stroke( _IMG_HANDLER),$x,$y,$fx=0,$fy=0,$w,$h,$mix);
-   }
-
-   function Add($aGraph,$x=0,$y=0,$fx=0,$fy=0,$w=0,$h=0) {
-	$this->_gdImgHandle($aGraph->Stroke( _IMG_HANDLER),$x,$y,$fx=0,$fy=0,$w,$h);
-   }
-
-    function _gdImgHandle($agdCanvas,$x,$y,$fx=0,$fy=0,$w=0,$h=0,$mix=100) {
-	if( $w == 0 )  $w = @imagesx($agdCanvas);
-	if( $w === NULL ) {
-	    JpGraphError::RaiseL(12007);
-//('Argument to MGraph::Add() is not a valid GD image handle.');
-	    return;
-	}
-	if( $h == 0 )  $h = @imagesy($agdCanvas);
-	$this->iGraphs[$this->iCnt++] = array($agdCanvas,$x,$y,$fx,$fy,$w,$h,$mix);
-    }
-
-    function SetMargin($lm,$rm,$tm,$bm) {
-	$this->lm = $lm;
-	$this->rm = $rm;
-	$this->tm = $tm;
-	$this->bm = $bm;
-    }
-
-    function SetExpired($aFlg=true) {
-	$this->expired = $aFlg;
-    }
-
-    // Generate image header
-    function Headers() {
-	
-	// In case we are running from the command line with the client version of
-	// PHP we can't send any headers.
-	$sapi = php_sapi_name();
-	if( $sapi == 'cli' )
-	    return;
-	
-	if( headers_sent() ) {
-	    
-	    echo "<table border=1><tr><td><font color=darkred size=4><b>JpGraph Error:</b> 
-HTTP headers have already been sent.</font></td></tr><tr><td><b>Explanation:</b><br>HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it's image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).<p>Most likely you have some text in your script before the call to <i>Graph::Stroke()</i>. If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. <p>For example it is a common mistake to leave a blank line before the opening \"<b>&lt;?php</b>\".</td></tr></table>";
-
-	    die();
-
-	}	
-	
-	if ($this->expired) {
-	    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
-	    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . "GMT");
-	    header("Cache-Control: no-cache, must-revalidate");
-	    header("Pragma: no-cache");
-	}
-	header("Content-type: image/$this->img_format");
-    }
-
-    function SetImgFormat($aFormat,$aQuality=75) {
-	$this->image_quality = $aQuality;
-	$aFormat = strtolower($aFormat);
-	$tst = true;
-	$supported = imagetypes();
-	if( $aFormat=="auto" ) {
-	    if( $supported & IMG_PNG )
-		$this->img_format="png";
-	    elseif( $supported & IMG_JPG )
-		$this->img_format="jpeg";
-	    elseif( $supported & IMG_GIF )
-		$this->img_format="gif";
-	    else
-		JpGraphError::RaiseL(12008);
-//(" Your PHP (and GD-lib) installation does not appear to support any known graphic formats.".
-	    return true;
-	}
-	else {
-	    if( $aFormat=="jpeg" || $aFormat=="png" || $aFormat=="gif" ) {
-		if( $aFormat=="jpeg" && !($supported & IMG_JPG) )
-		    $tst=false;
-		elseif( $aFormat=="png" && !($supported & IMG_PNG) ) 
-		    $tst=false;
-		elseif( $aFormat=="gif" && !($supported & IMG_GIF) ) 	
-		    $tst=false;
-		else {
-		    $this->img_format=$aFormat;
-		    return true;
-		}
-	    }
-	    else 
-		$tst=false;
-	    if( !$tst )
-		JpGraphError::RaiseL(12009,$aFormat);
-//(" Your PHP installation does not support the chosen graphic format: $aFormat");
-	}
-    }
-
-    // Stream image to browser or to file
-    function Stream($aFile="") {
-	$func="image".$this->img_format;
-	if( $this->img_format=="jpeg" && $this->image_quality != null ) {
-	    $res = @$func($this->img,$aFile,$this->image_quality);
-	}
-	else {
-	    if( $aFile != "" ) {
-		$res = @$func($this->img,$aFile);
-	    }
-	    else
-		$res = @$func($this->img);
-	}
-	if( !$res )
-	    JpGraphError::RaiseL(12010,$aFile);
-//("Can't create or stream image to file $aFile Check that PHP has enough permission to write a file to the current directory.");
-    }
-
-    function Stroke($aFileName='') {
-	// Find out the necessary size for the container image
-	$w=0; $h=0;
-	for($i=0; $i < $this->iCnt; ++$i ) {
-	    $maxw = $this->iGraphs[$i][1]+$this->iGraphs[$i][5];
-	    $maxh = $this->iGraphs[$i][2]+$this->iGraphs[$i][6];
-	    $w = max( $w, $maxw );
-	    $h = max( $h, $maxh );
-	}
-	$w += $this->lm+$this->rm;
-	$h += $this->tm+$this->bm;
-
-	// User specified width,height overrides
-	if( $this->iWidth !== NULL ) $w = $this->iWidth;
-	if( $this->iHeight!== NULL ) $h = $this->iHeight;
-
-	$this->_imageCreate($w,$h);
-	$this->iRGB = new RGB($this->img);
-
-	$this->_setcolor($this->iFillColor);
-	$this->_filledRectangle(0,0,$w-1,$h-1);
-
-	$this->_strokeBackgroundImage();
-
-	if( $this->iDoFrame ) {
-	    $this->_setColor($this->iFrameColor);
-	    $this->iLineWeight=$this->iFrameWeight;
-	    $this->_rectangle(0,0,$w-1,$h-1);
-	}
-
-	// Copy all sub graphs to the container
-	for($i=0; $i < $this->iCnt; ++$i ) {
-	    $this->_imageCp($this->iGraphs[$i][0],
-			    $this->iGraphs[$i][1]+$this->lm,$this->iGraphs[$i][2]+$this->tm,
-			    $this->iGraphs[$i][3],$this->iGraphs[$i][4],
-			    $this->iGraphs[$i][5],$this->iGraphs[$i][6],
-			    $this->iGraphs[$i][7]);
-	}
-
-	// Output image
-	if( $aFileName == _IMG_HANDLER ) {
-	    return $this->img;
-	}
-	else {
-	    $this->Headers();
-	    $this->Stream($aFileName);
-	}
-    }
-}
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_pie.php b/nightly-test-server/jpgraph/jpgraph_pie.php
deleted file mode 100644
index a08e593..0000000
--- a/nightly-test-server/jpgraph/jpgraph_pie.php
+++ /dev/null
@@ -1,1344 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_PIE.PHP
-// Description:	Pie plot extension for JpGraph
-// Created: 	2001-02-14
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-
-// Defines for PiePlot::SetLabelType()
-DEFINE("PIE_VALUE_ABS",1);
-DEFINE("PIE_VALUE_PER",0);
-DEFINE("PIE_VALUE_PERCENTAGE",0);
-DEFINE("PIE_VALUE_ADJPERCENTAGE",2);
-DEFINE("PIE_VALUE_ADJPER",2);
-
-//===================================================
-// CLASS PiePlot
-// Description: Draws a pie plot
-//===================================================
-class PiePlot {
-    var $posx=0.5,$posy=0.5;
-    var $radius=0.3;
-    var $explode_radius=array(),$explode_all=false,$explode_r=20;
-    var $labels=null, $legends=null;
-    var $csimtargets=null;  // Array of targets for CSIM
-    var $csimareas='';		// Generated CSIM text	
-    var $csimalts=null;		// ALT tags for corresponding target
-    var $data=null;
-    var $title;
-    var $startangle=0;
-    var $weight=1, $color="black";
-    var $legend_margin=6,$show_labels=true;
-    var $themearr = array(
-	"earth" 	=> array(136,34,40,45,46,62,63,134,74,10,120,136,141,168,180,77,209,218,346,395,89,430),
-	"pastel" => array(27,415,128,59,66,79,105,110,42,147,152,230,236,240,331,337,405,38),
-	"water"  => array(8,370,24,40,335,56,213,237,268,14,326,387,10,388),
-	"sand"   => array(27,168,34,170,19,50,65,72,131,209,46,393));
-    var $theme="earth";
-    var $setslicecolors=array();
-    var $labeltype=0; // Default to percentage
-    var $pie_border=true,$pie_interior_border=true;
-    var $value;
-    var $ishadowcolor='',$ishadowdrop=4;
-    var $ilabelposadj=1;
-    var $legendcsimtargets = array();
-    var $legendcsimalts = array();
-    var $adjusted_data = array();
-    var $guideline = null,$guidelinemargin=10;
-    var $iShowGuideLineForSingle = false;
-    var $iGuideLineCurve = false,$iGuideVFactor=1.4,$iGuideLineRFactor=0.8;
-//---------------
-// CONSTRUCTOR
-    function PiePlot($data) {
-	$this->data = array_reverse($data);
-	$this->title = new Text("");
-	$this->title->SetFont(FF_FONT1,FS_BOLD);
-	$this->value = new DisplayValue();
-	$this->value->Show();
-	$this->value->SetFormat('%.1f%%');
-	$this->guideline = new LineProperty();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function SetCenter($x,$y=0.5) {
-	$this->posx = $x;
-	$this->posy = $y;
-    }
-
-    // Enable guideline and set drwaing policy
-    function SetGuideLines($aFlg=true,$aCurved=true,$aAlways=false) {
-	$this->guideline->Show($aFlg);
-	$this->iShowGuideLineForSingle = $aAlways;
-	$this->iGuideLineCurve = $aCurved;
-    }
-
-    // Adjuste the distance between labels and labels and pie
-    function SetGuideLinesAdjust($aVFactor,$aRFactor=0.8) {
-	$this->iGuideVFactor=$aVFactor;
-	$this->iGuideLineRFactor=$aRFactor;
-    }
-
-    function SetColor($aColor) {
-	$this->color = $aColor;
-    }
-	
-    function SetSliceColors($aColors) {
-	$this->setslicecolors = $aColors;
-    }
-	
-    function SetShadow($aColor='darkgray',$aDropWidth=4) {
-	$this->ishadowcolor = $aColor;
-	$this->ishadowdrop = $aDropWidth;
-    }
-
-    function SetCSIMTargets($targets,$alts=null) {
-	$this->csimtargets=array_reverse($targets);
-	if( is_array($alts) )
-	    $this->csimalts=array_reverse($alts);
-    }
-	
-    function GetCSIMareas() {
-	return $this->csimareas;
-    }
-
-    function AddSliceToCSIM($i,$xc,$yc,$radius,$sa,$ea) {  
-
-        //Slice number, ellipse centre (x,y), height, width, start angle, end angle
-	while( $sa > 2*M_PI ) $sa = $sa - 2*M_PI;
-	while( $ea > 2*M_PI ) $ea = $ea - 2*M_PI;
-
-	$sa = 2*M_PI - $sa;
-	$ea = 2*M_PI - $ea;
-
-	// Special case when we have only one slice since then both start and end
-	// angle will be == 0
-	if( abs($sa - $ea) < 0.0001 ) {
-	    $sa=2*M_PI; $ea=0;
-	}
-
-	//add coordinates of the centre to the map
-	$xc = floor($xc);$yc=floor($yc);
-	$coords = "$xc, $yc";
-
-	//add coordinates of the first point on the arc to the map
-	$xp = floor(($radius*cos($ea))+$xc);
-	$yp = floor($yc-$radius*sin($ea));
-	$coords.= ", $xp, $yp";
-	//add coordinates every 0.2 radians
-	$a=$ea+0.2;
-
-	// If we cross the 260-limit with a slice we need to handle
-	// the fact that end angle is smaller than start
-	if( $sa < $ea ) {
-	    while ($a <= 2*M_PI) {
-		$xp = floor($radius*cos($a)+$xc);
-		$yp = floor($yc-$radius*sin($a));
-		$coords.= ", $xp, $yp";
-		$a += 0.2;
-	    }
-	    $a -= 2*M_PI;
-	}
-
-	while ($a < $sa) {
-	    $xp = floor($radius*cos($a)+$xc);
-	    $yp = floor($yc-$radius*sin($a));
-	    $coords.= ", $xp, $yp";
-	    $a += 0.2;
-	}
-		
-	//Add the last point on the arc
-	$xp = floor($radius*cos($sa)+$xc);
-	$yp = floor($yc-$radius*sin($sa));
-	$coords.= ", $xp, $yp";
-	if( !empty($this->csimtargets[$i]) ) {
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->csimtargets[$i]."\"";
-	    $tmp="";
-	    if( !empty($this->csimalts[$i]) ) {
-		$tmp=sprintf($this->csimalts[$i],$this->data[$i]);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-	    $this->csimareas .= " alt=\"$tmp\" />\n";
-	}
-    }
-
-	
-    function SetTheme($aTheme) {
-	if( in_array($aTheme,array_keys($this->themearr)) )
-	    $this->theme = $aTheme;
-	else
-	    JpGraphError::RaiseL(15001,$aTheme);//("PiePLot::SetTheme() Unknown theme: $aTheme");
-    }
-	
-    function ExplodeSlice($e,$radius=20) {
-	if( ! is_integer($e) ) 
-	    JpGraphError::RaiseL(15002);//('Argument to PiePlot::ExplodeSlice() must be an integer');
-	$this->explode_radius[$e]=$radius;
-    }
-
-    function ExplodeAll($radius=20) {
-	$this->explode_all=true;
-	$this->explode_r = $radius;
-    }
-
-    function Explode($aExplodeArr) {
-	if( !is_array($aExplodeArr) ) {
-	    JpGraphError::RaiseL(15003);
-//("Argument to PiePlot::Explode() must be an array with integer distances.");
-	}
-	$this->explode_radius = $aExplodeArr;
-    }
-
-    function SetStartAngle($aStart) {
-	if( $aStart < 0 || $aStart > 360 ) {
-	    JpGraphError::RaiseL(15004);//('Slice start angle must be between 0 and 360 degrees.');
-	}
-	$this->startangle = 360-$aStart;
-	$this->startangle *= M_PI/180;
-    }
-	
-    function SetFont($family,$style=FS_NORMAL,$size=10) {
-	JpGraphError::RaiseL(15005);//('PiePlot::SetFont() is deprecated. Use PiePlot->value->SetFont() instead.');
-    }
-	
-    // Size in percentage
-    function SetSize($aSize) {
-	if( ($aSize>0 && $aSize<=0.5) || ($aSize>10 && $aSize<1000) )
-	    $this->radius = $aSize;
-	else
-	    JpGraphError::RaiseL(15006);
-//("PiePlot::SetSize() Radius for pie must either be specified as a fraction [0, 0.5] of the size of the image or as an absolute size in pixels  in the range [10, 1000]");
-    }
-	
-    function SetFontColor($aColor) {
-	JpGraphError::RaiseL(15007);
-//('PiePlot::SetFontColor() is deprecated. Use PiePlot->value->SetColor() instead.');
-    }
-	
-    // Set label arrays
-    function SetLegends($aLegend) {
-	$this->legends = $aLegend;
-    }
-
-    // Set text labels for slices 
-    function SetLabels($aLabels,$aLblPosAdj="auto") {
-	$this->labels = array_reverse($aLabels);
-	$this->ilabelposadj=$aLblPosAdj;
-    }
-
-    function SetLabelPos($aLblPosAdj) {
-	$this->ilabelposadj=$aLblPosAdj;
-    }
-	
-    // Should we display actual value or percentage?
-    function SetLabelType($t) {
-	if( $t < 0 || $t > 2 ) 
-	    JpGraphError::RaiseL(15008,$t);
-//("PiePlot::SetLabelType() Type for pie plots must be 0 or 1 (not $t).");
-	$this->labeltype=$t;
-    }
-
-    // Deprecated. 
-    function SetValueType($aType) {
-	$this->SetLabelType($aType);
-    }
-
-    // Should the circle around a pie plot be displayed
-    function ShowBorder($exterior=true,$interior=true) {
-	$this->pie_border = $exterior;
-	$this->pie_interior_border = $interior;
-    }
-	
-    // Setup the legends (Framework method)
-    function Legend(&$graph) {
-	$colors = array_keys($graph->img->rgb->rgb_table);
-   	sort($colors);	
-   	$ta=$this->themearr[$this->theme];	
-   	$n = count($this->data);
-
-   	if( $this->setslicecolors==null ) {
-	    $numcolors=count($ta);
-	    if( is_a($this,'PiePlot3D') ) {
-		$ta = array_reverse(array_slice($ta,0,$n));
-	    }
-	}
-   	else {
-	    $this->setslicecolors = array_slice($this->setslicecolors,0,$n);
-	    $numcolors=count($this->setslicecolors); 
-	    if( $graph->pieaa && is_a($this,'PiePlot') ) { 
-		$this->setslicecolors = array_reverse($this->setslicecolors);
-	    }
-	}
-		
-	$sum=0;
-	for($i=0; $i < $n; ++$i)
-	    $sum += $this->data[$i];
-
-	// Bail out with error if the sum is 0
-	if( $sum==0 )
-	    JpGraphError::RaiseL(15009);//("Illegal pie plot. Sum of all data is zero for Pie!");
-
-	// Make sure we don't plot more values than data points
-	// (in case the user added more legends than data points)
-	$n = min(count($this->legends),count($this->data));
-	if( $this->legends != "" ) {
-	    $this->legends = array_reverse(array_slice($this->legends,0,$n));
-	}
-	for( $i=$n-1; $i >= 0; --$i ) {
-	    $l = $this->legends[$i];
-	    // Replace possible format with actual values
-	    if( count($this->csimalts) > $i ) {
-		$fmt = $this->csimalts[$i];
-	    }
-	    else {
-		$fmt = "%d"; // Deafult Alt if no other has been specified
-	    }
-	    if( $this->labeltype==0 ) {
-		$l = sprintf($l,100*$this->data[$i]/$sum);
-		$alt = sprintf($fmt,$this->data[$i]);
-		
-	    }
-	    elseif( $this->labeltype == 1)  {
-		$l = sprintf($l,$this->data[$i]);
-		$alt = sprintf($fmt,$this->data[$i]);
-		
-	    }
-	    else {
-		$l = sprintf($l,$this->adjusted_data[$i]);
-		$alt = sprintf($fmt,$this->adjusted_data[$i]);
-	    }
-
-	    if( $this->setslicecolors==null ) {
-		$graph->legend->Add($l,$colors[$ta[$i%$numcolors]],"",0,$this->csimtargets[$i],$alt);
-	    }
-	    else {
-		$graph->legend->Add($l,$this->setslicecolors[$i%$numcolors],"",0,$this->csimtargets[$i],$alt);
-	    }
-	}
-    }
-	
-    // Adjust the rounded percetage value so that the sum of
-    // of the pie slices are always 100%
-    // Using the Hare/Niemeyer method
-    function AdjPercentage($aData,$aPrec=0) {
-	$mul=100;
-	if( $aPrec > 0 && $aPrec < 3 ) {
-	    if( $aPrec == 1 ) 
-		$mul=1000;
-		else
-		    $mul=10000;
-	}
-	
-	$tmp = array();
-	$result = array();
-	$quote_sum=0;
-	$n = count($aData) ;
-	for( $i=0, $sum=0; $i < $n; ++$i )
-	    $sum+=$aData[$i];
-	foreach($aData as $index => $value) {
-	    $tmp_percentage=$value/$sum*$mul;
-	    $result[$index]=floor($tmp_percentage);
-	    $tmp[$index]=$tmp_percentage-$result[$index];
-	    $quote_sum+=$result[$index];
-	}
-	if( $quote_sum == $mul) {
-	    if( $mul > 100 ) {
-		$tmp = $mul / 100;
-		for( $i=0; $i < $n; ++$i ) {
-		    $result[$i] /= $tmp ;
-		}
-	    }
-	    return $result;
-	}
-	arsort($tmp,SORT_NUMERIC);
-	reset($tmp);
-	for($i=0; $i < $mul-$quote_sum; $i++)
-	{
-	    $result[key($tmp)]++;
-	    next($tmp);
-	}
-	if( $mul > 100 ) {
-	    $tmp = $mul / 100;
-	    for( $i=0; $i < $n; ++$i ) {
-		$result[$i] /= $tmp ;
-	    }
-	}
-	return $result;
-    }
-
-
-    function Stroke(&$img,$aaoption=0) {
-	// aaoption is used to handle antialias
-	// aaoption == 0 a normal pie
-	// aaoption == 1 just the body
-	// aaoption == 2 just the values
-
-	// Explode scaling. If anti anti alias we scale the image
-	// twice and we also need to scale the exploding distance
-	$expscale = $aaoption === 1 ? 2 : 1;
-
-	if( $this->labeltype == 2 ) {
-	    // Adjust the data so that it will add up to 100%
-	    $this->adjusted_data = $this->AdjPercentage($this->data);
-	}
-
-	$colors = array_keys($img->rgb->rgb_table);
-   	sort($colors);	
-   	$ta=$this->themearr[$this->theme];	
-	$n = count($this->data);
-   	
-   	if( $this->setslicecolors==null ) {
-	    $numcolors=count($ta);
-	}
-   	else {
-	    $this->setslicecolors = array_reverse(array_slice($this->setslicecolors,0,$n));
-	    $numcolors=count($this->setslicecolors); 
-	    $tt = array_slice($this->setslicecolors,$n % $numcolors);
-	    $tt2 = array_slice($this->setslicecolors,0,$n % $numcolors);
-	    $tt2 = array_merge($tt, $tt2);
-	    $this->setslicecolors = $tt + $tt2;
-	}
-
-	// Draw the slices
-	$sum=0;
-	for($i=0; $i < $n; ++$i)
-	    $sum += $this->data[$i];
-	
-	// Bail out with error if the sum is 0
-	if( $sum==0 )
-	    JpGraphError::RaiseL(15009);//("Sum of all data is 0 for Pie.");
-	
-	// Set up the pie-circle
-	if( $this->radius <= 1 )
-	    $radius = floor($this->radius*min($img->width,$img->height));
-	else {
-	    $radius = $aaoption === 1 ? $this->radius*2 : $this->radius;
-	}
-
-	if( $this->posx <= 1 && $this->posx > 0 )
-	    $xc = round($this->posx*$img->width);
-	else
-	    $xc = $this->posx ;
-	
-	if( $this->posy <= 1 && $this->posy > 0 )
-	    $yc = round($this->posy*$img->height);
-	else
-	    $yc = $this->posy ;
-		
-	$n = count($this->data);
-
-	if( $this->explode_all )
-	    for($i=0; $i < $n; ++$i)
-		$this->explode_radius[$i]=$this->explode_r;
-
-	if( $this->ishadowcolor != "" && $aaoption !== 2) {
-	    $accsum=0;
-	    $angle2 = $this->startangle;
-	    $img->SetColor($this->ishadowcolor);
-	    for($i=0; $sum > 0 && $i < $n; ++$i) {
-		$j = $n-$i-1;
-		$d = $this->data[$i];
-		$angle1 = $angle2;
-		$accsum += $d;
-		$angle2 = $this->startangle+2*M_PI*$accsum/$sum;
-		if( empty($this->explode_radius[$j]) )
-		    $this->explode_radius[$j]=0;
-
-		$la = 2*M_PI - (abs($angle2-$angle1)/2.0+$angle1);
-
-		$xcm = $xc + $this->explode_radius[$j]*cos($la)*$expscale;
-		$ycm = $yc - $this->explode_radius[$j]*sin($la)*$expscale;
-		
-		$xcm += $this->ishadowdrop*$expscale;
-		$ycm += $this->ishadowdrop*$expscale;
-
-		$img->CakeSlice($xcm,$ycm,$radius,$radius,
-				$angle1*180/M_PI,$angle2*180/M_PI,$this->ishadowcolor);
-		
-	    }
-	}
-
-	$accsum=0;
-	$angle2 = $this->startangle;
-	$img->SetColor($this->color);
-	for($i=0; $sum>0 && $i < $n; ++$i) {
-	    $j = $n-$i-1;
-	    if( empty($this->explode_radius[$j]) )
-		$this->explode_radius[$j]=0;
-	    $d = $this->data[$i];
-	    $angle1 = $angle2;
-	    $accsum += $d;
-	    $angle2 = $this->startangle+2*M_PI*$accsum/$sum;
-	    $this->la[$i] = 2*M_PI - (abs($angle2-$angle1)/2.0+$angle1);
-
-	    if( $d == 0 ) continue;
-
-	    if( $this->setslicecolors==null )
-		$slicecolor=$colors[$ta[$i%$numcolors]];
-	    else
-		$slicecolor=$this->setslicecolors[$i%$numcolors];
-
-	    if( $this->pie_interior_border && $aaoption===0 )
-		$img->SetColor($this->color);
-	    else
-		$img->SetColor($slicecolor);
-
-	    $arccolor = $this->pie_border && $aaoption===0 ? $this->color : "";
-
-	    $xcm = $xc + $this->explode_radius[$j]*cos($this->la[$i])*$expscale;
-	    $ycm = $yc - $this->explode_radius[$j]*sin($this->la[$i])*$expscale;
-
-	    if( $aaoption !== 2 ) {
-		$img->CakeSlice($xcm,$ycm,$radius-1,$radius-1,
-				$angle1*180/M_PI,$angle2*180/M_PI,$slicecolor,$arccolor);
-	    }
-
-	    if( $this->csimtargets && $aaoption !== 1 ) {
-		$this->AddSliceToCSIM($i,$xcm,$ycm,$radius,$angle1,$angle2);
-	    }
-	}
-
-	// Format the titles for each slice
-	if( $aaoption!==2) {
-	    for( $i=0; $i < $n; ++$i) {
-		if( $this->labeltype==0 ) {
-		    if( $sum != 0 )
-			$l = 100.0*$this->data[$i]/$sum;
-		    else
-			$l = 0.0;
-		}
-		elseif( $this->labeltype==1 ) {
-		    $l = $this->data[$i]*1.0;
-		}
-		else {
-		    $l = $this->adjusted_data[$i];
-		}
-		if( isset($this->labels[$i]) && is_string($this->labels[$i]) )
-		    $this->labels[$i]=sprintf($this->labels[$i],$l);
-		else
-		    $this->labels[$i]=$l;
-	    }
-	}
-
-	If( $this->value->show && $aaoption !== 1 ) {
-	    $this->StrokeAllLabels($img,$xc,$yc,$radius);
-	}
-
-	// Adjust title position
-	if( $aaoption !== 1 ) {
-	    $this->title->Pos($xc,
-			  $yc-$this->title->GetFontHeight($img)-$radius-$this->title->margin,
-			  "center","bottom");
-	    $this->title->Stroke($img);
-	}
-
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    function NormAngle($a) {
-	while( $a < 0 ) $a += 2*M_PI;
-	while( $a > 2*M_PI ) $a -= 2*M_PI;
-	return $a;
-    }
-
-    function Quadrant($a) {
-	$a=$this->NormAngle($a);
-	if( $a > 0 && $a <= M_PI/2 )
-	    return 0;
-	if( $a > M_PI/2 && $a <= M_PI )
-	    return 1;
-	if( $a > M_PI && $a <= 1.5*M_PI )
-	    return 2;
-	if( $a > 1.5*M_PI )
-	    return 3;
-    }
-
-    function StrokeGuideLabels(&$img,$xc,$yc,$radius) {
-	$n = count($this->labels);
-
-	//-----------------------------------------------------------------------
-	// Step 1 of the algorithm is to construct a number of clusters
-	// a cluster is defined as all slices within the same quadrant (almost)
-	// that has an angualr distance less than the treshold
-	//-----------------------------------------------------------------------
-	$tresh_hold=25 * M_PI/180; // 25 degrees difference to be in a cluster
-	$incluster=false;	// flag if we are currently in a cluster or not
-	$clusters = array();	// array of clusters
-	$cidx=-1;		// running cluster index
-
-	// Go through all the labels and construct a number of clusters
-	for($i=0; $i < $n-1; ++$i) {
-	    // Calc the angle distance between two consecutive slices
-	    $a1=$this->la[$i];
-	    $a2=$this->la[$i+1];
-	    $q1 = $this->Quadrant($a1);
-	    $q2 = $this->Quadrant($a2);
-	    $diff = abs($a1-$a2);
-	    if( $diff < $tresh_hold ) {
-		if( $incluster ) {
-		    $clusters[$cidx][1]++;
-		    // Each cluster can only cover one quadrant
-		    // Do we cross a quadrant ( and must break the cluster)
-		    if( $q1 !=  $q2 ) {
-			// If we cross a quadrant boundary we normally start a 
-			// new cluster. However we need to take the 12'a clock
-			// and 6'a clock positions into a special consideration.
-			// Case 1: WE go from q=1 to q=2 if the last slice on
-			// the cluster for q=1 is close to 12'a clock and the 
-			// first slice in q=0 is small we extend the previous
-			// cluster
-			if( $q1 == 1 && $q2 == 0 && $a2 > (90-15)*M_PI/180 ) {
-			    if( $i < $n-2 ) {
-				$a3 = $this->la[$i+2];
-				// If there isn't a cluster coming up with the next-next slice
-				// we extend the previous cluster to cover this slice as well
-				if( abs($a3-$a2) >= $tresh_hold ) {
-				    $clusters[$cidx][1]++;
-				    $i++;
-				}
-			    }
-			}
-			elseif( $q1 == 3 && $q2 == 2 && $a2 > (270-15)*M_PI/180 ) {
-			    if( $i < $n-2 ) {
-				$a3 = $this->la[$i+2];
-				// If there isn't a cluster coming up with the next-next slice
-				// we extend the previous cluster to cover this slice as well
-				if( abs($a3-$a2) >= $tresh_hold ) {
-				    $clusters[$cidx][1]++;
-				    $i++;
-				}
-			    }
-			}
-
-			if( $q1==2 && $q2==1 && $a2 > (180-15)*M_PI/180 ) {
-			    $clusters[$cidx][1]++;
-			    $i++;			    
-			}
-			
-			$incluster = false;
-		    }
-		}
-		elseif( $q1 == $q2)  {
-		    $incluster = true;
-		    // Now we have a special case for quadrant 0. If we previously
-		    // have a cluster of one in quadrant 0 we just extend that
-		    // cluster. If we don't do this then we risk that the label
-		    // for the cluster of one will cross the guide-line
-		    if( $q1 == 0 && $cidx > -1 && 
-			$clusters[$cidx][1] == 1 && 
-			$this->Quadrant($this->la[$clusters[$cidx][0]]) == 0 ) {
-			$clusters[$cidx][1]++;
-		    }
-		    else {
-			$cidx++;
-			$clusters[$cidx][0] = $i;
-			$clusters[$cidx][1] = 1;
-		    }
-		}
-		else {  
-		    // Create a "cluster" of one since we are just crossing
-		    // a quadrant
-		    $cidx++;
-		    $clusters[$cidx][0] = $i;
-		    $clusters[$cidx][1] = 1;	    
-		}
-	    }
-	    else {
-		if( $incluster ) {
-		    // Add the last slice
-		    $clusters[$cidx][1]++;
-		    $incluster = false;
-		}
-		else { // Create a "cluster" of one
-		    $cidx++;
-		    $clusters[$cidx][0] = $i;
-		    $clusters[$cidx][1] = 1;	    
-		}
-	    }
-	}
-	// Handle the very last slice
-	if( $incluster ) {
-	    $clusters[$cidx][1]++;
-	}
-	else { // Create a "cluster" of one
-	    $cidx++;
-	    $clusters[$cidx][0] = $i;
-	    $clusters[$cidx][1] = 1;	    
-	}
-
-	/*
-	if( true ) { 
-	    // Debug printout in labels
-	    for( $i=0; $i <= $cidx; ++$i ) {
-		for( $j=0; $j < $clusters[$i][1]; ++$j ) {
-		    $a = $this->la[$clusters[$i][0]+$j];
-		    $aa = round($a*180/M_PI);
-		    $q = $this->Quadrant($a);
-		    $this->labels[$clusters[$i][0]+$j]="[$q:$aa] $i:$j";
-		}
-	    }
-	}
-	*/
-
-	//-----------------------------------------------------------------------
-	// Step 2 of the algorithm is use the clusters and draw the labels
-	// and guidelines
-	//-----------------------------------------------------------------------
-
-	// We use the font height as the base factor for how far we need to
-	// spread the labels in the Y-direction.
-	$img->SetFont($this->value->ff,$this->value->fs,$this->value->fsize);
-	$fh = $img->GetFontHeight();
-	$origvstep=$fh*$this->iGuideVFactor;
-	$this->value->SetMargin(0);
-
-	// Number of clusters found
-	$nc = count($clusters);
-
-	// Walk through all the clusters
-	for($i=0; $i < $nc; ++$i) {
-
-	    // Start angle and number of slices in this cluster
-	    $csize = $clusters[$i][1];
-	    $a = $this->la[$clusters[$i][0]];
-	    $q = $this->Quadrant($a);
-
-	    // Now set up the start and end conditions to make sure that
-	    // in each cluster we walk through the all the slices starting with the slice
-	    // closest to the equator. Since all slices are numbered clockwise from "3'a clock"
-	    // we have different conditions depending on in which quadrant the slice lies within.
-	    if( $q == 0 ) {
-		$start = $csize-1; $idx = $start; $step = -1; $vstep = -$origvstep;
-	    }
-	    elseif( $q == 1 ) {
-		$start = 0; $idx = $start; $step = 1; $vstep = -$origvstep;
-	    }
-	    elseif( $q == 2 ) {
-		$start = $csize-1; $idx = $start; $step = -1; $vstep = $origvstep;
-	    }
-	    elseif( $q == 3 ) {
-		$start = 0; $idx = $start; $step = 1; $vstep = $origvstep;
-	    }
-
-	    // Walk through all slices within this cluster
-	    for($j=0; $j < $csize; ++$j) {   
-		// Now adjust the position of the labels in each cluster starting
-		// with the slice that is closest to the equator of the pie
-		$a = $this->la[$clusters[$i][0]+$idx];
-		    
-		// Guide line start in the center of the arc of the slice
-		$r = $radius+$this->explode_radius[$n-1-($clusters[$i][0]+$idx)];
-		$x = round($r*cos($a)+$xc);
-		$y = round($yc-$r*sin($a));
-		
-		// The distance from the arc depends on chosen font and the "R-Factor"
-		$r += $fh*$this->iGuideLineRFactor;
-
-		// Should the labels be placed curved along the pie or in straight columns
-		// outside the pie?
-		if( $this->iGuideLineCurve )
-		    $xt=round($r*cos($a)+$xc);
-
-		// If this is the first slice in the cluster we need some first time
-		// proessing
-		if( $idx == $start ) {
-		    if( ! $this->iGuideLineCurve )
-			$xt=round($r*cos($a)+$xc);
-		    $yt=round($yc-$r*sin($a));
-
-		    // Some special consideration in case this cluster starts
-		    // in quadrant 1 or 3 very close to the "equator" (< 20 degrees) 
-		    // and the previous clusters last slice is within the tolerance. 
-		    // In that case we add a font height to this labels Y-position 
-		    // so it doesn't collide with
-		    // the slice in the previous cluster
-		    $prevcluster = ($i + ($nc-1) ) % $nc;
-		    $previdx=$clusters[$prevcluster][0]+$clusters[$prevcluster][1]-1;
-		    if( $q == 1 && $a > 160*M_PI/180 ) {
-			// Get the angle for the previous clusters last slice
-			$diff = abs($a-$this->la[$previdx]);
-			 if( $diff < $tresh_hold ) {
-			     $yt -= $fh;
-			 }
-		    }
-		    elseif( $q == 3 && $a > 340*M_PI/180 ) {
-			// We need to subtract 360 to compare angle distance between
-			// q=0 and q=3
-			$diff = abs($a-$this->la[$previdx]-360*M_PI/180);
-			if( $diff < $tresh_hold ) {
-			     $yt += $fh;
-			}
-		    }
-
-		}
-		else {
-		    // The step is at minimum $vstep but if the slices are relatively large
-		    // we make sure that we add at least a step that corresponds to the vertical
-		    // distance between the centers at the arc on the slice
-		    $prev_a = $this->la[$clusters[$i][0]+($idx-$step)];
-		    $dy = abs($radius*(sin($a)-sin($prev_a))*1.2);
-		    if( $vstep > 0 )
-			$yt += max($vstep,$dy);
-		    else
-			$yt += min($vstep,-$dy);
-		}
-
-		$label = $this->labels[$clusters[$i][0]+$idx];
-
-		if( $csize == 1 ) {
-		    // A "meta" cluster with only one slice
-		    $r = $radius+$this->explode_radius[$n-1-($clusters[$i][0]+$idx)];
-		    $rr = $r+$img->GetFontHeight()/2;
-		    $xt=round($rr*cos($a)+$xc);
-		    $yt=round($yc-$rr*sin($a));
-		    $this->StrokeLabel($label,$img,$xc,$yc,$a,$r); 
-		    if( $this->iShowGuideLineForSingle ) 
-			$this->guideline->Stroke($img,$x,$y,$xt,$yt);
-		}
-		else {
-		    $this->guideline->Stroke($img,$x,$y,$xt,$yt);
-		    if( $q==1 || $q==2 ) {
-			// Left side of Pie
-			$this->guideline->Stroke($img,$xt,$yt,$xt-$this->guidelinemargin,$yt);
-			$lbladj = -$this->guidelinemargin-5;
-			$this->value->halign = "right";
-			$this->value->valign = "center";
-		    }
-		    else {
-			// Right side of pie
-			$this->guideline->Stroke($img,$xt,$yt,$xt+$this->guidelinemargin,$yt);
-			$lbladj = $this->guidelinemargin+5;
-			$this->value->halign = "left";
-			$this->value->valign = "center";
-		    }
-		    $this->value->Stroke($img,$label,$xt+$lbladj,$yt);
-		}
-
-		// Udate idx to point to next slice in the cluster to process
-		$idx += $step;
-	    }
-	}
-    }
-
-    function StrokeAllLabels(&$img,$xc,$yc,$radius) {
-	// First normalize all angles for labels
-	$n = count($this->la);
-	for($i=0; $i < $n; ++$i) {
-	    $this->la[$i] = $this->NormAngle($this->la[$i]);
-	}
-	if( $this->guideline->iShow ) {
-	    $this->StrokeGuideLabels($img,$xc,$yc,$radius);
-	}
-	else {
-	    $n = count($this->labels);
-	    for($i=0; $i < $n; ++$i) {
-		$this->StrokeLabel($this->labels[$i],$img,$xc,$yc,
-				   $this->la[$i],
-				   $radius + $this->explode_radius[$n-1-$i]); 
-	    }
-	}
-    }
-
-    // Position the labels of each slice
-    function StrokeLabel($label,&$img,$xc,$yc,$a,$radius) {
-
-	// Default value
-	if( $this->ilabelposadj === 'auto' )
-	    $this->ilabelposadj = 0.65;
-	$r = $radius;
-
-	// We position the values diferently depending on if they are inside
-	// or outside the pie
-	if( $this->ilabelposadj < 1.0 ) {
-
-	    $this->value->SetAlign('center','center');
-	    $this->value->margin = 0;
-	    
-	    $xt=round($this->ilabelposadj*$r*cos($a)+$xc);
-	    $yt=round($yc-$this->ilabelposadj*$r*sin($a));
-	    
-	    $this->value->Stroke($img,$label,$xt,$yt);
-	}
-	else {
-
-	    $this->value->halign = "left";
-	    $this->value->valign = "top";
-	    $this->value->margin = 0;
-	    	    
-	    // Position the axis title. 
-	    // dx, dy is the offset from the top left corner of the bounding box that sorrounds the text
-	    // that intersects with the extension of the corresponding axis. The code looks a little
-	    // bit messy but this is really the only way of having a reasonable position of the
-	    // axis titles.
-	    $img->SetFont($this->value->ff,$this->value->fs,$this->value->fsize);
-	    $h=$img->GetTextHeight($label);
-	    // For numeric values the format of the display value
-	    // must be taken into account
-	    if( is_numeric($label) ) {
-		if( $label > 0 )
-		    $w=$img->GetTextWidth(sprintf($this->value->format,$label));
-		else
-		    $w=$img->GetTextWidth(sprintf($this->value->negformat,$label));
-	    }
-	    else
-		$w=$img->GetTextWidth($label);
-	    if( $this->ilabelposadj > 1.0 && $this->ilabelposadj < 5.0) {
-		$r *= $this->ilabelposadj;
-	    }
-	    
-	    $r += $img->GetFontHeight()/1.5;
-
-	    $xt=round($r*cos($a)+$xc);
-	    $yt=round($yc-$r*sin($a));
-
-	    // Normalize angle
-	    while( $a < 0 ) $a += 2*M_PI;
-	    while( $a > 2*M_PI ) $a -= 2*M_PI;
-		
-	    if( $a>=7*M_PI/4 || $a <= M_PI/4 ) $dx=0;
-	    if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dx=($a-M_PI/4)*2/M_PI; 
-	    if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dx=1;
-	    if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dx=(1-($a-M_PI*5/4)*2/M_PI);
-	    
-	    if( $a>=7*M_PI/4 ) $dy=(($a-M_PI)-3*M_PI/4)*2/M_PI;
-	    if( $a<=M_PI/4 ) $dy=(1-$a*2/M_PI);
-	    if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dy=1;
-	    if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dy=(1-($a-3*M_PI/4)*2/M_PI);
-	    if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dy=0;
-	    
-	    $this->value->Stroke($img,$label,$xt-$dx*$w,$yt-$dy*$h);
-	}
-    }	
-} // Class
-
-
-//===================================================
-// CLASS PiePlotC
-// Description: Same as a normal pie plot but with a 
-// filled circle in the center
-//===================================================
-class PiePlotC extends PiePlot {
-    var $imidsize=0.5;		// Fraction of total width
-    var $imidcolor='white';
-    var $midtitle='';
-    var $middlecsimtarget="",$middlecsimalt="";
-
-    function PiePlotC($data,$aCenterTitle='') {
-	parent::PiePlot($data);
-	$this->midtitle = new Text();
-	$this->midtitle->ParagraphAlign('center');
-    }
-
-    function SetMid($aTitle,$aColor='white',$aSize=0.5) {
-	$this->midtitle->Set($aTitle);
-
-	$this->imidsize = $aSize ; 
-	$this->imidcolor = $aColor ; 
-    }
-
-    function SetMidTitle($aTitle) {
-	$this->midtitle->Set($aTitle);
-    }
-
-    function SetMidSize($aSize) {
-	$this->imidsize = $aSize ; 
-    }
-
-    function SetMidColor($aColor) {
-	$this->imidcolor = $aColor ; 
-    }
-
-    function SetMidCSIM($aTarget,$aAlt) {
-	$this->middlecsimtarget = $aTarget;
-	$this->middlecsimalt = $aAlt;
-    }
-
-    function AddSliceToCSIM($i,$xc,$yc,$radius,$sa,$ea) {  
-
-        //Slice number, ellipse centre (x,y), radius, start angle, end angle
-	while( $sa > 2*M_PI ) $sa = $sa - 2*M_PI;
-	while( $ea > 2*M_PI ) $ea = $ea - 2*M_PI;
-
-	$sa = 2*M_PI - $sa;
-	$ea = 2*M_PI - $ea;
-
-	// Special case when we have only one slice since then both start and end
-	// angle will be == 0
-	if( abs($sa - $ea) < 0.0001 ) {
-	    $sa=2*M_PI; $ea=0;
-	}
-
-	// Add inner circle first point
-	$xp = floor(($this->imidsize*$radius*cos($ea))+$xc);
-	$yp = floor($yc-($this->imidsize*$radius*sin($ea)));
-	$coords = "$xp, $yp";
-	
-	//add coordinates every 0.25 radians
-	$a=$ea+0.25;
-
-	// If we cross the 260-limit with a slice we need to handle
-	// the fact that end angle is smaller than start
-	if( $sa < $ea ) {
-	    while ($a <= 2*M_PI) {
-		$xp = floor($radius*cos($a)+$xc);
-		$yp = floor($yc-$radius*sin($a));
-		$coords.= ", $xp, $yp";
-		$a += 0.25;
-	    }
-	    $a -= 2*M_PI;
-	}
-
-	while ($a < $sa) {
-	    $xp = floor(($this->imidsize*$radius*cos($a)+$xc));
-	    $yp = floor($yc-($this->imidsize*$radius*sin($a)));
-	    $coords.= ", $xp, $yp";
-	    $a += 0.25;
-	}
-
-	// Make sure we end at the last point
-	$xp = floor(($this->imidsize*$radius*cos($sa)+$xc));
-	$yp = floor($yc-($this->imidsize*$radius*sin($sa)));
-	$coords.= ", $xp, $yp";
-
-	// Straight line to outer circle
-	$xp = floor($radius*cos($sa)+$xc);
-	$yp = floor($yc-$radius*sin($sa));
-	$coords.= ", $xp, $yp";	
-
-	//add coordinates every 0.25 radians
-	$a=$sa - 0.25;
-	while ($a > $ea) {
-	    $xp = floor($radius*cos($a)+$xc);
-	    $yp = floor($yc-$radius*sin($a));
-	    $coords.= ", $xp, $yp";
-	    $a -= 0.25;
-	}
-		
-	//Add the last point on the arc
-	$xp = floor($radius*cos($ea)+$xc);
-	$yp = floor($yc-$radius*sin($ea));
-	$coords.= ", $xp, $yp";
-
-	// Close the arc
-	$xp = floor(($this->imidsize*$radius*cos($ea))+$xc);
-	$yp = floor($yc-($this->imidsize*$radius*sin($ea)));
-	$coords .= ", $xp, $yp";
-
-	if( !empty($this->csimtargets[$i]) ) {
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".
-		$this->csimtargets[$i]."\"";
-	    if( !empty($this->csimalts[$i]) ) {
-		$tmp=sprintf($this->csimalts[$i],$this->data[$i]);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-	    $this->csimareas .= " alt=\"$tmp\" />\n";
-	}
-    }
-
-
-    function Stroke(&$img,$aaoption=0) {
-
-	// Stroke the pie but don't stroke values
-	$tmp =  $this->value->show;
-	$this->value->show = false;
-	parent::Stroke($img,$aaoption);
-	$this->value->show = $tmp;
-
- 	$xc = round($this->posx*$img->width);
-	$yc = round($this->posy*$img->height);
-
-	$radius = floor($this->radius * min($img->width,$img->height)) ;
-
-
-	if( $this->imidsize > 0 && $aaoption !== 2 ) {
-
-	    if( $this->ishadowcolor != "" ) {
-		$img->SetColor($this->ishadowcolor);
-		$img->FilledCircle($xc+$this->ishadowdrop,$yc+$this->ishadowdrop,
-				   round($radius*$this->imidsize));
-	    }
-
-	    $img->SetColor($this->imidcolor);
-	    $img->FilledCircle($xc,$yc,round($radius*$this->imidsize));
-
-	    if(  $this->pie_border && $aaoption === 0 ) {
-		$img->SetColor($this->color);
-		$img->Circle($xc,$yc,round($radius*$this->imidsize));
-	    }
-
-	    if( !empty($this->middlecsimtarget) )
-		$this->AddMiddleCSIM($xc,$yc,round($radius*$this->imidsize));
-
-	}
-
-	if( $this->value->show && $aaoption !== 1) {
-	    $this->StrokeAllLabels($img,$xc,$yc,$radius);
-	    $this->midtitle->Pos($xc,$yc,'center','center');
-	    $this->midtitle->Stroke($img);
-	}
-
-    }
-
-    function AddMiddleCSIM($xc,$yc,$r) {
-	$xc=round($xc);$yc=round($yc);$r=round($r);
-	$this->csimareas .= "<area shape=\"circle\" coords=\"$xc,$yc,$r\" href=\"".
-	    $this->middlecsimtarget."\"";
-	if( !empty($this->middlecsimalt) ) {
-	    $tmp = $this->middlecsimalt;
-	    $this->csimareas .= " title=\"$tmp\"";
-	}
-	$this->csimareas .= " alt=\"$tmp\" />\n";
-    }
-
-    function StrokeLabel($label,$img,$xc,$yc,$a,$r) {
-
-	if( $this->ilabelposadj === 'auto' )
-	    $this->ilabelposadj = (1-$this->imidsize)/2+$this->imidsize;
-
-	parent::StrokeLabel($label,$img,$xc,$yc,$a,$r);
-
-    }
-
-}
-
-
-//===================================================
-// CLASS PieGraph
-// Description: 
-//===================================================
-class PieGraph extends Graph {
-    var $posx, $posy, $radius;		
-    var $legends=array();	
-    var $plots=array();
-    var $pieaa = false ;
-//---------------
-// CONSTRUCTOR
-    function PieGraph($width=300,$height=200,$cachedName="",$timeout=0,$inline=1) {
-	$this->Graph($width,$height,$cachedName,$timeout,$inline);
-	$this->posx=$width/2;
-	$this->posy=$height/2;
-	$this->SetColor(array(255,255,255));		
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Add($aObj) {
-
-	if( is_array($aObj) && count($aObj) > 0 )
-	    $cl = $aObj[0];
-	else
-	    $cl = $aObj;
-
-	if( is_a($cl,'Text') ) 
-	    $this->AddText($aObj);
-	elseif( is_a($cl,'IconPlot') ) 
-	    $this->AddIcon($aObj);
-	else {
-	    if( is_array($aObj) ) {
-		$n = count($aObj);
-		for($i=0; $i < $n; ++$i ) {
-		    $this->plots[] = $aObj[$i];
-		}
-	    }
-	    else {
-		$this->plots[] = $aObj;
-	    }
-	}
-    }
-
-    function SetAntiAliasing($aFlg=true) {
-	$this->pieaa = $aFlg;
-    }
-	
-    function SetColor($c) {
-	$this->SetMarginColor($c);
-    }
-
-    function DisplayCSIMAreas() {
-	    $csim="";
-	    foreach($this->plots as $p ) {
-		$csim .= $p->GetCSIMareas();
-	    }
-	    //$csim.= $this->legend->GetCSIMareas();
-	    if (preg_match_all("/area shape=\"(\w+)\" coords=\"([0-9\, ]+)\"/", $csim, $coords)) {
-		$this->img->SetColor($this->csimcolor);
-		$n = count($coords[0]);
-		for ($i=0; $i < $n; $i++) {
-		    if ($coords[1][$i]=="poly") {
-			preg_match_all('/\s*([0-9]+)\s*,\s*([0-9]+)\s*,*/',$coords[2][$i],$pts);
-			$this->img->SetStartPoint($pts[1][count($pts[0])-1],$pts[2][count($pts[0])-1]);
-			$m = count($pts[0]);
-			for ($j=0; $j < $m; $j++) {
-			    $this->img->LineTo($pts[1][$j],$pts[2][$j]);
-			}
-		    } else if ($coords[1][$i]=="rect") {
-			$pts = preg_split('/,/', $coords[2][$i]);
-			$this->img->SetStartPoint($pts[0],$pts[1]);
-			$this->img->LineTo($pts[2],$pts[1]);
-			$this->img->LineTo($pts[2],$pts[3]);
-			$this->img->LineTo($pts[0],$pts[3]);
-			$this->img->LineTo($pts[0],$pts[1]);
-						
-		    }
-		}
-	    }
-    }
-
-    // Method description
-    function Stroke($aStrokeFileName="") {
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-		
-	$n = count($this->plots);
-
-	if( $this->pieaa ) {
-
-	    if( !$_csim ) {
-		if( $this->background_image != "" ) {
-		    $this->StrokeFrameBackground();		
-		}
-		else {
-		    $this->StrokeFrame();
-		}
-	    }
-
-
-	    $w = $this->img->width;
-	    $h = $this->img->height;
-	    $oldimg = $this->img->img;
-
-	    $this->img->CreateImgCanvas(2*$w,2*$h);
-	    
-	    $this->img->SetColor( $this->margin_color );
-	    $this->img->FilledRectangle(0,0,2*$w-1,2*$h-1);
-
-	    // Make all icons *2 i size since we will be scaling down the
-	    // image to do the anti aliasing
-	    $ni = count($this->iIcons);
-	    for($i=0; $i < $ni; ++$i) {
-		$this->iIcons[$i]->iScale *= 2 ;
-		if( $this->iIcons[$i]->iX > 1 ) 
-		    $this->iIcons[$i]->iX *= 2 ;
-		if( $this->iIcons[$i]->iY > 1 ) 
-		    $this->iIcons[$i]->iY *= 2 ;
-	    }
-
-	    $this->StrokeIcons();
-
-	    for($i=0; $i < $n; ++$i) {
-		if( $this->plots[$i]->posx > 1 ) 
-		    $this->plots[$i]->posx *= 2 ;
-		if( $this->plots[$i]->posy > 1 ) 
-		    $this->plots[$i]->posy *= 2 ;
-
-		$this->plots[$i]->Stroke($this->img,1);
-
-		if( $this->plots[$i]->posx > 1 ) 
-		    $this->plots[$i]->posx /= 2 ;
-		if( $this->plots[$i]->posy > 1 ) 
-		    $this->plots[$i]->posy /= 2 ;
-	    }
-	    $indent = $this->doframe ? ($this->frame_weight + ($this->doshadow ? $this->shadow_width : 0 )) : 0 ;
-	    $indent += $this->framebevel ? $this->framebeveldepth + 1 : 0 ;
-	    $this->img->CopyCanvasH($oldimg,$this->img->img,$indent,$indent,$indent,$indent,
-				    $w-2*$indent,$h-2*$indent,2*($w-$indent),2*($h-$indent));
-
-	    $this->img->img = $oldimg ;
-	    $this->img->width = $w ;
-	    $this->img->height = $h ;
-
-	    for($i=0; $i < $n; ++$i) {
-		$this->plots[$i]->Stroke($this->img,2); // Stroke labels
-		$this->plots[$i]->Legend($this);
-	    }
-
-	}
-	else {
-	    // No antialias
-	    if( !$_csim ) {
-		if( $this->background_image != "" ) {
-		    $this->StrokeFrameBackground();		
-		}
-		else {
-		    $this->StrokeFrame();
-		    $this->StrokeBackgroundGrad();
-		}
-	    }
-
-	    $this->StrokeIcons();
-	    for($i=0; $i < $n; ++$i) {
-		$this->plots[$i]->Stroke($this->img);
-		$this->plots[$i]->Legend($this);
-	    }
-	}
-
-	$this->legend->Stroke($this->img);
-	$this->footer->Stroke($this->img);
-	$this->StrokeTitles();
-
-	if( !$_csim ) {	
-
-	    // Stroke texts
-	    if( $this->texts != null ) {
-		$n = count($this->texts);
-		for($i=0; $i < $n; ++$i ) {
-		    $this->texts[$i]->Stroke($this->img);
-		}
-	    }
-
-	    if( _JPG_DEBUG ) {
-		$this->DisplayCSIMAreas();
-	    }
-
-	    // Should we do any final image transformation
-	    if( $this->iImgTrans ) {
-		if( !class_exists('ImgTrans') ) {
-		    require_once('jpgraph_imgtrans.php');
-		    //JpGraphError::Raise('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.');
-		}
-	       
-		$tform = new ImgTrans($this->img->img);
-		$this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-						 $this->iImgTransDirection,$this->iImgTransHighQ,
-						 $this->iImgTransMinSize,$this->iImgTransFillColor,
-						 $this->iImgTransBorder);
-	    }
-
-
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-					   $aStrokeFileName);		
-	    }
-	}
-    }
-} // Class
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_pie3d.php b/nightly-test-server/jpgraph/jpgraph_pie3d.php
deleted file mode 100644
index 753ec68..0000000
--- a/nightly-test-server/jpgraph/jpgraph_pie3d.php
+++ /dev/null
@@ -1,914 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_PIE3D.PHP
-// Description: 3D Pie plot extension for JpGraph
-// Created: 	2001-03-24
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS PiePlot3D
-// Description: Plots a 3D pie with a specified projection 
-// angle between 20 and 70 degrees.
-//===================================================
-class PiePlot3D extends PiePlot {
-    var $labelhintcolor="red",$showlabelhint=true;
-    var $angle=50;	
-    var $edgecolor="", $edgeweight=1;
-    var $iThickness=false;
-	
-//---------------
-// CONSTRUCTOR
-    function PiePlot3d(&$data) {
-	$this->radius = 0.5;
-	$this->data = $data;
-	$this->title = new Text("");
-	$this->title->SetFont(FF_FONT1,FS_BOLD);
-	$this->value = new DisplayValue();
-	$this->value->Show();
-	$this->value->SetFormat('%.0f%%');
-    }
-
-//---------------
-// PUBLIC METHODS	
-	
-    // Set label arrays
-    function SetLegends($aLegend) {
-	$this->legends = array_reverse(array_slice($aLegend,0,count($this->data)));
-    }
-
-    function SetSliceColors($aColors) {
-	$this->setslicecolors = $aColors;
-    }
-
-    function Legend(&$aGraph) {
-	parent::Legend($aGraph);
-	$aGraph->legend->txtcol = array_reverse($aGraph->legend->txtcol);
-    }
-
-    function SetCSIMTargets($targets,$alts=null) {
-	$this->csimtargets = $targets;
-	$this->csimalts = $alts;
-    }
-
-    // Should the slices be separated by a line? If color is specified as "" no line
-    // will be used to separate pie slices.
-    function SetEdge($aColor='black',$aWeight=1) {
-	$this->edgecolor = $aColor;
-	$this->edgeweight = $aWeight;
-    }
-
-    // Dummy function to make Pie3D behave in a similair way to 2D
-    function ShowBorder($exterior=true,$interior=true) {
-	JpGraphError::RaiseL(14001);
-//('Pie3D::ShowBorder() . Deprecated function. Use Pie3D::SetEdge() to control the edges around slices.');
-    }
-
-    // Specify projection angle for 3D in degrees
-    // Must be between 20 and 70 degrees
-    function SetAngle($a) {
-	if( $a<5 || $a>90 )
-	    JpGraphError::RaiseL(14002);
-//("PiePlot3D::SetAngle() 3D Pie projection angle must be between 5 and 85 degrees.");
-	else
-	    $this->angle = $a;
-    }
-
-    function AddSliceToCSIM($i,$xc,$yc,$height,$width,$thick,$sa,$ea) {  //Slice number, ellipse centre (x,y), height, width, start angle, end angle
-
-	$sa *= M_PI/180;
-	$ea *= M_PI/180;
-
-	//add coordinates of the centre to the map
-	$coords = "$xc, $yc";
-
-	//add coordinates of the first point on the arc to the map
-	$xp = floor($width*cos($sa)/2+$xc);
-	$yp = floor($yc-$height*sin($sa)/2);
-	$coords.= ", $xp, $yp";
-
-	//If on the front half, add the thickness offset
-	if ($sa >= M_PI && $sa <= 2*M_PI*1.01) {
-	    $yp = floor($yp+$thick);
-	    $coords.= ", $xp, $yp";
-	}
-		
-	//add coordinates every 0.2 radians
-	$a=$sa+0.2;
-	while ($a<$ea) {
-	    $xp = floor($width*cos($a)/2+$xc);
-	    if ($a >= M_PI && $a <= 2*M_PI*1.01) {
-		$yp = floor($yc-($height*sin($a)/2)+$thick);
-	    } else {
-		$yp = floor($yc-$height*sin($a)/2);
-	    }
-	    $coords.= ", $xp, $yp";
-	    $a += 0.2;
-	}
-		
-	//Add the last point on the arc
-	$xp = floor($width*cos($ea)/2+$xc);
-	$yp = floor($yc-$height*sin($ea)/2);
-
-
-	if ($ea >= M_PI && $ea <= 2*M_PI*1.01) {
-	    $coords.= ", $xp, ".floor($yp+$thick);
-	}
-	$coords.= ", $xp, $yp";
-	$alt='';
-	if( !empty($this->csimalts[$i]) ) {										
-	    $tmp=sprintf($this->csimalts[$i],$this->data[$i]);
-	    $alt="alt=\"$tmp\" title=\"$tmp\"";
-	}
-	if( !empty($this->csimtargets[$i]) )
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".$this->csimtargets[$i]."\" $alt />\n";
-    }
-
-    function SetLabels($aLabels,$aLblPosAdj="auto") {
-	$this->labels = $aLabels;
-	$this->ilabelposadj=$aLblPosAdj;
-    }
-
-	
-    // Distance from the pie to the labels
-    function SetLabelMargin($m) {
-	$this->value->SetMargin($m);
-    }
-	
-    // Show a thin line from the pie to the label for a specific slice
-    function ShowLabelHint($f=true) {
-	$this->showlabelhint=$f;
-    }
-	
-    // Set color of hint line to label for each slice
-    function SetLabelHintColor($c) {
-	$this->labelhintcolor=$c;
-    }
-
-    function SetHeight($aHeight) {
-      $this->iThickness = $aHeight;
-    }
-
-
-// Normalize Angle between 0-360
-    function NormAngle($a) {
-	// Normalize anle to 0 to 2M_PI
-	// 
-	if( $a > 0 ) {
-	    while($a > 360) $a -= 360;
-	}
-	else {
-	    while($a < 0) $a += 360;
-	}
-	if( $a < 0 )
-	    $a = 360 + $a;
-
-	if( $a == 360 ) $a=0;
-	return $a;
-    }
-
-    
-
-// Draw one 3D pie slice at position ($xc,$yc) with height $z
-    function Pie3DSlice(&$img,$xc,$yc,$w,$h,$sa,$ea,$z,$fillcolor,$shadow=0.65) {
-	
-	// Due to the way the 3D Pie algorithm works we are
-	// guaranteed that any slice we get into this method
-	// belongs to either the left or right side of the
-	// pie ellipse. Hence, no slice will cross 90 or 270
-	// point.
-	if( ($sa < 90 && $ea > 90) || ( ($sa > 90 && $sa < 270) && $ea > 270) ) {
-	    JpGraphError::RaiseL(14003);//('Internal assertion failed. Pie3D::Pie3DSlice');
-	    exit(1);
-	}
-
-	$p[] = array();
-
-	// Setup pre-calculated values
-	$rsa = $sa/180*M_PI;	// to Rad
-	$rea = $ea/180*M_PI;	// to Rad
-	$sinsa = sin($rsa);
-	$cossa = cos($rsa);
-	$sinea = sin($rea);
-	$cosea = cos($rea);
-
-	// p[] is the points for the overall slice and
-	// pt[] is the points for the top pie
-
-	// Angular step when approximating the arc with a polygon train.
-	$step = 0.05;
-
-	if( $sa >= 270 ) {
-	    if( $ea > 360 || ($ea > 0 && $ea <= 90) ) {
-		if( $ea > 0 && $ea <= 90 ) {
-		    // Adjust angle to simplify conditions in loops
-		    $rea += 2*M_PI;
-		}
-
-		$p = array($xc,$yc,$xc,$yc+$z,
-			   $xc+$w*$cossa,$z+$yc-$h*$sinsa);
-		$pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa);
-
-		for( $a=$rsa; $a < 2*M_PI; $a += $step ) {
-		    $tca = cos($a);
-		    $tsa = sin($a);
-		    $p[] = $xc+$w*$tca;
-		    $p[] = $z+$yc-$h*$tsa;
-		    $pt[] = $xc+$w*$tca;
-		    $pt[] = $yc-$h*$tsa;
-		}
-
-		$pt[] = $xc+$w;
-		$pt[] = $yc;
-
-		$p[] = $xc+$w;
-		$p[] = $z+$yc;
-		$p[] = $xc+$w;
-		$p[] = $yc;
-		$p[] = $xc;
-		$p[] = $yc;
-
-		for( $a=2*M_PI+$step; $a < $rea; $a += $step ) {
-		    $pt[] = $xc + $w*cos($a);
-		    $pt[] = $yc - $h*sin($a);
-		}
-		    
-		$pt[] = $xc+$w*$cosea;
-		$pt[] = $yc-$h*$sinea;
-		$pt[] = $xc;
-		$pt[] = $yc;
-
-	    }
-	    else {
-		$p = array($xc,$yc,$xc,$yc+$z,
-			   $xc+$w*$cossa,$z+$yc-$h*$sinsa);
-		$pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa);
-		    
-		$rea = $rea == 0.0 ? 2*M_PI : $rea;
-		for( $a=$rsa; $a < $rea; $a += $step ) {
-		    $tca = cos($a);
-		    $tsa = sin($a);
-		    $p[] = $xc+$w*$tca;
-		    $p[] = $z+$yc-$h*$tsa;
-		    $pt[] = $xc+$w*$tca;
-		    $pt[] = $yc-$h*$tsa;
-		}
-
-		$pt[] = $xc+$w*$cosea;
-		$pt[] = $yc-$h*$sinea;
-		$pt[] = $xc;
-		$pt[] = $yc;
-		    
-		$p[] = $xc+$w*$cosea;
-		$p[] = $z+$yc-$h*$sinea;
-		$p[] = $xc+$w*$cosea;
-		$p[] = $yc-$h*$sinea;
-		$p[] = $xc;
-		$p[] = $yc;
-	    }
-	}
-	elseif( $sa >= 180 ) {
-	    $p = array($xc,$yc,$xc,$yc+$z,$xc+$w*$cosea,$z+$yc-$h*$sinea);
-	    $pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea);
-		
-	    for( $a=$rea; $a>$rsa; $a -= $step ) {
-		$tca = cos($a);
-		$tsa = sin($a);
-		$p[] = $xc+$w*$tca;
-		$p[] = $z+$yc-$h*$tsa;
-		$pt[] = $xc+$w*$tca;
-		$pt[] = $yc-$h*$tsa;
-	    }
-
-	    $pt[] = $xc+$w*$cossa;
-	    $pt[] = $yc-$h*$sinsa;
-	    $pt[] = $xc;
-	    $pt[] = $yc;
-		
-	    $p[] = $xc+$w*$cossa;
-	    $p[] = $z+$yc-$h*$sinsa;
-	    $p[] = $xc+$w*$cossa;
-	    $p[] = $yc-$h*$sinsa;
-	    $p[] = $xc;
-	    $p[] = $yc;
-	
-	}
-	elseif( $sa >= 90 ) {
-	    if( $ea > 180 ) {
-		$p = array($xc,$yc,$xc,$yc+$z,$xc+$w*$cosea,$z+$yc-$h*$sinea);
-		$pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea);
-
-		for( $a=$rea; $a > M_PI; $a -= $step ) {
-		    $tca = cos($a);
-		    $tsa = sin($a);		    
-		    $p[] = $xc+$w*$tca;
-		    $p[] = $z + $yc - $h*$tsa;
-		    $pt[] = $xc+$w*$tca;
-		    $pt[] = $yc-$h*$tsa;
-		}
-
-		$p[] = $xc-$w;
-		$p[] = $z+$yc;
-		$p[] = $xc-$w;
-		$p[] = $yc;
-		$p[] = $xc;
-		$p[] = $yc;
-
-		$pt[] = $xc-$w;
-		$pt[] = $z+$yc;
-		$pt[] = $xc-$w;
-		$pt[] = $yc;
-
-		for( $a=M_PI-$step; $a > $rsa; $a -= $step ) {
-		    $pt[] = $xc + $w*cos($a);
-		    $pt[] = $yc - $h*sin($a);
-		}
-
-		$pt[] = $xc+$w*$cossa;
-		$pt[] = $yc-$h*$sinsa;
-		$pt[] = $xc;
-		$pt[] = $yc;
-
-	    }
-	    else { // $sa >= 90 && $ea <= 180
-		$p = array($xc,$yc,$xc,$yc+$z,
-			   $xc+$w*$cosea,$z+$yc-$h*$sinea,
-			   $xc+$w*$cosea,$yc-$h*$sinea,
-			   $xc,$yc);
-
-		$pt = array($xc,$yc,$xc+$w*$cosea,$yc-$h*$sinea);
-
-		for( $a=$rea; $a>$rsa; $a -= $step ) {
-		    $pt[] = $xc + $w*cos($a);
-		    $pt[] = $yc - $h*sin($a);
-		}
-
-		$pt[] = $xc+$w*$cossa;
-		$pt[] = $yc-$h*$sinsa;
-		$pt[] = $xc;
-		$pt[] = $yc;
-
-	    }
-	}
-	else { // sa > 0 && ea < 90
-
-	    $p = array($xc,$yc,$xc,$yc+$z,
-		       $xc+$w*$cossa,$z+$yc-$h*$sinsa,
-		       $xc+$w*$cossa,$yc-$h*$sinsa,
-		       $xc,$yc);
-
-	    $pt = array($xc,$yc,$xc+$w*$cossa,$yc-$h*$sinsa);
-
-	    for( $a=$rsa; $a < $rea; $a += $step ) {
-		$pt[] = $xc + $w*cos($a);
-		$pt[] = $yc - $h*sin($a);
-	    }
-
-	    $pt[] = $xc+$w*$cosea;
-	    $pt[] = $yc-$h*$sinea;
-	    $pt[] = $xc;
-	    $pt[] = $yc;
-	}
-	    
-	$img->PushColor($fillcolor.":".$shadow);
-	$img->FilledPolygon($p);
-	$img->PopColor();
-
-	$img->PushColor($fillcolor);
-	$img->FilledPolygon($pt);
-	$img->PopColor();
-    }
-
-    function SetStartAngle($aStart) {
-	if( $aStart < 0 || $aStart > 360 ) {
-	    JpGraphError::RaiseL(14004);//('Slice start angle must be between 0 and 360 degrees.');
-	}
-	$this->startangle = $aStart;
-    }
-    
-// Draw a 3D Pie
-    function Pie3D($aaoption,&$img,$data,$colors,$xc,$yc,$d,$angle,$z,
-		   $shadow=0.65,$startangle=0,$edgecolor="",$edgeweight=1) {
-
-	//---------------------------------------------------------------------------
-	// As usual the algorithm get more complicated than I originally
-	// envisioned. I believe that this is as simple as it is possible
-	// to do it with the features I want. It's a good exercise to start
-	// thinking on how to do this to convince your self that all this
-	// is really needed for the general case.
-	//
-	// The algorithm two draw 3D pies without "real 3D" is done in
-	// two steps.
-	// First imagine the pie cut in half through a thought line between
-	// 12'a clock and 6'a clock. It now easy to imagine that we can plot 
-	// the individual slices for each half by starting with the topmost
-	// pie slice and continue down to 6'a clock.
-	// 
-	// In the algortithm this is done in three principal steps
-	// Step 1. Do the knife cut to ensure by splitting slices that extends 
-	// over the cut line. This is done by splitting the original slices into
-	// upto 3 subslices.
-	// Step 2. Find the top slice for each half
-	// Step 3. Draw the slices from top to bottom
-	//
-	// The thing that slightly complicates this scheme with all the
-	// angle comparisons below is that we can have an arbitrary start
-	// angle so we must take into account the different equivalence classes.
-	// For the same reason we must walk through the angle array in a 
-	// modulo fashion.
-	//
-	// Limitations of algorithm: 
-	// * A small exploded slice which crosses the 270 degree point
-	//   will get slightly nagged close to the center due to the fact that
-	//   we print the slices in Z-order and that the slice left part
-	//   get printed first and might get slightly nagged by a larger
-	//   slice on the right side just before the right part of the small
-	//   slice. Not a major problem though. 
-	//---------------------------------------------------------------------------
-
-    
-	// Determine the height of the ellippse which gives an
-	// indication of the inclination angle
-	$h = ($angle/90.0)*$d;
-	$sum = 0;
-	for($i=0; $i<count($data); ++$i ) {
-	    $sum += $data[$i];
-	}
-	
-	// Special optimization
-	if( $sum==0 ) return;
-
-	if( $this->labeltype == 2 ) {
-	    $this->adjusted_data = $this->AdjPercentage($data);
-	}
-
-	// Setup the start
-	$accsum = 0;
-	$a = $startangle;
-	$a = $this->NormAngle($a);
-
-	// 
-	// Step 1 . Split all slices that crosses 90 or 270
-	//
-	$idx=0;
-	$adjexplode=array(); 
-	$numcolors = count($colors);
-	for($i=0; $i<count($data); ++$i, ++$idx ) {
-	    $da = $data[$i]/$sum * 360;
-
-	    if( empty($this->explode_radius[$i]) )
-		$this->explode_radius[$i]=0;
-
-	    $expscale=1;
-	    if( $aaoption == 1 ) 
-		$expscale=2;
-
-	    $la = $a + $da/2;
-	    $explode = array( $xc + $this->explode_radius[$i]*cos($la*M_PI/180)*$expscale,
-		              $yc - $this->explode_radius[$i]*sin($la*M_PI/180) * ($h/$d) *$expscale );
-	    $adjexplode[$idx] = $explode;
-	    $labeldata[$i] = array($la,$explode[0],$explode[1]);
-	    $originalangles[$i] = array($a,$a+$da);
-
-	    $ne = $this->NormAngle($a+$da);
-	    if( $da <= 180 ) {
-		// If the slice size is <= 90 it can at maximum cut across
-		// one boundary (either 90 or 270) where it needs to be split
-		$split=-1; // no split
-		if( ($da<=90 && ($a <= 90 && $ne > 90)) ||
-		    (($da <= 180 && $da >90)  && (($a < 90 || $a >= 270) && $ne > 90)) ) {
-		    $split = 90;
-		}
-		elseif( ($da<=90 && ($a <= 270 && $ne > 270)) ||
-		        (($da<=180 && $da>90) && ($a >= 90 && $a < 270 && ($a+$da) > 270 )) ) {
-		    $split = 270;
-		} 
-		if( $split > 0 ) { // split in two
-		    $angles[$idx] = array($a,$split);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		    $angles[++$idx] = array($split,$ne);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		}
-		else { // no split
-		    $angles[$idx] = array($a,$ne);
-		    $adjcolors[$idx] = $colors[$i  % $numcolors];
-		    $adjexplode[$idx] = $explode;	
-		}
-	    }
-	    else { 
-		// da>180
-		// Slice may, depending on position, cross one or two
-		// bonudaries
-
-		if( $a < 90 ) 
-		    $split = 90;
-		elseif( $a <= 270 )
-		    $split = 270;
-		else 
-		    $split = 90;
-
-		$angles[$idx] = array($a,$split);
-		$adjcolors[$idx] = $colors[$i % $numcolors];
-		$adjexplode[$idx] = $explode;
-		//if( $a+$da > 360-$split ) { 
-		// For slices larger than 270 degrees we might cross
-		// another boundary as well. This means that we must
-		// split the slice further. The comparison gets a little
-		// bit complicated since we must take into accound that
-		// a pie might have a startangle >0 and hence a slice might
-		// wrap around the 0 angle.
-		// Three cases:
-		//  a) Slice starts before 90 and hence gets a split=90, but 
-		//     we must also check if we need to split at 270
-		//  b) Slice starts after 90 but before 270 and slices
-		//     crosses 90 (after a wrap around of 0)
-		//  c) If start is > 270 (hence the firstr split is at 90)
-		//     and the slice is so large that it goes all the way
-		//     around 270.
-		if( ($a < 90 && ($a+$da > 270)) ||
-		    ($a > 90 && $a<=270 && ($a+$da>360+90) ) ||
-		    ($a > 270 && $this->NormAngle($a+$da)>270) ) { 
-		    $angles[++$idx] = array($split,360-$split);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		    $angles[++$idx] = array(360-$split,$ne);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		}	
-		else {
-		    // Just a simple split to the previous decided
-		    // angle.
-		    $angles[++$idx] = array($split,$ne);
-		    $adjcolors[$idx] = $colors[$i % $numcolors];
-		    $adjexplode[$idx] = $explode;
-		}
-	    }
-	    $a += $da;
-	    $a = $this->NormAngle($a);
-	}
-
-	// Total number of slices 
-	$n = count($angles);
-
-	for($i=0; $i<$n; ++$i) {
-	    list($dbgs,$dbge) = $angles[$i];
-	}
-
-	// 
-	// Step 2. Find start index (first pie that starts in upper left quadrant)
-	//
-	$minval = $angles[0][0];
-	$min = 0;
-	for( $i=0; $i<$n; ++$i ) {
-	    if( $angles[$i][0] < $minval ) {
-		$minval = $angles[$i][0];
-		$min = $i;
-	    }
-	}
-	$j = $min;
-	$cnt = 0;
-	while( $angles[$j][1] <= 90 ) {
-	    $j++;
-	    if( $j>=$n) {
-		$j=0;
-	    }
-	    if( $cnt > $n ) {
-		JpGraphError::RaiseL(14005);
-//("Pie3D Internal error (#1). Trying to wrap twice when looking for start index");
-	    }
-	    ++$cnt;
-	}
-	$start = $j;
-
-	// 
-	// Step 3. Print slices in z-order
-	//
-	$cnt = 0;
-	
-	// First stroke all the slices between 90 and 270 (left half circle)
-	// counterclockwise
-	    
-	while( $angles[$j][0] < 270  && $aaoption !== 2 ) {
-
-	    list($x,$y) = $adjexplode[$j];
-
-	    $this->Pie3DSlice($img,$x,$y,$d,$h,$angles[$j][0],$angles[$j][1],
-			      $z,$adjcolors[$j],$shadow);
-	
-	    $last = array($x,$y,$j);
-
-	    $j++;
-	    if( $j >= $n ) $j=0;
-	    if( $cnt > $n ) {
-		JpGraphError::RaiseL(14006);
-//("Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.");
-	    }
-	    ++$cnt;
-	}
-     
-	$slice_left = $n-$cnt;
-	$j=$start-1;
-	if($j<0) $j=$n-1;
-	$cnt = 0;
-	
-	// The stroke all slices from 90 to -90 (right half circle)
-	// clockwise
-	while( $cnt < $slice_left  && $aaoption !== 2 ) {
-
-	    list($x,$y) = $adjexplode[$j];
-
-	    $this->Pie3DSlice($img,$x,$y,$d,$h,$angles[$j][0],$angles[$j][1],
-			      $z,$adjcolors[$j],$shadow);
-	    $j--;
-	    if( $cnt > $n ) {
-		JpGraphError::RaiseL(14006);
-//("Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.");
-	    }
-	    if($j<0) $j=$n-1;
-	    $cnt++;
-	}
-	
-	// Now do a special thing. Stroke the last slice on the left
-	// halfcircle one more time.  This is needed in the case where 
-	// the slice close to 270 have been exploded. In that case the
-	// part of the slice close to the center of the pie might be 
-	// slightly nagged.
-	if( $aaoption !== 2 )
-	    $this->Pie3DSlice($img,$last[0],$last[1],$d,$h,$angles[$last[2]][0],
-			      $angles[$last[2]][1],$z,$adjcolors[$last[2]],$shadow);
-
-
-	if( $aaoption !== 1 ) {
-	    // Now print possible labels and add csim
-	    $img->SetFont($this->value->ff,$this->value->fs);
-	    $margin = $img->GetFontHeight()/2 + $this->value->margin ;
-	    for($i=0; $i < count($data); ++$i ) {
-		$la = $labeldata[$i][0];
-		$x = $labeldata[$i][1] + cos($la*M_PI/180)*($d+$margin)*$this->ilabelposadj;
-		$y = $labeldata[$i][2] - sin($la*M_PI/180)*($h+$margin)*$this->ilabelposadj;
-		if( $this->ilabelposadj >= 1.0 ) {
-		    if( $la > 180 && $la < 360 ) $y += $z;
-		}
-		if( $this->labeltype == 0 ) {
-		    if( $sum > 0 )
-			$l = 100*$data[$i]/$sum;
-		    else
-			$l = 0;
-		}
-		elseif( $this->labeltype == 1 ) {
-		    $l = $data[$i];
-		}
-		else {
-		    $l = $this->adjusted_data[$i];
-		}
-		if( isset($this->labels[$i]) && is_string($this->labels[$i]) )
-		    $l=sprintf($this->labels[$i],$l);
-
-		$this->StrokeLabels($l,$img,$labeldata[$i][0]*M_PI/180,$x,$y,$z);
-	    
-		$this->AddSliceToCSIM($i,$labeldata[$i][1],$labeldata[$i][2],$h*2,$d*2,$z,
-				      $originalangles[$i][0],$originalangles[$i][1]);
-	    }	
-	}
-
-	// 
-	// Finally add potential lines in pie
-	//
-
-	if( $edgecolor=="" || $aaoption !== 0 ) return;
-
-	$accsum = 0;
-	$a = $startangle;
-	$a = $this->NormAngle($a);
-
-	$a *= M_PI/180.0;
-
-	$idx=0;
-	$img->PushColor($edgecolor);
-	$img->SetLineWeight($edgeweight);
-	
-	$fulledge = true;
-	for($i=0; $i < count($data) && $fulledge; ++$i ) {
-	    if( empty($this->explode_radius[$i]) )
-		$this->explode_radius[$i]=0;
-	    if( $this->explode_radius[$i] > 0 ) {
-		$fulledge = false;
-	    }
-	}
-	    
-
-	for($i=0; $i < count($data); ++$i, ++$idx ) {
-
-	    $da = $data[$i]/$sum * 2*M_PI;
-	    $this->StrokeFullSliceFrame($img,$xc,$yc,$a,$a+$da,$d,$h,$z,$edgecolor,
-					$this->explode_radius[$i],$fulledge);
-	    $a += $da;
-	}
-	$img->PopColor();
-    }
-
-    function StrokeFullSliceFrame(&$img,$xc,$yc,$sa,$ea,$w,$h,$z,$edgecolor,$exploderadius,$fulledge) {
-	$step = 0.02;
-
-	if( $exploderadius > 0 ) {
-	    $la = ($sa+$ea)/2;
-	    $xc += $exploderadius*cos($la);
-	    $yc -= $exploderadius*sin($la) * ($h/$w) ;
-	    
-	}
-
-	$p = array($xc,$yc,$xc+$w*cos($sa),$yc-$h*sin($sa));
-
-	for($a=$sa; $a < $ea; $a += $step ) {
-	    $p[] = $xc + $w*cos($a);
-	    $p[] = $yc - $h*sin($a);
-	}
-
-	$p[] = $xc+$w*cos($ea);
-	$p[] = $yc-$h*sin($ea);
-	$p[] = $xc;
-	$p[] = $yc;
-
-	$img->SetColor($edgecolor);
-	$img->Polygon($p);
-
-	// Unfortunately we can't really draw the full edge around the whole of
-	// of the slice if any of the slices are exploded. The reason is that
-	// this algorithm is to simply. There are cases where the edges will
-	// "overwrite" other slices when they have been exploded.
-	// Doing the full, proper 3D hidden lines stiff is actually quite
-	// tricky. So for exploded pies we only draw the top edge. Not perfect
-	// but the "real" solution is much more complicated.
-	if( $fulledge && !( $sa > 0 && $sa < M_PI && $ea < M_PI) ) { 
-
-	    if($sa < M_PI && $ea > M_PI) 
-		$sa = M_PI;
- 
-	    if($sa < 2*M_PI && (($ea >= 2*M_PI) || ($ea > 0 && $ea < $sa ) ) )
-		$ea = 2*M_PI;
-
-	    if( $sa >= M_PI && $ea <= 2*M_PI ) {
-		$p = array($xc + $w*cos($sa),$yc - $h*sin($sa),
-			   $xc + $w*cos($sa),$z + $yc - $h*sin($sa));
-		
-		for($a=$sa+$step; $a < $ea; $a += $step ) {
-		    $p[] = $xc + $w*cos($a);
-		    $p[] = $z + $yc - $h*sin($a);
-		}
-		$p[] = $xc + $w*cos($ea);
-		$p[] = $z + $yc - $h*sin($ea);
-		$p[] = $xc + $w*cos($ea);
-		$p[] = $yc - $h*sin($ea);
-		$img->SetColor($edgecolor);
-		$img->Polygon($p);	    
-	    }
-	}
-    }
-
-    function Stroke(&$img,$aaoption=0) {
-	$n = count($this->data);
-
-	// If user hasn't set the colors use the theme array
-   	if( $this->setslicecolors==null ) {
-	    $colors = array_keys($img->rgb->rgb_table);
-	    sort($colors);	
-	    $idx_a=$this->themearr[$this->theme];	
-	    $ca = array();
-	    $m = count($idx_a);
-	    for($i=0; $i < $m; ++$i)
-		$ca[$i] = $colors[$idx_a[$i]];
-	    $ca = array_reverse(array_slice($ca,0,$n));
-	}
-   	else {
-	    $ca = $this->setslicecolors;
-	}
-	
-
-	if( $this->posx <= 1 && $this->posx > 0 )
-	    $xc = round($this->posx*$img->width);
-	else
-	    $xc = $this->posx ;
-	
-	if( $this->posy <= 1 && $this->posy > 0 )
-	    $yc = round($this->posy*$img->height);
-	else
-	    $yc = $this->posy ;
-   			
-	if( $this->radius <= 1 ) {
-	    $width = floor($this->radius*min($img->width,$img->height));
-	    // Make sure that the pie doesn't overflow the image border
-	    // The 0.9 factor is simply an extra margin to leave some space
-	    // between the pie an the border of the image.
-	    $width = min($width,min($xc*0.9,($yc*90/$this->angle-$width/4)*0.9));
-	}
-	else {
-	    $width = $this->radius * ($aaoption === 1 ? 2 : 1 ) ;
-	}
-
-	// Add a sanity check for width
-	if( $width < 1 ) { 
-	    JpGraphError::RaiseL(14007);//("Width for 3D Pie is 0. Specify a size > 0");
-	}
-
-	// Establish a thickness. By default the thickness is a fifth of the
-	// pie slice width (=pie radius) but since the perspective depends
-	// on the inclination angle we use some heuristics to make the edge
-	// slightly thicker the less the angle.
-	
-	// Has user specified an absolute thickness? In that case use
-	// that instead
-
-	if( $this->iThickness ) {
-	  $thick = $this->iThickness;
-	  $thick *= ($aaoption === 1 ? 2 : 1 );
-	}
-	else
-	  $thick = $width/12;
-	$a = $this->angle;
-	if( $a <= 30 ) $thick *= 1.6;
-	elseif( $a <= 40 ) $thick *= 1.4;
-	elseif( $a <= 50 ) $thick *= 1.2;
-	elseif( $a <= 60 ) $thick *= 1.0;
-	elseif( $a <= 70 ) $thick *= 0.8;
-	elseif( $a <= 80 ) $thick *= 0.7;
-	else $thick *= 0.6;
-
-	$thick = floor($thick);
-
-	if( $this->explode_all )
-	    for($i=0; $i < $n; ++$i)
-		$this->explode_radius[$i]=$this->explode_r;
-
-	$this->Pie3D($aaoption,$img,$this->data, $ca, $xc, $yc, $width, $this->angle, 
-	             $thick, 0.65, $this->startangle, $this->edgecolor, $this->edgeweight);
-
-	// Adjust title position
-	if( $aaoption != 1 ) {
-	    $this->title->Pos($xc,$yc-$this->title->GetFontHeight($img)-$width/2-$this->title->margin,			      "center","bottom");
-	    $this->title->Stroke($img);
-	}
-    }
-
-//---------------
-// PRIVATE METHODS	
-
-    // Position the labels of each slice
-    function StrokeLabels($label,&$img,$a,$xp,$yp,$z) {
-	$this->value->halign="left";
-	$this->value->valign="top";
-
-	// Position the axis title. 
-	// dx, dy is the offset from the top left corner of the bounding box that sorrounds the text
-	// that intersects with the extension of the corresponding axis. The code looks a little
-	// bit messy but this is really the only way of having a reasonable position of the
-	// axis titles.
-	$img->SetFont($this->value->ff,$this->value->fs,$this->value->fsize);
-	$h=$img->GetTextHeight($label);
-	// For numeric values the format of the display value
-	// must be taken into account
-	if( is_numeric($label) ) {
-	    if( $label >= 0 )
-		$w=$img->GetTextWidth(sprintf($this->value->format,$label));
-	    else
-		$w=$img->GetTextWidth(sprintf($this->value->negformat,$label));
-	}
-	else
-	    $w=$img->GetTextWidth($label);
-	while( $a > 2*M_PI ) $a -= 2*M_PI;
-	if( $a>=7*M_PI/4 || $a <= M_PI/4 ) $dx=0;
-	if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dx=($a-M_PI/4)*2/M_PI; 
-	if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dx=1;
-	if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dx=(1-($a-M_PI*5/4)*2/M_PI);
-		
-	if( $a>=7*M_PI/4 ) $dy=(($a-M_PI)-3*M_PI/4)*2/M_PI;
-	if( $a<=M_PI/4 ) $dy=(1-$a*2/M_PI);
-	if( $a>=M_PI/4 && $a <= 3*M_PI/4 ) $dy=1;
-	if( $a>=3*M_PI/4 && $a <= 5*M_PI/4 ) $dy=(1-($a-3*M_PI/4)*2/M_PI);
-	if( $a>=5*M_PI/4 && $a <= 7*M_PI/4 ) $dy=0;
-	
-	$x = round($xp-$dx*$w);
-	$y = round($yp-$dy*$h);
-
-	
-        // Mark anchor point for debugging 
-	/*
-	$img->SetColor('red');
-	$img->Line($xp-10,$yp,$xp+10,$yp);
-	$img->Line($xp,$yp-10,$xp,$yp+10);
-	*/
-	$oldmargin = $this->value->margin;
-	$this->value->margin=0;
-	$this->value->Stroke($img,$label,$x,$y);
-	$this->value->margin=$oldmargin;
-
-    }	
-} // Class
-
-/* EOF */
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_plotband.php b/nightly-test-server/jpgraph/jpgraph_plotband.php
deleted file mode 100644
index 5d636c0..0000000
--- a/nightly-test-server/jpgraph/jpgraph_plotband.php
+++ /dev/null
@@ -1,635 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_PLOTBAND.PHP
-// Description:	PHP4 Graph Plotting library. Extension module.
-// Created: 	2004-02-18
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-// Constants for types of static bands in plot area
-DEFINE("BAND_RDIAG",1);	// Right diagonal lines
-DEFINE("BAND_LDIAG",2); // Left diagonal lines
-DEFINE("BAND_SOLID",3); // Solid one color
-DEFINE("BAND_VLINE",4); // Vertical lines
-DEFINE("BAND_HLINE",5);  // Horizontal lines
-DEFINE("BAND_3DPLANE",6);  // "3D" Plane
-DEFINE("BAND_HVCROSS",7);  // Vertical/Hor crosses
-DEFINE("BAND_DIAGCROSS",8); // Diagonal crosses
-
-
-// Utility class to hold coordinates for a rectangle
-class Rectangle {
-    var $x,$y,$w,$h;
-    var $xe, $ye;
-    function Rectangle($aX,$aY,$aWidth,$aHeight) {
-	$this->x=$aX;
-	$this->y=$aY;
-	$this->w=$aWidth;
-	$this->h=$aHeight;
-	$this->xe=$aX+$aWidth-1;
-	$this->ye=$aY+$aHeight-1;
-    }
-}
-
-//=====================================================================
-// Class RectPattern
-// Base class for pattern hierarchi that is used to display patterned
-// bands on the graph. Any subclass that doesn't override Stroke()
-// must at least implement method DoPattern(&$aImg) which is responsible
-// for drawing the pattern onto the graph.
-//=====================================================================
-class RectPattern {
-    var $color;
-    var $weight;
-    var $rect=null;
-    var $doframe=true;
-    var $linespacing;	// Line spacing in pixels
-    var $iBackgroundColor=-1;  // Default is no background fill
-	
-    function RectPattern($aColor,$aWeight=1) {
-	$this->color = $aColor;
-	$this->weight = $aWeight;		
-    }
-
-    function SetBackground($aBackgroundColor) {
-	$this->iBackgroundColor=$aBackgroundColor;
-    }
-
-    function SetPos(&$aRect) {
-	$this->rect = $aRect;
-    }
-	
-    function ShowFrame($aShow=true) {
-	$this->doframe=$aShow;
-    }
-
-    function SetDensity($aDens) {
-	if( $aDens < 1 || $aDens > 100 )
-	    JpGraphError::RaiseL(16001,$aDens);
-//(" Desity for pattern must be between 1 and 100. (You tried $aDens)");
-	// 1% corresponds to linespacing=50
-	// 100 % corresponds to linespacing 1
-	$this->linespacing = floor(((100-$aDens)/100.0)*50)+1;
-
-    }
-
-    function Stroke(&$aImg) {
-	if( $this->rect == null )
-	    JpGraphError::RaiseL(16002);
-//(" No positions specified for pattern.");
-
-	if( !(is_numeric($this->iBackgroundColor) && $this->iBackgroundColor==-1) ) {
-	    $aImg->SetColor($this->iBackgroundColor);
-	    $aImg->FilledRectangle($this->rect->x,$this->rect->y,$this->rect->xe,$this->rect->ye); 
-	}
-
-	$aImg->SetColor($this->color);
-	$aImg->SetLineWeight($this->weight);
-
-	// Virtual function implemented by subclass
-	$this->DoPattern($aImg);
-
-	// Frame around the pattern area
-	if( $this->doframe ) 
-	    $aImg->Rectangle($this->rect->x,$this->rect->y,$this->rect->xe,$this->rect->ye);
-    }
-
-}
-
-
-//=====================================================================
-// Class RectPatternSolid
-// Implements a solid band
-//=====================================================================
-class RectPatternSolid extends RectPattern {
-
-    function RectPatternSolid($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-    }
-
-    function DoPattern(&$aImg) {
-	$aImg->SetColor($this->color);
-	$aImg->FilledRectangle($this->rect->x,$this->rect->y,
-			       $this->rect->xe,$this->rect->ye);
-    }
-}
-
-//=====================================================================
-// Class RectPatternHor
-// Implements horizontal line pattern
-//=====================================================================
-class RectPatternHor extends RectPattern {
-		
-    function RectPatternHor($aColor="black",$aWeight=1,$aLineSpacing=7) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->linespacing = $aLineSpacing;
-    }
-		
-    function DoPattern(&$aImg) {
-	$x0 = $this->rect->x;		
-	$x1 = $this->rect->xe;
-	$y = $this->rect->y;
-	while( $y < $this->rect->ye ) {
-	    $aImg->Line($x0,$y,$x1,$y);
-	    $y += $this->linespacing;
-	}
-    }
-}
-
-//=====================================================================
-// Class RectPatternVert
-// Implements vertical line pattern
-//=====================================================================
-class RectPatternVert extends RectPattern {
-    var $linespacing=10;	// Line spacing in pixels
-		
-    function RectPatternVert($aColor="black",$aWeight=1,$aLineSpacing=7) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->linespacing = $aLineSpacing;
-    }
-
-    //--------------------
-    // Private methods
-    //
-    function DoPattern(&$aImg) {
-	$x = $this->rect->x;		
-	$y0 = $this->rect->y;
-	$y1 = $this->rect->ye;
-	while( $x < $this->rect->xe ) {
-	    $aImg->Line($x,$y0,$x,$y1);
-	    $x += $this->linespacing;
-	}
-    }
-}
-
-
-//=====================================================================
-// Class RectPatternRDiag
-// Implements right diagonal pattern
-//=====================================================================
-class RectPatternRDiag extends RectPattern {
-    var $linespacing;	// Line spacing in pixels
-		
-    function RectPatternRDiag($aColor="black",$aWeight=1,$aLineSpacing=12) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->linespacing = $aLineSpacing;
-    }
-
-    function DoPattern(&$aImg) {
-	//  --------------------
-	//  | /   /   /   /   /|
-	//  |/   /   /   /   / |
-	//  |   /   /   /   /  |
-	//  --------------------
-	$xe = $this->rect->xe;
-	$ye = $this->rect->ye;
-	$x0 = $this->rect->x + round($this->linespacing/2); 
-	$y0 = $this->rect->y;
-	$x1 = $this->rect->x; 
-	$y1 = $this->rect->y + round($this->linespacing/2);
-
-	while($x0<=$xe && $y1<=$ye) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $x0 += $this->linespacing;
-	    $y1 += $this->linespacing;
-	}
-
-	if( $xe-$x1 > $ye-$y0 ) { 
-	    // Width larger than height
-	    $x1 = $this->rect->x + ($y1-$ye);
-	    $y1 = $ye; 
-	    $y0 = $this->rect->y; 
-	    while( $x0 <= $xe ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$x0 += $this->linespacing;
-		$x1 += $this->linespacing;
-	    }
-	    
-	    $y0=$this->rect->y + ($x0-$xe);
-	    $x0=$xe;
-	}
-	else {
-	    // Height larger than width
-	    $diff = $x0-$xe;
-	    $y0 = $diff+$this->rect->y;
-	    $x0 = $xe;
-	    $x1 = $this->rect->x;
-	    while( $y1 <= $ye ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$y1 += $this->linespacing;
-		$y0 += $this->linespacing;
-	    }
-	    
-	    $diff = $y1-$ye;
-	    $y1 = $ye;
-	    $x1 = $diff + $this->rect->x;
-	}
-
-	while( $y0 <= $ye ) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $y0 += $this->linespacing;		
-	    $x1 += $this->linespacing;
-	}
-    }
-}
- 
-//=====================================================================
-// Class RectPatternLDiag
-// Implements left diagonal pattern
-//=====================================================================
-class RectPatternLDiag extends RectPattern {
-    var $linespacing;	// Line spacing in pixels
-		
-    function RectPatternLDiag($aColor="black",$aWeight=1,$aLineSpacing=12) {
-	$this->linespacing = $aLineSpacing;
-	parent::RectPattern($aColor,$aWeight);
-    }
-
-    function DoPattern(&$aImg) {
-	//  --------------------
-	//  |\   \   \   \   \ |
-	//  | \   \   \   \   \|
-	//  |  \   \   \   \   |
-	//  |------------------|
-	$xe = $this->rect->xe;
-	$ye = $this->rect->ye;
-	$x0 = $this->rect->x + round($this->linespacing/2); 
-	$y0 = $this->rect->ye;
-	$x1 = $this->rect->x; 
-	$y1 = $this->rect->ye - round($this->linespacing/2);
-
-	while($x0<=$xe && $y1>=$this->rect->y) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $x0 += $this->linespacing;
-	    $y1 -= $this->linespacing;
-	}
-	if( $xe-$x1 > $ye-$this->rect->y ) { 
-	    // Width larger than height
-	    $x1 = $this->rect->x + ($this->rect->y-$y1);
-	    $y0=$ye; $y1=$this->rect->y; 
-	    while( $x0 <= $xe ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$x0 += $this->linespacing;
-		$x1 += $this->linespacing;
-	    }
-	    
-	    $y0=$this->rect->ye - ($x0-$xe);
-	    $x0=$xe;
-	}
-	else {
-	    // Height larger than width
-	    $diff = $x0-$xe;
-	    $y0 = $ye-$diff;
-	    $x0 = $xe;
-	    while( $y1 >= $this->rect->y ) {
-		$aImg->Line($x0,$y0,$x1,$y1);
-		$y0 -= $this->linespacing;
-		$y1 -= $this->linespacing;
-	    }	    
-	    $diff = $this->rect->y - $y1;
-	    $x1 = $this->rect->x + $diff;
-	    $y1 = $this->rect->y;
-	}
-	while( $y0 >= $this->rect->y ) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $y0 -= $this->linespacing;
-	    $x1 += $this->linespacing;
-	}
-    }
-}
-
-//=====================================================================
-// Class RectPattern3DPlane
-// Implements "3D" plane pattern
-//=====================================================================
-class RectPattern3DPlane extends RectPattern {
-    var $alpha=50;  // Parameter that specifies the distance
-    // to "simulated" horizon in pixel from the
-    // top of the band. Specifies how fast the lines
-    // converge.
-
-    function RectPattern3DPlane($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->SetDensity(10);  // Slightly larger default
-    }
-
-    function SetHorizon($aHorizon) {
-	$this->alpha=$aHorizon;
-    }
-	
-    function DoPattern(&$aImg) {
-	// "Fake" a nice 3D grid-effect. 
-	$x0 = $this->rect->x + $this->rect->w/2;
-	$y0 = $this->rect->y;
-	$x1 = $x0;
-	$y1 = $this->rect->ye;
-	$x0_right = $x0;
-	$x1_right = $x1;
-
-	// BTW "apa" means monkey in Swedish but is really a shortform for
-	// "alpha+a" which was the labels I used on paper when I derived the
-	// geometric to get the 3D perspective right. 
-	// $apa is the height of the bounding rectangle plus the distance to the
-	// artifical horizon (alpha)
-	$apa = $this->rect->h + $this->alpha;
-
-	// Three cases and three loops
-	// 1) The endpoint of the line ends on the bottom line
-	// 2) The endpoint ends on the side
-	// 3) Horizontal lines
-
-	// Endpoint falls on bottom line
-	$middle=$this->rect->x + $this->rect->w/2;
-	$dist=$this->linespacing;
-	$factor=$this->alpha /($apa);
-	while($x1>$this->rect->x) {
-	    $aImg->Line($x0,$y0,$x1,$y1);
-	    $aImg->Line($x0_right,$y0,$x1_right,$y1);
-	    $x1 = $middle - $dist;
-	    $x0 = $middle - $dist * $factor;
-	    $x1_right = $middle + $dist;
-	    $x0_right =  $middle + $dist * $factor;
-	    $dist += $this->linespacing;
-	}
-
-	// Endpoint falls on sides
-	$dist -= $this->linespacing;
-	$d=$this->rect->w/2;
-	$c = $apa - $d*$apa/$dist;
-	while( $x0>$this->rect->x ) {
-	    $aImg->Line($x0,$y0,$this->rect->x,$this->rect->ye-$c);
-	    $aImg->Line($x0_right,$y0,$this->rect->xe,$this->rect->ye-$c);
-	    $dist += $this->linespacing;			
-	    $x0 = $middle - $dist * $factor;
-	    $x1 = $middle - $dist;
-	    $x0_right =  $middle + $dist * $factor;			
-	    $c = $apa - $d*$apa/$dist;
-	}		
-		
-	// Horizontal lines
-	// They need some serious consideration since they are a function
-	// of perspective depth (alpha) and density (linespacing)
-	$x0=$this->rect->x;
-	$x1=$this->rect->xe;
-	$y=$this->rect->ye;
-		
-	// The first line is drawn directly. Makes the loop below slightly
-	// more readable.
-	$aImg->Line($x0,$y,$x1,$y);
-	$hls = $this->linespacing;
-		
-	// A correction factor for vertical "brick" line spacing to account for
-	// a) the difference in number of pixels hor vs vert
-	// b) visual apperance to make the first layer of "bricks" look more
-	// square.
-	$vls = $this->linespacing*0.6;
-		
-	$ds = $hls*($apa-$vls)/$apa;
-	// Get the slope for the "perspective line" going from bottom right
-	// corner to top left corner of the "first" brick.
-		
-	// Uncomment the following lines if you want to get a visual understanding
-	// of what this helpline does. BTW this mimics the way you would get the
-	// perspective right when drawing on paper.
-	/*
-	  $x0 = $middle;
-	  $y0 = $this->rect->ye;
-	  $len=floor(($this->rect->ye-$this->rect->y)/$vls);
-	  $x1 = $middle+round($len*$ds);
-	  $y1 = $this->rect->ye-$len*$vls;
-	  $aImg->PushColor("red");
-	  $aImg->Line($x0,$y0,$x1,$y1);
-	  $aImg->PopColor();
-	*/
-		
-	$y -= $vls;		
-	$k=($this->rect->ye-($this->rect->ye-$vls))/($middle-($middle-$ds));
-	$dist = $hls;
-	while( $y>$this->rect->y ) {
-	    $aImg->Line($this->rect->x,$y,$this->rect->xe,$y);
-	    $adj = $k*$dist/(1+$dist*$k/$apa);
-	    if( $adj < 2 ) $adj=1;
-	    $y = $this->rect->ye - round($adj);
-	    $dist += $hls;
-	}
-    }
-}
-
-//=====================================================================
-// Class RectPatternCross
-// Vert/Hor crosses
-//=====================================================================
-class RectPatternCross extends RectPattern {
-    var $vert=null;
-    var $hor=null;
-    function RectPatternCross($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->vert = new RectPatternVert($aColor,$aWeight);
-	$this->hor  = new RectPatternHor($aColor,$aWeight);
-    }
-
-    function SetOrder($aDepth) {
-	$this->vert->SetOrder($aDepth);
-	$this->hor->SetOrder($aDepth);
-    }
-
-    function SetPos(&$aRect) {
-	parent::SetPos($aRect);
-	$this->vert->SetPos($aRect);
-	$this->hor->SetPos($aRect);
-    }
-
-    function SetDensity($aDens) {
-	$this->vert->SetDensity($aDens);
-	$this->hor->SetDensity($aDens);
-    }
-
-    function DoPattern(&$aImg) {
-	$this->vert->DoPattern($aImg);
-	$this->hor->DoPattern($aImg);
-    }
-}
-
-//=====================================================================
-// Class RectPatternDiagCross
-// Vert/Hor crosses
-//=====================================================================
-
-class RectPatternDiagCross extends RectPattern {
-    var $left=null;
-    var $right=null;
-    function RectPatternDiagCross($aColor="black",$aWeight=1) {
-	parent::RectPattern($aColor,$aWeight);
-	$this->right = new RectPatternRDiag($aColor,$aWeight);
-	$this->left  = new RectPatternLDiag($aColor,$aWeight);
-    }
-
-    function SetOrder($aDepth) {
-	$this->left->SetOrder($aDepth);
-	$this->right->SetOrder($aDepth);
-    }
-
-    function SetPos(&$aRect) {
-	parent::SetPos($aRect);
-	$this->left->SetPos($aRect);
-	$this->right->SetPos($aRect);
-    }
-
-    function SetDensity($aDens) {
-	$this->left->SetDensity($aDens);
-	$this->right->SetDensity($aDens);
-    }
-
-    function DoPattern(&$aImg) {
-	$this->left->DoPattern($aImg);
-	$this->right->DoPattern($aImg);
-    }
-
-}
-
-//=====================================================================
-// Class RectPatternFactory
-// Factory class for rectangular pattern 
-//=====================================================================
-class RectPatternFactory {
-    function RectPatternFactory() {
-	// Empty
-    }
-    function Create($aPattern,$aColor,$aWeight=1) {
-	switch($aPattern) {
-	    case BAND_RDIAG:
-		$obj =  new RectPatternRDiag($aColor,$aWeight);
-		break;
-	    case BAND_LDIAG:
-		$obj =  new RectPatternLDiag($aColor,$aWeight);
-		break;
-	    case BAND_SOLID:
-		$obj =  new RectPatternSolid($aColor,$aWeight);
-		break;
-	    case BAND_VLINE:
-		$obj =  new RectPatternVert($aColor,$aWeight);
-		break;
-	    case BAND_HLINE:
-		$obj =  new RectPatternHor($aColor,$aWeight);
-		break;
-	    case BAND_3DPLANE:
-		$obj =  new RectPattern3DPlane($aColor,$aWeight);
-		break;
-	    case BAND_HVCROSS:
-		$obj =  new RectPatternCross($aColor,$aWeight);
-		break;
-	    case BAND_DIAGCROSS:
-		$obj =  new RectPatternDiagCross($aColor,$aWeight);
-		break;
-	    default:
-		JpGraphError::RaiseL(16003,$aPattern);
-//(" Unknown pattern specification ($aPattern)");
-	}
-	return $obj;
-    }
-}
-
-
-//=====================================================================
-// Class PlotBand
-// Factory class which is used by the client.
-// It is responsible for factoring the corresponding pattern
-// concrete class.
-//=====================================================================
-class PlotBand {
-    var $prect=null;
-    var $depth;
-    var $dir, $min, $max;
-
-    function PlotBand($aDir,$aPattern,$aMin,$aMax,$aColor="black",$aWeight=1,$aDepth=DEPTH_BACK) {
-	$f =  new RectPatternFactory();
-	$this->prect = $f->Create($aPattern,$aColor,$aWeight);
-	if( is_numeric($aMin) && is_numeric($aMax) && ($aMin > $aMax) ) 
-	    JpGraphError::RaiseL(16004);
-//('Min value for plotband is larger than specified max value. Please correct.');
-	$this->dir = $aDir;
-	$this->min = $aMin;
-	$this->max = $aMax;
-	$this->depth=$aDepth;
-    }
-	
-    // Set position. aRect contains absolute image coordinates
-    function SetPos(&$aRect) {
-	assert( $this->prect != null ) ;
-	$this->prect->SetPos($aRect);
-    }
-	
-    function ShowFrame($aFlag=true) {
-	$this->prect->ShowFrame($aFlag);
-    }
-
-    // Set z-order. In front of pplot or in the back
-    function SetOrder($aDepth) {
-	$this->depth=$aDepth;
-    }
-	
-    function SetDensity($aDens) {
-	$this->prect->SetDensity($aDens);
-    }
-	
-    function GetDir() {
-	return $this->dir;
-    }
-	
-    function GetMin() {
-	return $this->min;
-    }
-	
-    function GetMax() {
-	return $this->max;
-    }
-	
-    // Display band
-    function Stroke(&$aImg,&$aXScale,&$aYScale) {
-	assert( $this->prect != null ) ;
-	if( $this->dir == HORIZONTAL ) {
-	    if( $this->min === 'min' ) $this->min = $aYScale->GetMinVal();
-	    if( $this->max === 'max' ) $this->max = $aYScale->GetMaxVal();
-
-            // Only draw the bar if it actually appears in the range
-            if ($this->min < $aYScale->GetMaxVal() && $this->max > $aYScale->GetMinVal()) {
-	    
-	    // Trucate to limit of axis
-	    $this->min = max($this->min, $aYScale->GetMinVal());
-	    $this->max = min($this->max, $aYScale->GetMaxVal());
-
-	    $x=$aXScale->scale_abs[0];
-	    $y=$aYScale->Translate($this->max);
-	    $width=$aXScale->scale_abs[1]-$aXScale->scale_abs[0]+1;
-	    $height=abs($y-$aYScale->Translate($this->min))+1;
-	    $this->prect->SetPos(new Rectangle($x,$y,$width,$height));
-	    $this->prect->Stroke($aImg);
-            }
-	}
-	else {	// VERTICAL
-	    if( $this->min === 'min' ) $this->min = $aXScale->GetMinVal();
-	    if( $this->max === 'max' ) $this->max = $aXScale->GetMaxVal();
-            
-            // Only draw the bar if it actually appears in the range
-	    if ($this->min < $aXScale->GetMaxVal() && $this->max > $aXScale->GetMinVal()) {
-	    
-	    // Trucate to limit of axis
-	    $this->min = max($this->min, $aXScale->GetMinVal());
-	    $this->max = min($this->max, $aXScale->GetMaxVal());
-
-	    $y=$aYScale->scale_abs[1];
-	    $x=$aXScale->Translate($this->min);
-	    $height=abs($aYScale->scale_abs[1]-$aYScale->scale_abs[0]);
-	    $width=abs($x-$aXScale->Translate($this->max));
-	    $this->prect->SetPos(new Rectangle($x,$y,$width,$height));
-	    $this->prect->Stroke($aImg);
-            }
-	}
-    }
-}
-
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_plotmark.inc b/nightly-test-server/jpgraph/jpgraph_plotmark.inc
deleted file mode 100644
index 05ef35f..0000000
--- a/nightly-test-server/jpgraph/jpgraph_plotmark.inc
+++ /dev/null
@@ -1,482 +0,0 @@
-<?php
-//=======================================================================
-// File:	JPGRAPH_PLOTMARK.PHP
-// Description:	Class file. Handles plotmarks
-// Created: 	2003-03-21
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-
-
-//========================================================================
-// CLASS ImgData
-// Description: Base class for all image data classes that contains the 
-// real image data.
-//========================================================================
-class ImgData {
-    var $name = '';		// Each subclass gives a name
-    var $an = array();		// Data array names
-    var $colors = array();	// Available colors
-    var $index  = array();	// Index for colors
-    var $maxidx = 0 ;		// Max color index
-    var $anchor_x=0.5, $anchor_y=0.5 ;    // Where is the center of the image
-    // Create a GD image from the data and return a GD handle
-    function GetImg($aMark,$aIdx) {
-	$n = $this->an[$aMark];
-	if( is_string($aIdx) ) {
-	    if( !in_array($aIdx,$this->colors) ) {
-		JpGraphError::RaiseL(23001,$this->name,$aIdx); //('This marker "'.($this->name).'" does not exist in color: '.$aIdx);
-	    }
-	    $idx = $this->index[$aIdx];
-	}
-	elseif( !is_integer($aIdx) || 
-		(is_integer($aIdx) && $aIdx > $this->maxidx ) ) {
-	    JpGraphError::RaiseL(23002,$this->name);
-//('Mark color index too large for marker "'.($this->name).'"');
-	}
-	else
-	    $idx = $aIdx ;
-	return Image::CreateFromString(base64_decode($this->{$n}[$idx][1]));   
-    }
-    function GetAnchor() {
-	return array($this->anchor_x,$this->anchor_y);
-    }
-}
-
-
-// Keep a global flag cache to reduce memory usage
-$_gFlagCache=array(
-    1 => null,
-    2 => null,
-    3 => null,
-    4 => null,
-);
-// Only supposed to b called as statics
-class FlagCache {
-    function GetFlagImgByName($aSize,$aName) {
-	global $_gFlagCache;
-	require_once('jpgraph_flags.php');
-	if( $_gFlagCache[$aSize] === null ) {
-	    $_gFlagCache[$aSize] =& new FlagImages($aSize);
-	}
-	$f =& $_gFlagCache[$aSize];
-	$idx = $f->GetIdxByName($aName,$aFullName);
-	return $f->GetImgByIdx($idx);
-    }
-}
-
-//===================================================
-// CLASS PlotMark
-// Description: Handles the plot marks in graphs
-//===================================================
-class PlotMark {
-    var $title, $show=true;
-    var $type,$weight=1;
-    var $color="black", $width=4, $fill_color="blue";
-    var $yvalue,$xvalue='',$csimtarget,$csimalt,$csimareas;
-    var $iFormatCallback="";
-    var $iFormatCallback2="";
-    var $markimg='',$iScale=1.0;
-    var $oldfilename='',$iFileName='';
-    var $imgdata_balls = null;
-    var $imgdata_diamonds = null;
-    var $imgdata_squares = null;
-    var $imgdata_bevels = null;
-    var $imgdata_stars = null;
-    var $imgdata_pushpins = null;
-
-//--------------
-// CONSTRUCTOR
-    function PlotMark() {
-	$this->title = new Text();
-	$this->title->Hide();
-	$this->csimareas = '';
-	$this->csimalt = '';
-	$this->type=-1;
-    }
-//---------------
-// PUBLIC METHODS	
-    function SetType($aType,$aFileName='',$aScale=1.0) {
-	$this->type = $aType;
-	if( $aType == MARK_IMG && $aFileName=='' ) {
-	    JpGraphError::RaiseL(23003);//('A filename must be specified if you set the mark type to MARK_IMG.');
-	}
-	$this->iFileName = $aFileName;
-	$this->iScale = $aScale;
-    }
-	
-    function SetCallback($aFunc) {
-	$this->iFormatCallback = $aFunc;
-    }
-
-    function SetCallbackYX($aFunc) {
-	$this->iFormatCallback2 = $aFunc;
-    }
-    
-    function GetType() {
-	return $this->type;
-    }
-	
-    function SetColor($aColor) {
-	$this->color=$aColor;
-    }
-	
-    function SetFillColor($aFillColor) {
-	$this->fill_color = $aFillColor;
-    }
-
-    function SetWeight($aWeight) {
-	$this->weight = $aWeight;
-    }
-
-    // Synonym for SetWidth()
-    function SetSize($aWidth) {
-	$this->width=$aWidth;
-    }
-	
-    function SetWidth($aWidth) {
-	$this->width=$aWidth;
-    }
-
-    function SetDefaultWidth() {
-	switch( $this->type ) {
-	    case MARK_CIRCLE: 
-	    case MARK_FILLEDCIRCLE: 
-		$this->width=4;
-		break;
-	    default:
-		$this->width=7;
-	}
-    }
-	
-    function GetWidth() {
-	return $this->width;
-    }
-	
-    function Hide($aHide=true) {
-	$this->show = !$aHide;
-    }
-	
-    function Show($aShow=true) {
-	$this->show = $aShow;
-    }
-
-    function SetCSIMAltVal($aY,$aX='') {
-        $this->yvalue=$aY; 
-        $this->xvalue=$aX; 
-    }
-    
-    function SetCSIMTarget($aTarget) {
-        $this->csimtarget=$aTarget;
-    }
-    
-    function SetCSIMAlt($aAlt) {
-        $this->csimalt=$aAlt;
-    }
-    
-    function GetCSIMAreas(){
-        return $this->csimareas;
-    }
-        
-    function AddCSIMPoly($aPts) {
-        $coords = round($aPts[0]).", ".round($aPts[1]);
-        $n = count($aPts)/2;
-        for( $i=1; $i < $n; ++$i){
-            $coords .= ", ".round($aPts[2*$i]).", ".round($aPts[2*$i+1]);
-        }
-        $this->csimareas="";    
-        if( !empty($this->csimtarget) ) {
-	    $this->csimareas .= "<area shape=\"poly\" coords=\"$coords\" href=\"".htmlentities($this->csimtarget)."\"";
-	    if( !empty($this->csimalt) ) {										
-		$tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-	    $this->csimareas .= " alt=\"$tmp\" />\n";
-	}
-    }
-    
-    function AddCSIMCircle($x,$y,$r) {
-    	$x = round($x); $y=round($y); $r=round($r);
-        $this->csimareas="";    
-        if( !empty($this->csimtarget) ) {
-	    $this->csimareas .= "<area shape=\"circle\" coords=\"$x,$y,$r\" href=\"".htmlentities($this->csimtarget)."\"";
-    	    if( !empty($this->csimalt) ) {										
-		$tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue);
-		$this->csimareas .= " title=\"$tmp\"";
-	    }
-            $this->csimareas .= " alt=\"$tmp\" />\n";        
-        }
-    }
-    	
-    function Stroke(&$img,$x,$y) {
-	if( !$this->show ) return;
-
-	if( $this->iFormatCallback != '' || $this->iFormatCallback2 != '' ) {
-
-	    if( $this->iFormatCallback != '' ) {
-		$f = $this->iFormatCallback;
-		list($width,$color,$fcolor) = call_user_func($f,$this->yvalue);
-		$filename = $this->iFileName;
-		$imgscale = $this->iScale;
-	    }
-	    else {
-		$f = $this->iFormatCallback2;
-		list($width,$color,$fcolor,$filename,$imgscale) = call_user_func($f,$this->yvalue,$this->xvalue);
-		if( $filename=="" ) $filename = $this->iFileName;
-		if( $imgscale=="" ) $imgscale = $this->iScale;
-	    }
-
-	    if( $width=="" ) $width = $this->width;
-	    if( $color=="" ) $color = $this->color;
-	    if( $fcolor=="" ) $fcolor = $this->fill_color;
-
-	}
-	else {
-	    $fcolor = $this->fill_color;
-	    $color = $this->color;
-	    $width = $this->width;
-	    $filename = $this->iFileName;
-	    $imgscale = $this->iScale;
-	}
-
-	if( $this->type == MARK_IMG ||
-	    ($this->type >= MARK_FLAG1 && $this->type <= MARK_FLAG4 ) ||
-	    $this->type >= MARK_IMG_PUSHPIN ) {
-
-	    // Note: For the builtin images we use the "filename" parameter
-	    // to denote the color
-	    $anchor_x = 0.5;
-	    $anchor_y = 0.5; 
-	    switch( $this->type ) {
-		case MARK_FLAG1:
-		case MARK_FLAG2:
-		case MARK_FLAG3:
-		case MARK_FLAG4:
-		    $this->markimg = FlagCache::GetFlagImgByName($this->type-MARK_FLAG1+1,$filename);
-		    break;
-
-		case MARK_IMG :
-		    // Load an image and use that as a marker
-		    // Small optimization, if we have already read an image don't
-		    // waste time reading it again.
-		    if( $this->markimg == '' || !($this->oldfilename === $filename) ) {
-			$this->markimg = Graph::LoadBkgImage('',$filename);
-			$this->oldfilename = $filename ;
-		    }
-		    break;
-
-		case MARK_IMG_PUSHPIN:
-		case MARK_IMG_SPUSHPIN:
-		case MARK_IMG_LPUSHPIN:
-		    if( $this->imgdata_pushpins == null ) {
-			require_once 'imgdata_pushpins.inc';
-			$this->imgdata_pushpins = new ImgData_PushPins();
-		    }
-		    $this->markimg = $this->imgdata_pushpins->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_pushpins->GetAnchor();
-		    break;
-
-		case MARK_IMG_SQUARE:
-		    if( $this->imgdata_squares == null ) {
-			require_once 'imgdata_squares.inc';
-			$this->imgdata_squares = new ImgData_Squares();
-		    }
-		    $this->markimg = $this->imgdata_squares->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_squares->GetAnchor();
-		    break;
-
-		case MARK_IMG_STAR:
-		    if( $this->imgdata_stars == null ) {
-			require_once 'imgdata_stars.inc';
-			$this->imgdata_stars = new ImgData_Stars();
-		    }
-		    $this->markimg = $this->imgdata_stars->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_stars->GetAnchor();
-		    break;
-
-		case MARK_IMG_BEVEL:
-		    if( $this->imgdata_bevels == null ) {
-			require_once 'imgdata_bevels.inc';
-			$this->imgdata_bevels = new ImgData_Bevels();
-		    }
-		    $this->markimg = $this->imgdata_bevels->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_bevels->GetAnchor();
-		    break;
-
-		case MARK_IMG_DIAMOND:
-		    if( $this->imgdata_diamonds == null ) {
-			require_once 'imgdata_diamonds.inc';
-			$this->imgdata_diamonds = new ImgData_Diamonds();
-		    }
-		    $this->markimg = $this->imgdata_diamonds->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_diamonds->GetAnchor();
-		    break;
-
-		case MARK_IMG_BALL:		    
-		case MARK_IMG_SBALL:		    
-		case MARK_IMG_MBALL:		    
-		case MARK_IMG_LBALL:		    
-		    if( $this->imgdata_balls == null ) {
-			require_once 'imgdata_balls.inc';
-			$this->imgdata_balls = new ImgData_Balls();
-		    }
-		    $this->markimg = $this->imgdata_balls->GetImg($this->type,$filename);
-		    list($anchor_x,$anchor_y) = $this->imgdata_balls->GetAnchor();
-		    break;
-	    }
-
-	    $w = $img->GetWidth($this->markimg);
-	    $h = $img->GetHeight($this->markimg);
-	    
-	    $dw = round($imgscale * $w );
-	    $dh = round($imgscale * $h );
-
-	    // Do potential rotation
-	    list($x,$y) = $img->Rotate($x,$y);
-
-	    $dx = round($x-$dw*$anchor_x);
-	    $dy = round($y-$dh*$anchor_y);
-	    
-	    $this->width = max($dx,$dy);
-	    
-	    $img->Copy($this->markimg,$dx,$dy,0,0,$dw,$dh,$w,$h);
-	    if( !empty($this->csimtarget) ) {
-		$this->csimareas = "<area shape=\"rect\" coords=\"".
-		    $dx.','.$dy.','.round($dx+$dw).','.round($dy+$dh).'" '.
-		    "href=\"".htmlentities($this->csimtarget)."\"";
-		if( !empty($this->csimalt) ) {
-		    $tmp=sprintf($this->csimalt,$this->yvalue,$this->xvalue);
-		    $this->csimareas .= " title=\"$tmp\"";
-		}
-		$this->csimareas .= " alt=\"$tmp\" />\n";
-	    }
-	    
-	    // Stroke title
-	    $this->title->Align("center","top");
-	    $this->title->Stroke($img,$x,$y+round($dh/2));			
-	    return;
-	}
-
-	$weight = $this->weight;
-	$dx=round($width/2,0);
-	$dy=round($width/2,0);
-	$pts=0;		
-
-	switch( $this->type ) {
-	    case MARK_SQUARE:
-		$c[]=$x-$dx;$c[]=$y-$dy;
-		$c[]=$x+$dx;$c[]=$y-$dy;
-		$c[]=$x+$dx;$c[]=$y+$dy;
-		$c[]=$x-$dx;$c[]=$y+$dy;
-		$c[]=$x-$dx;$c[]=$y-$dy;
-		$pts=5;
-		break;
-	    case MARK_UTRIANGLE:
-		++$dx;++$dy;
-		$c[]=$x-$dx;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$c[]=$x;$c[]=$y-0.87*$dy;
-		$c[]=$x+$dx;$c[]=$y+0.87*$dy;
-		$c[]=$x-$dx;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$pts=4;
-		break;
-	    case MARK_DTRIANGLE:
-		++$dx;++$dy;			
-		$c[]=$x;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$c[]=$x-$dx;$c[]=$y-0.87*$dy;
-		$c[]=$x+$dx;$c[]=$y-0.87*$dy;
-		$c[]=$x;$c[]=$y+0.87*$dy;	// tan(60)/2*$dx
-		$pts=4;
-		break;				
-	    case MARK_DIAMOND:
-		$c[]=$x;$c[]=$y+$dy;
-		$c[]=$x-$dx;$c[]=$y;
-		$c[]=$x;$c[]=$y-$dy;
-		$c[]=$x+$dx;$c[]=$y;
-		$c[]=$x;$c[]=$y+$dy;
-		$pts=5;
-		break;	
-	    case MARK_LEFTTRIANGLE:
-		$c[]=$x;$c[]=$y;
-		$c[]=$x;$c[]=$y+2*$dy;
-		$c[]=$x+$dx*2;$c[]=$y;
-		$c[]=$x;$c[]=$y;
-		$pts=4;
-		break;
-	    case MARK_RIGHTTRIANGLE:
-		$c[]=$x-$dx*2;$c[]=$y;
-		$c[]=$x;$c[]=$y+2*$dy;
-		$c[]=$x;$c[]=$y;
-		$c[]=$x-$dx*2;$c[]=$y;
-		$pts=4;
-		break;
-	    case MARK_FLASH:
-		$dy *= 2;
-		$c[]=$x+$dx/2; $c[]=$y-$dy;
-		$c[]=$x-$dx+$dx/2; $c[]=$y+$dy*0.7-$dy;
-		$c[]=$x+$dx/2; $c[]=$y+$dy*1.3-$dy;
-		$c[]=$x-$dx+$dx/2; $c[]=$y+2*$dy-$dy;
-		$img->SetLineWeight($weight);
-		$img->SetColor($color);					
-		$img->Polygon($c);
-		$img->SetLineWeight(1);
-		$this->AddCSIMPoly($c);
-		break;
-	}
-
-	if( $pts>0 ) {
-	    $this->AddCSIMPoly($c);
-	    $img->SetLineWeight($weight);
-	    $img->SetColor($fcolor);								
-	    $img->FilledPolygon($c);
-	    $img->SetColor($color);					
-	    $img->Polygon($c);
-	    $img->SetLineWeight(1);
-	}
-	elseif( $this->type==MARK_CIRCLE ) {
-	    $img->SetColor($color);					
-	    $img->Circle($x,$y,$width);
-	    $this->AddCSIMCircle($x,$y,$width);
-	}
-	elseif( $this->type==MARK_FILLEDCIRCLE ) {
-	    $img->SetColor($fcolor);		
-	    $img->FilledCircle($x,$y,$width);
-	    $img->SetColor($color);	
-	    $img->Circle($x,$y,$width);
-	    $this->AddCSIMCircle($x,$y,$width);
-	}
-	elseif( $this->type==MARK_CROSS ) {
-	    // Oversize by a pixel to match the X
-	    $img->SetColor($color);
-	    $img->SetLineWeight($weight);
-	    $img->Line($x,$y+$dy+1,$x,$y-$dy-1);
-	    $img->Line($x-$dx-1,$y,$x+$dx+1,$y);
-	    $this->AddCSIMCircle($x,$y,$dx);	    
-	}
-	elseif( $this->type==MARK_X ) {
-	    $img->SetColor($color);
-	    $img->SetLineWeight($weight);
-	    $img->Line($x+$dx,$y+$dy,$x-$dx,$y-$dy);
-	    $img->Line($x-$dx,$y+$dy,$x+$dx,$y-$dy);		
-	    $this->AddCSIMCircle($x,$y,$dx+$dy);	    	    
-	}			
-	elseif( $this->type==MARK_STAR ) {
-	    $img->SetColor($color);
-	    $img->SetLineWeight($weight);
-	    $img->Line($x+$dx,$y+$dy,$x-$dx,$y-$dy);
-	    $img->Line($x-$dx,$y+$dy,$x+$dx,$y-$dy);
-	    // Oversize by a pixel to match the X				
-	    $img->Line($x,$y+$dy+1,$x,$y-$dy-1);
-	    $img->Line($x-$dx-1,$y,$x+$dx+1,$y);
-	    $this->AddCSIMCircle($x,$y,$dx+$dy);	    
-	}
-		
-	// Stroke title
-	$this->title->Align("center","center");
-	$this->title->Stroke($img,$x,$y);			
-    }
-} // Class
-
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_polar.php b/nightly-test-server/jpgraph/jpgraph_polar.php
deleted file mode 100644
index 95a2dcc..0000000
--- a/nightly-test-server/jpgraph/jpgraph_polar.php
+++ /dev/null
@@ -1,845 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_POLAR.PHP
-// Description:	Polar plot extension for JpGraph
-// Created: 	2003-02-02
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once ('jpgraph_plotmark.inc');
-
-
-require_once "jpgraph_log.php";
-
-
-DEFINE('POLAR_360',1);
-DEFINE('POLAR_180',2);
-
-//
-// Note. Don't attempt to make sense of this code.
-// In order not to have to be able to inherit the scaling code
-// from the main graph package we have had to make some "tricks" since
-// the original scaling and axis was not designed to do what is
-// required here.
-// There were two option. 1: Re-implement everything and get a clean design
-// and 2: do some "small" trickery and be able to inherit most of
-// the functionlity from the main graph package. 
-// We choose 2: here in order to save some time.
-// 
-
-//--------------------------------------------------------------------------
-// class PolarPlot
-//--------------------------------------------------------------------------
-class PolarPlot {
-    var $numpoints=0;
-    var $iColor='navy',$iFillColor='';
-    var $iLineWeight=1;
-    var $coord=null;
-    var $legendcsimtarget='';
-    var $legendcsimalt='';
-    var $legend="";
-    var $csimtargets=array();	// Array of targets for CSIM
-    var $csimareas="";			// Resultant CSIM area tags	
-    var $csimalts=null;			// ALT:s for corresponding target
-    var $line_style='solid',$mark;
-
-    function PolarPlot($aData) {
-	$n = count($aData);
-	if( $n & 1 ) {
-	    JpGraphError::RaiseL(17001);
-//('Polar plots must have an even number of data point. Each data point is a tuple (angle,radius).');
-	}
-	$this->numpoints = $n/2;
-	$this->coord = $aData;
-	$this->mark = new PlotMark();
-    }
-
-    function SetWeight($aWeight) {
-	$this->iLineWeight = $aWeight;
-    }
-
-    function SetColor($aColor){
-	$this->iColor = $aColor;
-    }
-
-    function SetFillColor($aColor){
-	$this->iFillColor = $aColor;
-    }
-
-    function Max() {
-	$m = $this->coord[1];
-	$i=1;
-	while( $i < $this->numpoints ) {
-	    $m = max($m,$this->coord[2*$i+1]);  
-	    ++$i;
-	} 
-	return $m;
-    }
-    // Set href targets for CSIM	
-    function SetCSIMTargets($aTargets,$aAlts=null) {
-	$this->csimtargets=$aTargets;
-	$this->csimalts=$aAlts;		
-    }
- 	
-    // Get all created areas
-    function GetCSIMareas() {
-	return $this->csimareas;
-    }	
-	
-    function SetLegend($aLegend,$aCSIM="",$aCSIMAlt="") {
-	$this->legend = $aLegend;
-	$this->legendcsimtarget = $aCSIM;
-	$this->legendcsimalt = $aCSIMAlt;
-    }
-
-    // Private methods
-
-    function Legend(&$aGraph) {
-	$color = $this->iColor ;
-	if( $this->legend != "" ) {
-	    if( $this->iFillColor!='' ) {
-		$color = $this->iFillColor;
-		$aGraph->legend->Add($this->legend,$color,$this->mark,0,
-				     $this->legendcsimtarget,$this->legendcsimalt);    
-	    }
-	    else {
-		$aGraph->legend->Add($this->legend,$color,$this->mark,$this->line_style,
-				     $this->legendcsimtarget,$this->legendcsimalt);    
-	    }
-	}
-    }
-
-    function Stroke(&$img,$scale) {
-
-	$i=0;
-	$p=array();
-	$this->csimareas='';
-	while($i < $this->numpoints) {
-	    list($x1,$y1) = $scale->PTranslate($this->coord[2*$i],$this->coord[2*$i+1]);
-	    $p[2*$i] = $x1;
-	    $p[2*$i+1] = $y1;
-	
-	    if( isset($this->csimtargets[$i]) ) {
-	        $this->mark->SetCSIMTarget($this->csimtargets[$i]);
-	        $this->mark->SetCSIMAlt($this->csimalts[$i]);
-		$this->mark->SetCSIMAltVal($this->coord[2*$i], $this->coord[2*$i+1]);
-		$this->mark->Stroke($img,$x1,$y1);
-		$this->csimareas .= $this->mark->GetCSIMAreas();
-	    }
-	    else
-		$this->mark->Stroke($img,$x1,$y1);
-
-	    ++$i;
-	}
-
-	if( $this->iFillColor != '' ) {
-	    $img->SetColor($this->iFillColor);
-	    $img->FilledPolygon($p);
-	}
-	$img->SetLineWeight($this->iLineWeight);
-	$img->SetColor($this->iColor);
-	$img->Polygon($p,$this->iFillColor!='');
-    }
-}
-
-//--------------------------------------------------------------------------
-// class PolarAxis
-//--------------------------------------------------------------------------
-class PolarAxis extends Axis {
-    var $angle_step=15,$angle_color='lightgray',$angle_label_color='black';
-    var $angle_fontfam=FF_FONT1,$angle_fontstyle=FS_NORMAL,$angle_fontsize=10;
-    var $angle_fontcolor = 'navy';
-    var $gridminor_color='lightgray',$gridmajor_color='lightgray';
-    var $show_minor_grid = false, $show_major_grid = true ;
-    var $show_angle_mark=true, $show_angle_grid=true, $show_angle_label=true;
-    var $angle_tick_len=3, $angle_tick_len2=3, $angle_tick_color='black';
-    var $show_angle_tick=true;
-    var $radius_tick_color='black';
-
-    function PolarAxis(&$img,&$aScale) {
-	parent::Axis($img,$aScale);
-    }
-
-    function ShowAngleDegreeMark($aFlg=true) {
-	$this->show_angle_mark = $aFlg;
-    }
-
-    function SetAngleStep($aStep) {
-	$this->angle_step=$aStep;
-    }
-
-    function HideTicks($aFlg=true,$aAngleFlg=true) {
-	parent::HideTicks($aFlg,$aFlg);
-	$this->show_angle_tick = !$aAngleFlg;
-    }
-
-    function ShowAngleLabel($aFlg=true) {
-	$this->show_angle_label = $aFlg;
-    }
-
-    function ShowGrid($aMajor=true,$aMinor=false,$aAngle=true) {
-	$this->show_minor_grid = $aMinor;
-	$this->show_major_grid = $aMajor;
-	$this->show_angle_grid = $aAngle ;
-    }
-
-    function SetAngleFont($aFontFam,$aFontStyle=FS_NORMAL,$aFontSize=10) {
-	$this->angle_fontfam = $aFontFam;
-	$this->angle_fontstyle = $aFontStyle;
-	$this->angle_fontsize = $aFontSize;
-    }
-
-    function SetColor($aColor,$aRadColor='',$aAngleColor='') {
-	if( $aAngleColor == '' )
-	    $aAngleColor=$aColor;
-	parent::SetColor($aColor,$aRadColor);
-	$this->angle_fontcolor = $aAngleColor;
-    }
-
-    function SetGridColor($aMajorColor,$aMinorColor='',$aAngleColor='') {
-	if( $aMinorColor == '' ) 
-	    $aMinorColor = $aMajorColor;
-	if( $aAngleColor == '' ) 
-	    $aAngleColor = $aMajorColor;
-
-	$this->gridminor_color = $aMinorColor;
-	$this->gridmajor_color = $aMajorColor;
-	$this->angle_color = $aAngleColor;
-    }
-
-    function SetTickColors($aRadColor,$aAngleColor='') {
-	$this->radius_tick_color = $aRadColor;
-	$this->angle_tick_color = $aAngleColor;
-    }
-    
-    // Private methods
-    function StrokeGrid($pos) {
-	$x = round($this->img->left_margin + $this->img->plotwidth/2);
-	$this->scale->ticks->Stroke($this->img,$this->scale,$pos);
-
-	// Stroke the minor arcs 
-	$pmin = array();
-	$p = $this->scale->ticks->ticks_pos;
-	$n = count($p);
-	$i = 0;
-	$this->img->SetColor($this->gridminor_color);
-	while( $i < $n ) {
-	    $r = $p[$i]-$x+1;
-	    $pmin[]=$r;
-	    if( $this->show_minor_grid ) {
-		$this->img->Circle($x,$pos,$r);
-	    }
-	    $i++;
-	}
-	
-	$limit = max($this->img->plotwidth,$this->img->plotheight)*1.4 ;
-	while( $r < $limit ) {
-	    $off = $r;
-	    $i=1;
-	    $r = $off + round($p[$i]-$x+1);
-	    while( $r < $limit && $i < $n ) {
-		$r = $off+$p[$i]-$x;
-		$pmin[]=$r;
-		if( $this->show_minor_grid ) {
-		    $this->img->Circle($x,$pos,$r);
-		}
-		$i++;
-	    }
-	}
-
-	// Stroke the major arcs 
-	if( $this->show_major_grid ) {
-	    // First determine how many minor step on
-	    // every major step. We have recorded the minor radius
-	    // in pmin and use these values. This is done in order
-	    // to avoid rounding errors if we were to recalculate the
-	    // different major radius.
-	    $pmaj = $this->scale->ticks->maj_ticks_pos;
-	    $p = $this->scale->ticks->ticks_pos;
-	    if( $this->scale->name == 'lin' ) {
-		$step=round(($pmaj[1] - $pmaj[0])/($p[1] - $p[0]));
-	    }
-	    else {
-		$step=9;
-	    }
-	    $n = round(count($pmin)/$step);
-	    $i = 0;
-	    $this->img->SetColor($this->gridmajor_color);
-	    $limit = max($this->img->plotwidth,$this->img->plotheight)*1.4 ;
-	    $off = $r;
-	    $i=0;
-	    $r = $pmin[$i*$step];
-	    while( $r < $limit && $i < $n ) {
-		$r = $pmin[$i*$step];
-		$this->img->Circle($x,$pos,$r);
-		$i++;
-	    }
-	}
-
-	// Draw angles
-	if( $this->show_angle_grid ) {
-	    $this->img->SetColor($this->angle_color);
-	    $d = max($this->img->plotheight,$this->img->plotwidth)*1.4 ;
-	    $a = 0;
-	    $p = $this->scale->ticks->ticks_pos;
-	    $start_radius = $p[1]-$x;
-	    while( $a < 360 ) {
-		if( $a == 90 || $a == 270 ) {
-		    // Make sure there are no rounding problem with
-		    // exactly vertical lines
-		    $this->img->Line($x+$start_radius*cos($a/180*M_PI)+1,
-				     $pos-$start_radius*sin($a/180*M_PI),
-				     $x+$start_radius*cos($a/180*M_PI)+1,
-				     $pos-$d*sin($a/180*M_PI));
-		    
-		}
-		else {
-		    $this->img->Line($x+$start_radius*cos($a/180*M_PI)+1,
-				     $pos-$start_radius*sin($a/180*M_PI),
-				     $x+$d*cos($a/180*M_PI),
-				     $pos-$d*sin($a/180*M_PI));
-		}
-		$a += $this->angle_step;
-	    }
-	}
-    }
-
-    function StrokeAngleLabels($pos,$type) {
-
-	if( !$this->show_angle_label ) 
-	    return;
-	
-	$x0 = round($this->img->left_margin+$this->img->plotwidth/2)+1;
-
-	$d = max($this->img->plotwidth,$this->img->plotheight)*1.42;
-	$a = $this->angle_step;
-	$t = new Text();
-	$t->SetColor($this->angle_fontcolor);
-	$t->SetFont($this->angle_fontfam,$this->angle_fontstyle,$this->angle_fontsize);
-	$xright = $this->img->width - $this->img->right_margin;
-	$ytop = $this->img->top_margin;
-	$xleft = $this->img->left_margin;
-	$ybottom = $this->img->height - $this->img->bottom_margin;
-	$ha = 'left';
-	$va = 'center';
-	$w = $this->img->plotwidth/2;
-	$h = $this->img->plotheight/2;
-	$xt = $x0; $yt = $pos;
-	$margin=5;
-
-	$tl  = $this->angle_tick_len ; // Outer len
-	$tl2 = $this->angle_tick_len2 ; // Interior len
-
-	$this->img->SetColor($this->angle_tick_color);
-	$rot90 = $this->img->a == 90 ;
-
-	if( $type == POLAR_360 ) {
-	    $ca1 = atan($h/$w)/M_PI*180;
-	    $ca2 = 180-$ca1;
-	    $ca3 = $ca1+180;
-	    $ca4 = 360-$ca1;
-	    $end = 360;
-	    while( $a < $end ) {
-		$ca = cos($a/180*M_PI);
-		$sa = sin($a/180*M_PI);
-		$x = $d*$ca;
-		$y = $d*$sa;
-		$xt=1000;$yt=1000;
-		if( $a <= $ca1 || $a >= $ca4 ) {
-		    $yt = $pos - $w * $y/$x;
-		    $xt = $xright + $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'top';
-		    }
-		    else {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    $x1=$xright-$tl2; $x2=$xright+$tl;
-		    $y1=$y2=$yt;
-		}
-		elseif( $a > $ca1 && $a < $ca2 ) { 
-		    $xt = $x0 + $h * $x/$y;
-		    $yt = $ytop - $margin;
- 		    if( $rot90 ) {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    else {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    $y1=$ytop+$tl2;$y2=$ytop-$tl;
-		    $x1=$x2=$xt;
-		}
-		elseif( $a >= $ca2 && $a <= $ca3 ) { 
-		    $yt = $pos + $w * $y/$x;
-		    $xt = $xleft - $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    else {
-			$ha = 'right';
-			$va = 'center';
-		    }
-		    $x1=$xleft+$tl2;$x2=$xleft-$tl;
-		    $y1=$y2=$yt;
-		}
-		else { 
-		    $xt = $x0 - $h * $x/$y;
-		    $yt = $ybottom + $margin;
- 		    if( $rot90 ) {
-			$ha = 'right';
-			$va = 'center';
-		    }
-		    else {
-			$ha = 'center';
-			$va = 'top';
-		    }
-		    $y1=$ybottom-$tl2;$y2=$ybottom+$tl;
-		    $x1=$x2=$xt;
-		}
-		if( $a != 0 && $a != 180 ) {
-		    $t->Align($ha,$va);
-		    if( $this->show_angle_mark )
-			$a .= '°';
-		    $t->Set($a);
-		    $t->Stroke($this->img,$xt,$yt);   
-		    if( $this->show_angle_tick )
-			$this->img->Line($x1,$y1,$x2,$y2);
-		}
-		$a += $this->angle_step;
-	    }
-	}
-	else {
-	    // POLAR_HALF
-	    $ca1 = atan($h/$w*2)/M_PI*180;
-	    $ca2 = 180-$ca1;
-	    $end = 180;	    
-	    while( $a < $end ) {
-		$ca = cos($a/180*M_PI);
-		$sa = sin($a/180*M_PI);
-		$x = $d*$ca;
-		$y = $d*$sa;
-		if( $a <= $ca1 ) {
-		    $yt = $pos - $w * $y/$x;
-		    $xt = $xright + $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'top';
-		    }
-		    else {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    $x1=$xright-$tl2; $x2=$xright+$tl;
-		    $y1=$y2=$yt;
-		}
-		elseif( $a > $ca1 && $a < $ca2 ) { 
-		    $xt = $x0 + 2*$h * $x/$y;
-		    $yt = $ytop - $margin;
- 		    if( $rot90 ) {
-			$ha = 'left';
-			$va = 'center';
-		    }
-		    else {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    $y1=$ytop+$tl2;$y2=$ytop-$tl;
-		    $x1=$x2=$xt;
-		}
-		elseif( $a >= $ca2 ) { 
-		    $yt = $pos + $w * $y/$x;
-		    $xt = $xleft - $margin;
- 		    if( $rot90 ) {
-			$ha = 'center';
-			$va = 'bottom';
-		    }
-		    else {
-			$ha = 'right';
-			$va = 'center';
-		    }
-		    $x1=$xleft+$tl2;$x2=$xleft-$tl;
-		    $y1=$y2=$yt;
-		}
-		$t->Align($ha,$va);
-		if( $this->show_angle_mark )
-		    $a .= '°';
-		$t->Set($a);
-		$t->Stroke($this->img,$xt,$yt);  
-		if( $this->show_angle_tick )
-		    $this->img->Line($x1,$y1,$x2,$y2);  
-		$a += $this->angle_step;
-	    }
-	}
-    }
-
-    function Stroke($pos) {
-
-	$this->img->SetLineWeight($this->weight);
-	$this->img->SetColor($this->color);		
-	$this->img->SetFont($this->font_family,$this->font_style,$this->font_size);
-	if( !$this->hide_line ) 
-	    $this->img->FilledRectangle($this->img->left_margin,$pos,
-		     $this->img->width-$this->img->right_margin,$pos+$this->weight-1);
-	$y=$pos+$this->img->GetFontHeight()+$this->title_margin+$this->title->margin;
-	if( $this->title_adjust=="high" )
-	    $this->title->Pos($this->img->width-$this->img->right_margin,$y,"right","top");
-	elseif( $this->title_adjust=="middle" || $this->title_adjust=="center" ) 
-	    $this->title->Pos(($this->img->width-$this->img->left_margin-
-			       $this->img->right_margin)/2+$this->img->left_margin,
-			      $y,"center","top");
-	elseif($this->title_adjust=="low")
-	    $this->title->Pos($this->img->left_margin,$y,"left","top");
-	else {	
-	    JpGraphError::RaiseL(17002,$this->title_adjust);
-//('Unknown alignment specified for X-axis title. ('.$this->title_adjust.')');
-	}
-
-	
-	if (!$this->hide_labels) {
-	    $this->StrokeLabels($pos,false);
-	}
-	$this->img->SetColor($this->radius_tick_color);
-	$this->scale->ticks->Stroke($this->img,$this->scale,$pos);
-
-	//
-	// Mirror the positions for the left side of the scale
-        //
-	$mid = 2*($this->img->left_margin+$this->img->plotwidth/2);
-	$n = count($this->scale->ticks->ticks_pos);
-	$i=0;
-	while( $i < $n ) {
-	    $this->scale->ticks->ticks_pos[$i] = 
-		$mid-$this->scale->ticks->ticks_pos[$i] ;
-	    ++$i;
-	}
-
-	$n = count($this->scale->ticks->maj_ticks_pos);
-	$i=0;
-	while( $i < $n ) {
-	    $this->scale->ticks->maj_ticks_pos[$i] = 
-		$mid-$this->scale->ticks->maj_ticks_pos[$i] ;
-	    ++$i;
-	}
-	
-	$n = count($this->scale->ticks->maj_ticklabels_pos);
-	$i=1;
-	while( $i < $n ) {
-	    $this->scale->ticks->maj_ticklabels_pos[$i] =
-		$mid-$this->scale->ticks->maj_ticklabels_pos[$i] ;
-	    ++$i;
-	}
-
-	// Draw the left side of the scale
-	$n = count($this->scale->ticks->ticks_pos);
-	$yu = $pos - $this->scale->ticks->direction*$this->scale->ticks->GetMinTickAbsSize();
-
-
-	// Minor ticks
-	if( ! $this->scale->ticks->supress_minor_tickmarks ) {
-	    $i=1;
-	    while( $i < $n/2 ) {
-		$x = round($this->scale->ticks->ticks_pos[$i]) ;
-		$this->img->Line($x,$pos,$x,$yu);
-		++$i;
-	    }
-	}
-
-	$n = count($this->scale->ticks->maj_ticks_pos);
-	$yu = $pos - $this->scale->ticks->direction*$this->scale->ticks->GetMajTickAbsSize();
-
-
-	// Major ticks
-	if( ! $this->scale->ticks->supress_tickmarks ) {
-	    $i=1;
-	    while( $i < $n/2 ) {
-		$x = round($this->scale->ticks->maj_ticks_pos[$i]) ;
-		$this->img->Line($x,$pos,$x,$yu);
-		++$i;
-	    }
-	}
-	if (!$this->hide_labels) {
-	    $this->StrokeLabels($pos,false);
-	}
-	$this->title->Stroke($this->img);	
-    }
-}
-
-class PolarScale extends LinearScale {
-    var $graph;
-    function PolarScale($aMax=0,&$graph) {
-	parent::LinearScale(0,$aMax,'x');
-	$this->graph = &$graph;
-    }
-
-    function _Translate($v) {
-	return parent::Translate($v);
-    }
-
-    function PTranslate($aAngle,$aRad) {
-	
-	$m = $this->scale[1];
-	$w = $this->graph->img->plotwidth/2;
-	$aRad = $aRad/$m*$w;
-
-	$x = cos( $aAngle/180 * M_PI ) * $aRad;
-	$y = sin( $aAngle/180 * M_PI ) * $aRad;
-
-	$x += $this->_Translate(0);
-
-	if( $this->graph->iType == POLAR_360 ) {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight/2) - $y;
-	}
-	else {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight) - $y;
-	}
-	return array($x,$y);
-    }
-}
-
-class PolarLogScale extends LogScale {
-    var $graph;
-    function PolarLogScale($aMax=1,&$graph) {
-	parent::LogScale(0,$aMax,'x');
-	$this->graph = &$graph;
-	$this->ticks->SetLabelLogType(LOGLABELS_MAGNITUDE);
-
-    }
-
-    function PTranslate($aAngle,$aRad) {
-
-	if( $aRad == 0 ) 
-	    $aRad = 1;
-	$aRad = log10($aRad);
-	$m = $this->scale[1];
-	$w = $this->graph->img->plotwidth/2;
-	$aRad = $aRad/$m*$w;
-
-	$x = cos( $aAngle/180 * M_PI ) * $aRad;
-	$y = sin( $aAngle/180 * M_PI ) * $aRad;
-
-	$x += $w+$this->graph->img->left_margin;//$this->_Translate(0);
-	if( $this->graph->iType == POLAR_360 ) {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight/2) - $y;
-	}
-	else {
-	    $y = ($this->graph->img->top_margin + $this->graph->img->plotheight) - $y;
-	}
-	return array($x,$y);
-    }
-}
-
-class PolarGraph extends Graph {
-    var $scale;
-    var $iType=POLAR_360;
-    var $axis;
-    
-    function PolarGraph($aWidth=300,$aHeight=200,$aCachedName="",$aTimeOut=0,$aInline=true) {
-	parent::Graph($aWidth,$aHeight,$aCachedName,$aTimeOut,$aInline) ;
-	$this->SetDensity(TICKD_DENSE);
-	$this->SetBox();
-	$this->SetMarginColor('white');
-    }
-
-    function SetDensity($aDense) {
-	$this->SetTickDensity(TICKD_NORMAL,$aDense);
-    }
-
-    function Set90AndMargin($lm=0,$rm=0,$tm=0,$bm=0) {
-	$adj = ($this->img->height - $this->img->width)/2;
-	$this->SetAngle(90);
-	$this->img->SetMargin($lm-$adj,$rm-$adj,$tm+$adj,$bm+$adj);
-	$this->img->SetCenter(floor($this->img->width/2),floor($this->img->height/2));
-	$this->axis->SetLabelAlign('right','center');
-	//JpGraphError::Raise('Set90AndMargin() is not supported for polar graphs.');
-    }
-
-    function SetScale($aScale,$rmax=0) {
-	if( $aScale == 'lin' ) 
-	    $this->scale = new PolarScale($rmax,$this);
-	elseif( $aScale == 'log' ) {
-	    $this->scale = new PolarLogScale($rmax,$this);
-	}
-	else {
-	    JpGraphError::RaiseL(17004);//('Unknown scale type for polar graph. Must be "lin" or "log"');
-	}
-
-	$this->axis = new PolarAxis($this->img,$this->scale);
-	$this->SetMargin(40,40,50,40);
-    }
-
-    function SetType($aType) {
-	$this->iType = $aType;
-    }
-
-    function SetPlotSize($w,$h) {
-	$this->SetMargin(($this->img->width-$w)/2,($this->img->width-$w)/2,
-			 ($this->img->height-$h)/2,($this->img->height-$h)/2);
-    }
-
-    // Private methods
-    function GetPlotsMax() {
-	$n = count($this->plots);
-	$m = $this->plots[0]->Max();
-	$i=1;
-	while($i < $n) {
-	    $m = max($this->plots[$i]->Max(),$m);
-	    ++$i;
-	}
-	return $m;
-    }
-
-    function Stroke($aStrokeFileName="") {
-
-	// Start by adjusting the margin so that potential titles will fit.
-	$this->AdjustMarginsForTitles();
-	    
-	// If the filename is the predefined value = '_csim_special_'
-	// we assume that the call to stroke only needs to do enough
-	// to correctly generate the CSIM maps.
-	// We use this variable to skip things we don't strictly need
-	// to do to generate the image map to improve performance
-	// a best we can. Therefor you will see a lot of tests !$_csim in the
-	// code below.
-	$_csim = ($aStrokeFileName===_CSIM_SPECIALFILE);
-
-	// We need to know if we have stroked the plot in the
-	// GetCSIMareas. Otherwise the CSIM hasn't been generated
-	// and in the case of GetCSIM called before stroke to generate
-	// CSIM without storing an image to disk GetCSIM must call Stroke.
-	$this->iHasStroked = true;
-
-	//Check if we should autoscale axis
-	if( !$this->scale->IsSpecified() && count($this->plots)>0 ) {
-	    $max = $this->GetPlotsMax();
-	    $t1 = $this->img->plotwidth;
-	    $this->img->plotwidth /= 2;
-	    $t2 = $this->img->left_margin;
-	    $this->img->left_margin += $this->img->plotwidth+1;
-	    $this->scale->AutoScale($this->img,0,$max,
-				     $this->img->plotwidth/$this->xtick_factor/2);
-	    $this->img->plotwidth = $t1;
-	    $this->img->left_margin = $t2;
-	}
-	else {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    //$min = 0;
-	    $max = $this->scale->scale[1];
-	    $t1 = $this->img->plotwidth;
-	    $this->img->plotwidth /= 2;
-	    $t2 = $this->img->left_margin;
-	    $this->img->left_margin += $this->img->plotwidth+1;
-	    $this->scale->AutoScale($this->img,0,$max,
-				     $this->img->plotwidth/$this->xtick_factor/2);
-	    $this->img->plotwidth = $t1;
-	    $this->img->left_margin = $t2;
-	}
-
-	if( $this->iType ==  POLAR_180 ) 
-	    $pos = $this->img->height - $this->img->bottom_margin;
-	else
-	    $pos = $this->img->plotheight/2 + $this->img->top_margin;
-
-
-	if( !$_csim ) {
-	    $this->StrokePlotArea();
-	}
-
-	$this->iDoClipping = true;
-
-	if( $this->iDoClipping ) {
-	    $oldimage = $this->img->CloneCanvasH();
-	}
-
-	if( !$_csim ) {
-	    $this->axis->StrokeGrid($pos);
-	}
-
-	// Stroke all plots for Y1 axis
-	for($i=0; $i < count($this->plots); ++$i) {
-	    $this->plots[$i]->Stroke($this->img,$this->scale);
-	}						
-
-
-	if( $this->iDoClipping ) {
-	    // Clipping only supports graphs at 0 and 90 degrees
-	    if( $this->img->a == 0  ) {
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->left_margin,$this->img->top_margin,
-					$this->img->plotwidth+1,$this->img->plotheight+1);
-	    }
-	    elseif( $this->img->a == 90 ) {
-		$adj = round(($this->img->height - $this->img->width)/2);
-		$this->img->CopyCanvasH($oldimage,$this->img->img,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->bottom_margin-$adj,$this->img->left_margin+$adj,
-					$this->img->plotheight,$this->img->plotwidth);
-	    }
-	    $this->img->Destroy();
-	    $this->img->SetCanvasH($oldimage);
-	}
-
-	if( !$_csim ) {
-	    $this->axis->Stroke($pos);
-	    $this->axis->StrokeAngleLabels($pos,$this->iType);
-	}
-
-	if( !$_csim ) {
-	    $this->StrokePlotBox();
-	    $this->footer->Stroke($this->img);
-
-	    // The titles and legends never gets rotated so make sure
-	    // that the angle is 0 before stroking them				
-	    $aa = $this->img->SetAngle(0);
-	    $this->StrokeTitles();
-	}
-
-	for($i=0; $i < count($this->plots) ; ++$i ) {
-	    $this->plots[$i]->Legend($this);
-	}
-
-	$this->legend->Stroke($this->img);		
-
-	if( !$_csim ) {
-
-	    $this->StrokeTexts();	
-	    $this->img->SetAngle($aa);	
-			
-	    // Draw an outline around the image map	
-	    if(_JPG_DEBUG)
-		$this->DisplayClientSideaImageMapAreas();		
-	    
-	    // Adjust the appearance of the image
-	    $this->AdjustSaturationBrightnessContrast();
-
-	    // If the filename is given as the special "__handle"
-	    // then the image handler is returned and the image is NOT
-	    // streamed back
-	    if( $aStrokeFileName == _IMG_HANDLER ) {
-		return $this->img->img;
-	    }
-	    else {
-		// Finally stream the generated picture					
-		$this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-					   $aStrokeFileName);		
-	    }
-	}
-    }
-}
-
-
-
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_radar.php b/nightly-test-server/jpgraph/jpgraph_radar.php
deleted file mode 100644
index 6c8f033..0000000
--- a/nightly-test-server/jpgraph/jpgraph_radar.php
+++ /dev/null
@@ -1,661 +0,0 @@
-<?php
-/*=======================================================================
-// File:	JPGRAPH_RADAR.PHP
-// Description: Radar plot extension for JpGraph
-// Created: 	2001-02-04
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-require_once('jpgraph_plotmark.inc');
-
-class RadarLogTicks extends Ticks {
-//---------------
-// CONSTRUCTOR
-    function RadarLogTicks() {
-    }
-//---------------
-// PUBLIC METHODS	
-
-    // TODO: Add Argument grid
-    function Stroke(&$aImg,&$grid,$aPos,$aAxisAngle,&$aScale,&$aMajPos,&$aMajLabel) {
-	$start = $aScale->GetMinVal();
-	$limit = $aScale->GetMaxVal();
-	$nextMajor = 10*$start;
-	$step = $nextMajor / 10.0;
-	$count=1; 
-				
-	$ticklen_maj=5;
-	$dx_maj=round(sin($aAxisAngle)*$ticklen_maj);
-	$dy_maj=round(cos($aAxisAngle)*$ticklen_maj);
-	$ticklen_min=3;
-	$dx_min=round(sin($aAxisAngle)*$ticklen_min);
-	$dy_min=round(cos($aAxisAngle)*$ticklen_min);
-			
-	$aMajPos=array();
-	$aMajLabel=array();
-			
-	if( $this->supress_first )
-	    $aMajLabel[]="";
-	else
-	    $aMajLabel[]=$start;	
-	$yr=$aScale->RelTranslate($start);	
-	$xt=round($yr*cos($aAxisAngle))+$aScale->scale_abs[0];
-	$yt=$aPos-round($yr*sin($aAxisAngle));
-	$aMajPos[]=$xt+2*$dx_maj;
-	$aMajPos[]=$yt-$aImg->GetFontheight()/2;
-	$grid[]=$xt;
-	$grid[]=$yt;
-
-	$aImg->SetLineWeight($this->weight);			
-		
-	for($y=$start; $y<=$limit; $y+=$step,++$count  ) {
-	    $yr=$aScale->RelTranslate($y);	
-	    $xt=round($yr*cos($aAxisAngle))+$aScale->scale_abs[0];
-	    $yt=$aPos-round($yr*sin($aAxisAngle));
-	    if( $count % 10 == 0 ) {
-		$grid[]=$xt;
-		$grid[]=$yt;
-		$aMajPos[]=$xt+2*$dx_maj;
-		$aMajPos[]=$yt-$aImg->GetFontheight()/2;							
-		if( !$this->supress_tickmarks )	{		
-		    if( $this->majcolor!="" ) $aImg->PushColor($this->majcolor);
-		    $aImg->Line($xt+$dx_maj,$yt+$dy_maj,$xt-$dx_maj,$yt-$dy_maj);
-		    if( $this->majcolor!="" ) $aImg->PopColor();
-		}
-		if( $this->label_formfunc != "" ) {
-		    $f=$this->label_formfunc;
-		    $l = call_user_func($f,$nextMajor);
-		}
-		else
-		    $l = $nextMajor;
-		$aMajLabel[]=$l;	
-		$nextMajor *= 10;
-		$step *= 10;	
-		$count=1; 				
-	    }
-	    else
-		if( !$this->supress_minor_tickmarks )	{
-		    if( $this->mincolor!="" ) $aImg->PushColor($this->mincolor);
-		    $aImg->Line($xt+$dx_min,$yt+$dy_min,$xt-$dx_min,$yt-$dy_min);
-		    if( $this->mincolor!="" ) $aImg->PopColor();
-		}
-	}		
-    }		
-}
-	
-class RadarLinearTicks extends LinearTicks {
-//---------------
-// CONSTRUCTOR
-    function RadarLinearTicks() {
-	// Empty
-    }
-
-//---------------
-// PUBLIC METHODS	
-
-    // TODO: Add argument grid
-    function Stroke(&$aImg,&$grid,$aPos,$aAxisAngle,&$aScale,&$aMajPos,&$aMajLabel) {
-	// Prepare to draw linear ticks
-	$maj_step_abs = abs($aScale->scale_factor*$this->major_step);	
-	$min_step_abs = abs($aScale->scale_factor*$this->minor_step);	
-	$nbrmaj = floor(($aScale->world_abs_size)/$maj_step_abs);
-	$nbrmin = floor(($aScale->world_abs_size)/$min_step_abs);
-	$skip = round($nbrmin/$nbrmaj); // Don't draw minor ontop of major
-
-	// Draw major ticks
-	$ticklen2=$this->major_abs_size;
-	$dx=round(sin($aAxisAngle)*$ticklen2);
-	$dy=round(cos($aAxisAngle)*$ticklen2);
-	$label=$aScale->scale[0]+$this->major_step;
-		
-	$aImg->SetLineWeight($this->weight);
-		
-	for($i=1; $i<=$nbrmaj; ++$i) {
-	    $xt=round($i*$maj_step_abs*cos($aAxisAngle))+$aScale->scale_abs[0];
-	    $yt=$aPos-round($i*$maj_step_abs*sin($aAxisAngle));
-
-	    if( $this->label_formfunc != "" ) {
-		$f=$this->label_formfunc;
-		$l = call_user_func($f,$label);
-	    }
-	    else
-		$l = $label;
-
-	    $aMajLabel[]=$l;
-	    $label += $this->major_step;
-	    $grid[]=$xt;
-	    $grid[]=$yt;
-	    $aMajPos[($i-1)*2]=$xt+2*$dx;
-	    $aMajPos[($i-1)*2+1]=$yt-$aImg->GetFontheight()/2;				
-	    if( !$this->supress_tickmarks ) {
-		if( $this->majcolor!="" ) $aImg->PushColor($this->majcolor);
-		$aImg->Line($xt+$dx,$yt+$dy,$xt-$dx,$yt-$dy);
-		if( $this->majcolor!="" ) $aImg->PopColor();
-	    }
-	}
-
-	// Draw minor ticks
-	$ticklen2=$this->minor_abs_size;
-	$dx=round(sin($aAxisAngle)*$ticklen2);
-	$dy=round(cos($aAxisAngle)*$ticklen2);
-	if( !$this->supress_tickmarks && !$this->supress_minor_tickmarks)	{
-	    if( $this->mincolor!="" ) $aImg->PushColor($this->mincolor);						
-	    for($i=1; $i<=$nbrmin; ++$i) {
-		if( ($i % $skip) == 0 ) continue;
-		$xt=round($i*$min_step_abs*cos($aAxisAngle))+$aScale->scale_abs[0];
-		$yt=$aPos-round($i*$min_step_abs*sin($aAxisAngle));
-		$aImg->Line($xt+$dx,$yt+$dy,$xt-$dx,$yt-$dy);
-	    }
-	    if( $this->mincolor!="" ) $aImg->PopColor();
-	}
-    }
-}
-
-	
-
-//===================================================
-// CLASS RadarAxis
-// Description: Implements axis for the radar graph
-//===================================================
-class RadarAxis extends Axis {
-    var $title_color="navy";
-    var $title=null;
-//---------------
-// CONSTRUCTOR
-    function RadarAxis(&$img,&$aScale,$color=array(0,0,0)) {
-	parent::Axis($img,$aScale,$color);
-	$this->len=$img->plotheight;
-	$this->title = new Text();
-	$this->title->SetFont(FF_FONT1,FS_BOLD);
-	$this->color = array(0,0,0);
-    }
-//---------------
-// PUBLIC METHODS	
-    function SetTickLabels($l) {
-	$this->ticks_label = $l;
-    }
-	
-	
-    // Stroke the axis 
-    // $pos 			= Vertical position of axis
-    // $aAxisAngle = Axis angle
-    // $grid			= Returns an array with positions used to draw the grid
-    //	$lf			= Label flag, TRUE if the axis should have labels
-    function Stroke($pos,$aAxisAngle,&$grid,$title,$lf) {
-	$this->img->SetColor($this->color);
-		
-	// Determine end points for the axis
-	$x=round($this->scale->world_abs_size*cos($aAxisAngle)+$this->scale->scale_abs[0]);
-	$y=round($pos-$this->scale->world_abs_size*sin($aAxisAngle));
-		
-	// Draw axis
-	$this->img->SetColor($this->color);
-	$this->img->SetLineWeight($this->weight);
-	if( !$this->hide )
-	    $this->img->Line($this->scale->scale_abs[0],$pos,$x,$y);
-	
-	$this->scale->ticks->Stroke($this->img,$grid,$pos,$aAxisAngle,$this->scale,$majpos,$majlabel);
-		
-	// Draw labels
-	if( $lf && !$this->hide ) {
-	    $this->img->SetFont($this->font_family,$this->font_style,$this->font_size);	
-	    $this->img->SetTextAlign("left","top");
-	    $this->img->SetColor($this->label_color);
-			
-	    // majpos contains (x,y) coordinates for labels
-	    if( ! $this->hide_labels ) {
-		$n = floor(count($majpos)/2);
-		for($i=0; $i < $n; ++$i) {
-		    if( $this->ticks_label != null && isset($this->ticks_label[$i]) )
-			$this->img->StrokeText($majpos[$i*2],$majpos[$i*2+1],$this->ticks_label[$i]);
-		    else
-			$this->img->StrokeText($majpos[$i*2],$majpos[$i*2+1],$majlabel[$i]);
-		}
-	    }
-	}
-	$this->_StrokeAxisTitle($pos,$aAxisAngle,$title);
-    }
-//---------------
-// PRIVATE METHODS	
-	
-    function _StrokeAxisTitle($pos,$aAxisAngle,$title) {
-	$this->title->Set($title);
-	$marg=6+$this->title->margin;
-	$xt=round(($this->scale->world_abs_size+$marg)*cos($aAxisAngle)+$this->scale->scale_abs[0]);
-	$yt=round($pos-($this->scale->world_abs_size+$marg)*sin($aAxisAngle));
-
-	// Position the axis title. 
-	// dx, dy is the offset from the top left corner of the bounding box that sorrounds the text
-	// that intersects with the extension of the corresponding axis. The code looks a little
-	// bit messy but this is really the only way of having a reasonable position of the
-	// axis titles.
-	if( $this->title->iWordwrap > 0 ) {
-	    $title = wordwrap($title,$this->title->iWordwrap,"\n");
-	}
-
-	$h=$this->img->GetTextHeight($title)*1.2;
-	$w=$this->img->GetTextWidth($title)*1.2;
-	while( $aAxisAngle > 2*M_PI ) $aAxisAngle -= 2*M_PI;
-
-	if( $aAxisAngle>=7*M_PI/4 || $aAxisAngle <= M_PI/4 ) $dx=0;
-	if( $aAxisAngle>=M_PI/4 && $aAxisAngle <= 3*M_PI/4 ) $dx=($aAxisAngle-M_PI/4)*2/M_PI; 
-	if( $aAxisAngle>=3*M_PI/4 && $aAxisAngle <= 5*M_PI/4 ) $dx=1;
-	if( $aAxisAngle>=5*M_PI/4 && $aAxisAngle <= 7*M_PI/4 ) $dx=(1-($aAxisAngle-M_PI*5/4)*2/M_PI);
-		
-	if( $aAxisAngle>=7*M_PI/4 ) $dy=(($aAxisAngle-M_PI)-3*M_PI/4)*2/M_PI;
-	if( $aAxisAngle<=M_PI/4 ) $dy=(1-$aAxisAngle*2/M_PI);
-	if( $aAxisAngle>=M_PI/4 && $aAxisAngle <= 3*M_PI/4 ) $dy=1;
-	if( $aAxisAngle>=3*M_PI/4 && $aAxisAngle <= 5*M_PI/4 ) $dy=(1-($aAxisAngle-3*M_PI/4)*2/M_PI);
-	if( $aAxisAngle>=5*M_PI/4 && $aAxisAngle <= 7*M_PI/4 ) $dy=0;
-		
-	if( !$this->hide ) {
-	    $this->title->Stroke($this->img,$xt-$dx*$w,$yt-$dy*$h,$title);
-	}
-    }
-		
-	
-} // Class
-
-
-//===================================================
-// CLASS RadarGrid
-// Description: Draws grid for the radar graph
-//===================================================
-class RadarGrid extends Grid {
-//------------
-// CONSTRUCTOR
-    function RadarGrid() {
-    }
-
-//----------------
-// PRIVATE METHODS	
-    function Stroke(&$img,&$grid) {
-	if( !$this->show ) return;
-	$nbrticks = count($grid[0])/2;
-	$nbrpnts = count($grid);
-	$img->SetColor($this->grid_color);
-	$img->SetLineWeight($this->weight);
-	for($i=0; $i<$nbrticks; ++$i) {
-	    for($j=0; $j<$nbrpnts; ++$j) {
-		$pnts[$j*2]=$grid[$j][$i*2];
-		$pnts[$j*2+1]=$grid[$j][$i*2+1];
-	    }
-	    for($k=0; $k<$nbrpnts; ++$k ){
-		$l=($k+1)%$nbrpnts;
-		if( $this->type == "solid" )
-		    $img->Line($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1]);
-		elseif( $this->type == "dotted" )
-		    $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],1,6);
-		elseif( $this->type == "dashed" )
-		    $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],2,4);
-		elseif( $this->type == "longdashed" )
-		    $img->DashedLine($pnts[$k*2],$pnts[$k*2+1],$pnts[$l*2],$pnts[$l*2+1],8,6);
-	    }
-	    $pnts=array();
-	}
-    }
-} // Class
-
-
-//===================================================
-// CLASS RadarPlot
-// Description: Plot a radarplot
-//===================================================
-class RadarPlot {
-    var $data=array();
-    var $fill=false, $fill_color=array(200,170,180);
-    var $color=array(0,0,0);
-    var $legend="";
-    var $weight=1;
-    var $linestyle='solid';
-    var $mark=null;
-//---------------
-// CONSTRUCTOR
-    function RadarPlot($data) {
-	$this->data = $data;
-	$this->mark = new PlotMark();
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function Min() {
-	return Min($this->data);
-    }
-	
-    function Max() {
-	return Max($this->data);
-    }
-	
-    function SetLegend($legend) {
-	$this->legend=$legend;
-    }
-
-    function SetLineStyle($aStyle) {
-	$this->linestyle=$aStyle;
-    }
-	
-    function SetLineWeight($w) {
-	$this->weight=$w;
-    }
-		
-    function SetFillColor($aColor) {
-	$this->fill_color = $aColor;
-	$this->fill = true;		
-    }
-    
-    function SetFill($f=true) {
-	$this->fill = $f;
-    }
-    
-    function SetColor($aColor,$aFillColor=false) {
-	$this->color = $aColor;
-	if( $aFillColor ) {
-	    $this->SetFillColor($aFillColor);
-	    $this->fill = true;
-	}
-    }
-	
-    function GetCSIMareas() {
-	JpGraphError::RaiseL(18001);
-//("Client side image maps not supported for RadarPlots.");
-    }
-	
-    function Stroke(&$img, $pos, &$scale, $startangle) {
-	$nbrpnts = count($this->data);
-	$astep=2*M_PI/$nbrpnts;		
-	$a=$startangle;
-		
-	// Rotate each point to the correct axis-angle
-	// TODO: Update for LogScale
-	for($i=0; $i<$nbrpnts; ++$i) {
-	    //$c=$this->data[$i];
-	    $cs=$scale->RelTranslate($this->data[$i]);
-	    $x=round($cs*cos($a)+$scale->scale_abs[0]);
-	    $y=round($pos-$cs*sin($a));
-	    /*
-	      $c=log10($c);
-	      $x=round(($c-$scale->scale[0])*$scale->scale_factor*cos($a)+$scale->scale_abs[0]);
-	      $y=round($pos-($c-$scale->scale[0])*$scale->scale_factor*sin($a));		
-	    */
-	    $pnts[$i*2]=$x;
-	    $pnts[$i*2+1]=$y;
-	    $a += $astep;
-	}
-	if( $this->fill ) {
-	    $img->SetColor($this->fill_color);
-	    $img->FilledPolygon($pnts);
-	}
-	$img->SetLineWeight($this->weight);
-	$img->SetColor($this->color);
-	$img->SetLineStyle($this->linestyle);
-	$pnts[]=$pnts[0];
-	$pnts[]=$pnts[1];
-	$img->Polygon($pnts);
-	$img->SetLineStyle('solid'); // Reset line style to default
-	// Add plotmarks on top
-	if( $this->mark->show ) {
-	    for($i=0; $i < $nbrpnts; ++$i) {
-		$this->mark->Stroke($img,$pnts[$i*2],$pnts[$i*2+1]); 
-	    }
-	}
-
-    }
-	
-//---------------
-// PRIVATE METHODS
-    function GetCount() {
-	return count($this->data);
-    }
-	
-    function Legend(&$graph) {
-	if( $this->legend=="" ) return;
-	if( $this->fill )
-	    $graph->legend->Add($this->legend,$this->fill_color,$this->mark);
-	else
-	    $graph->legend->Add($this->legend,$this->color,$this->mark);	
-    }
-	
-} // Class
-
-//===================================================
-// CLASS RadarGraph
-// Description: Main container for a radar graph
-//===================================================
-class RadarGraph extends Graph {
-    var $posx;
-    var $posy;
-    var $len;		
-    var $plots=null, $axis_title=null;
-    var $grid,$axis=null;
-//---------------
-// CONSTRUCTOR
-    function RadarGraph($width=300,$height=200,$cachedName="",$timeout=0,$inline=1) {
-	$this->Graph($width,$height,$cachedName,$timeout,$inline);
-	$this->posx=$width/2;
-	$this->posy=$height/2;
-	$this->len=min($width,$height)*0.35;
-	$this->SetColor(array(255,255,255));
-	$this->SetTickDensity(TICKD_NORMAL);
-	$this->SetScale("lin");
-	$this->SetGridDepth(DEPTH_FRONT);
-
-    }
-
-//---------------
-// PUBLIC METHODS
-    function SupressTickMarks($f=true) {
-    	if( ERR_DEPRECATED )
-	    JpGraphError::RaiseL(18002);
-//('RadarGraph::SupressTickMarks() is deprecated. Use HideTickMarks() instead.');
-	$this->axis->scale->ticks->SupressTickMarks($f);
-    }
-
-    function HideTickMarks($aFlag=true) {
-		$this->axis->scale->ticks->SupressTickMarks($aFlag);
-    }
-    
-    function ShowMinorTickmarks($aFlag=true) {
-    	$this->yscale->ticks->SupressMinorTickMarks(!$aFlag);
-    }
-	
-    function SetScale($axtype,$ymin=1,$ymax=1) {
-	if( $axtype != "lin" && $axtype != "log" ) {
-	    JpGraphError::RaiseL(18003,$axtype);
-//("Illegal scale for radarplot ($axtype). Must be \"lin\" or \"log\"");
-	}
-	if( $axtype=="lin" ) {
-	    $this->yscale = & new LinearScale($ymin,$ymax);
-	    $this->yscale->ticks = & new RadarLinearTicks();
-	    $this->yscale->ticks->SupressMinorTickMarks();
-	}
-	elseif( $axtype=="log" ) {
-	    $this->yscale = & new LogScale($ymin,$ymax);
-	    $this->yscale->ticks = & new RadarLogTicks();
-	}
-		
-	$this->axis = & new RadarAxis($this->img,$this->yscale);
-	$this->grid = & new RadarGrid();		
-    }
-
-    function SetSize($aSize) {
-	if( $aSize < 0.1 || $aSize>1 )
-	    JpGraphError::RaiseL(18004,$aSize);
-//("Radar Plot size must be between 0.1 and 1. (Your value=$s)");
-	$this->len=min($this->img->width,$this->img->height)*$aSize/2;
-    }
-
-    function SetPlotSize($aSize) {
-	$this->SetSize($aSize);
-    }
-
-    function SetTickDensity($densy=TICKD_NORMAL) {
-	$this->ytick_factor=25;		
-	switch( $densy ) {
-	    case TICKD_DENSE:
-		$this->ytick_factor=12;			
-	    break;
-	    case TICKD_NORMAL:
-		$this->ytick_factor=25;			
-	    break;
-	    case TICKD_SPARSE:
-		$this->ytick_factor=40;			
-	    break;
-	    case TICKD_VERYSPARSE:
-		$this->ytick_factor=70;			
-	    break;		
-	    default:
-		JpGraphError::RaiseL(18005,$densy);
-//("RadarPlot Unsupported Tick density: $densy");
-	}
-    }
-
-    function SetPos($px,$py=0.5) {
-	$this->SetCenter($px,$py);
-    }
-
-    function SetCenter($px,$py=0.5) {
-	assert($px > 0 && $py > 0 );
-	$this->posx=$this->img->width*$px;
-	$this->posy=$this->img->height*$py;
-    }
-
-    function SetColor($c) {
-	$this->SetMarginColor($c);
-    }
-			
-    function SetTitles($title) {
-	$this->axis_title = $title;
-    }
-
-    function Add(&$splot) {
-	$this->plots[]=$splot;
-    }
-	
-    function GetPlotsYMinMax() {
-	$min=$this->plots[0]->Min();
-	$max=$this->plots[0]->Max();
-	foreach( $this->plots as $p ) {
-	    $max=max($max,$p->Max());
-	    $min=min($min,$p->Min());
-	}
-	if( $min < 0 ) 
-	    JpGraphError::RaiseL(18006,$min);
-//("Minimum data $min (Radar plots should only be used when all data points > 0)");
-	return array($min,$max);
-    }	
-
-    // Stroke the Radar graph
-    function Stroke($aStrokeFileName="") {
-	$n = count($this->plots);
-	// Set Y-scale
-	if( !$this->yscale->IsSpecified() && count($this->plots)>0 ) {
-	    list($min,$max) = $this->GetPlotsYMinMax();
-	    $this->yscale->AutoScale($this->img,0,$max,$this->len/$this->ytick_factor);
-	}
-	elseif( $this->yscale->IsSpecified() && 
-		( $this->yscale->auto_ticks || !$this->yscale->ticks->IsSpecified()) ) {
-	    // The tick calculation will use the user suplied min/max values to determine
-	    // the ticks. If auto_ticks is false the exact user specifed min and max
-	    // values will be used for the scale. 
-	    // If auto_ticks is true then the scale might be slightly adjusted
-	    // so that the min and max values falls on an even major step.
-	    $min = $this->yscale->scale[0];
-	    $max = $this->yscale->scale[1];
-	    $this->yscale->AutoScale($this->img,$min,$max,
-				     $this->len/$this->ytick_factor,
-				     $this->yscale->auto_ticks);
-	}
-
-	// Set start position end length of scale (in absolute pixels)
-	$this->yscale->SetConstants($this->posx,$this->len);
-		
-	// We need as many axis as there are data points
-	$nbrpnts=$this->plots[0]->GetCount();
-		
-	// If we have no titles just number the axis 1,2,3,...
-	if( $this->axis_title==null ) {
-	    for($i=0; $i < $nbrpnts; ++$i ) 
-		$this->axis_title[$i] = $i+1;
-	}
-	elseif(count($this->axis_title)<$nbrpnts) 
-	    JpGraphError::RaiseL(18007);
-//("Number of titles does not match number of points in plot.");
-	for($i=0; $i < $n; ++$i )
-	    if( $nbrpnts != $this->plots[$i]->GetCount() )
-		JpGraphError::RaiseL(18008);
-//("Each radar plot must have the same number of data points.");
-
-	if( $this->background_image != "" ) {
-	    $this->StrokeFrameBackground();
-	}
-	else {	
-	    $this->StrokeFrame();
-	}
-	$astep=2*M_PI/$nbrpnts;
-
-	// Prepare legends
-	for($i=0; $i < $n; ++$i)
-	    $this->plots[$i]->Legend($this);
-	$this->legend->Stroke($this->img);			
-	$this->footer->Stroke($this->img);			
-
-	if( $this->grid_depth == DEPTH_BACK ) {
-	    // Draw axis and grid
-	    for( $i=0,$a=M_PI/2; $i < $nbrpnts; ++$i, $a += $astep ) {
-		$this->axis->Stroke($this->posy,$a,$grid[$i],$this->axis_title[$i],$i==0);
-	    }	
-	}
-		
-	// Plot points
-	$a=M_PI/2;
-	for($i=0; $i < $n; ++$i )
-	    $this->plots[$i]->Stroke($this->img, $this->posy, $this->yscale, $a);
-		
-	if( $this->grid_depth != DEPTH_BACK ) {
-	    // Draw axis and grid
-	    for( $i=0,$a=M_PI/2; $i < $nbrpnts; ++$i, $a += $astep ) {
-		$this->axis->Stroke($this->posy,$a,$grid[$i],$this->axis_title[$i],$i==0);
-	    }	
-	}
-	$this->grid->Stroke($this->img,$grid);
-	$this->StrokeTitles();
-	
-	// Stroke texts
-	if( $this->texts != null ) {
-	    foreach( $this->texts as $t) 
-		$t->Stroke($this->img);
-	}
-
-	// Should we do any final image transformation
-	if( $this->iImgTrans ) {
-	    if( !class_exists('ImgTrans') ) {
-		require_once('jpgraph_imgtrans.php');
-	    }
-	       
-	    $tform = new ImgTrans($this->img->img);
-	    $this->img->img = $tform->Skew3D($this->iImgTransHorizon,$this->iImgTransSkewDist,
-					     $this->iImgTransDirection,$this->iImgTransHighQ,
-					     $this->iImgTransMinSize,$this->iImgTransFillColor,
-					     $this->iImgTransBorder);
-	}
-	
-	// If the filename is given as the special "__handle"
-	// then the image handler is returned and the image is NOT
-	// streamed back
-	if( $aStrokeFileName == _IMG_HANDLER ) {
-	    return $this->img->img;
-	    }
-	else {
-	    // Finally stream the generated picture					
-	    $this->cache->PutAndStream($this->img,$this->cache_name,$this->inline,
-				       $aStrokeFileName);		
-	}
-    }
-} // Class
-
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_regstat.php b/nightly-test-server/jpgraph/jpgraph_regstat.php
deleted file mode 100644
index 47b9eb3..0000000
--- a/nightly-test-server/jpgraph/jpgraph_regstat.php
+++ /dev/null
@@ -1,203 +0,0 @@
-<?php 
-/*=======================================================================
-// File:	JPGRAPH_REGSTAT.PHP
-// Description: Regression and statistical analysis helper classes
-// Created: 	2002-12-01
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//------------------------------------------------------------------------
-// CLASS Spline
-// Create a new data array from an existing data array but with more points.
-// The new points are interpolated using a cubic spline algorithm
-//------------------------------------------------------------------------
-class Spline {
-    // 3:rd degree polynom approximation
-
-    var $xdata,$ydata;   // Data vectors
-    var $y2;		 // 2:nd derivate of ydata	
-    var $n=0;
-
-    function Spline($xdata,$ydata) {
-	$this->y2 = array();
-	$this->xdata = $xdata;
-	$this->ydata = $ydata;
-
-	$n = count($ydata);
-	$this->n = $n;
-	if( $this->n !== count($xdata) ) {
-	    JpGraphError::RaiseL(19001);
-//('Spline: Number of X and Y coordinates must be the same');
-	}
-
-	// Natural spline 2:derivate == 0 at endpoints
-	$this->y2[0]    = 0.0;
-	$this->y2[$n-1] = 0.0;
-	$delta[0] = 0.0;
-
-	// Calculate 2:nd derivate
-	for($i=1; $i < $n-1; ++$i) {
-	    $d = ($xdata[$i+1]-$xdata[$i-1]);
-	    if( $d == 0  ) {
-		JpGraphError::RaiseL(19002);
-//('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.');
-	    }
-	    $s = ($xdata[$i]-$xdata[$i-1])/$d;
-	    $p = $s*$this->y2[$i-1]+2.0;
-	    $this->y2[$i] = ($s-1.0)/$p;
-	    $delta[$i] = ($ydata[$i+1]-$ydata[$i])/($xdata[$i+1]-$xdata[$i]) - 
-		         ($ydata[$i]-$ydata[$i-1])/($xdata[$i]-$xdata[$i-1]);
-	    $delta[$i] = (6.0*$delta[$i]/($xdata[$i+1]-$xdata[$i-1])-$s*$delta[$i-1])/$p;
-	}
-
-	// Backward substitution
-	for( $j=$n-2; $j >= 0; --$j ) {
-	    $this->y2[$j] = $this->y2[$j]*$this->y2[$j+1] + $delta[$j];
-	}
-    }
-
-    // Return the two new data vectors
-    function Get($num=50) {
-	$n = $this->n ;
-	$step = ($this->xdata[$n-1]-$this->xdata[0]) / ($num-1);
-	$xnew=array();
-	$ynew=array();
-	$xnew[0] = $this->xdata[0];
-	$ynew[0] = $this->ydata[0];
-	for( $j=1; $j < $num; ++$j ) {
-	    $xnew[$j] = $xnew[0]+$j*$step;
-	    $ynew[$j] = $this->Interpolate($xnew[$j]);
-	}
-	return array($xnew,$ynew);
-    }
-
-    // Return a single interpolated Y-value from an x value
-    function Interpolate($xpoint) {
-
-	$max = $this->n-1;
-	$min = 0;
-
-	// Binary search to find interval
-	while( $max-$min > 1 ) {
-	    $k = ($max+$min) / 2;
-	    if( $this->xdata[$k] > $xpoint ) 
-		$max=$k;
-	    else 
-		$min=$k;
-	}	
-
-	// Each interval is interpolated by a 3:degree polynom function
-	$h = $this->xdata[$max]-$this->xdata[$min];
-
-	if( $h == 0  ) {
-	    JpGraphError::RaiseL(19002);
-//('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.');
-	}
-
-
-	$a = ($this->xdata[$max]-$xpoint)/$h;
-	$b = ($xpoint-$this->xdata[$min])/$h;
-	return $a*$this->ydata[$min]+$b*$this->ydata[$max]+
-	     (($a*$a*$a-$a)*$this->y2[$min]+($b*$b*$b-$b)*$this->y2[$max])*($h*$h)/6.0;
-    }
-}
-
-//------------------------------------------------------------------------
-// CLASS Bezier
-// Create a new data array from a number of control points
-//------------------------------------------------------------------------
-class Bezier {
-/**
- * @author Thomas Despoix, openXtrem company
- * @license released under QPL
- * @abstract Bezier interoplated point generation,
- * computed from control points data sets, based on Paul Bourke algorithm :
- * http://astronomy.swin.edu.au/~pbourke/curves/bezier/
- */
-    var $datax = array();
-    var $datay = array();
-    var $n=0;
- 
-    function Bezier($datax, $datay, $attraction_factor = 1) {
-	// Adding control point multiple time will raise their attraction power over the curve   
-	$this->n = count($datax);
-	if( $this->n !== count($datay) ) {
-	    JpGraphError::RaiseL(19003);
-//('Bezier: Number of X and Y coordinates must be the same');
-	}
-	$idx=0;
-	foreach($datax as $datumx) {
-	    for ($i = 0; $i < $attraction_factor; $i++) {
-		$this->datax[$idx++] = $datumx;
-	    }
-	}
-   	$idx=0;
-	foreach($datay as $datumy) {
-	    for ($i = 0; $i < $attraction_factor; $i++) {
-		$this->datay[$idx++] = $datumy;
-	    }
-	}
-	$this->n *= $attraction_factor;
-    }
-
-    function Get($steps) {
-	$datax = array();
-	$datay = array();
-	for ($i = 0; $i < $steps; $i++) {
-	    list($datumx, $datumy) = $this->GetPoint((double) $i / (double) $steps);       
-	    $datax[] = $datumx;
-	    $datay[] = $datumy;
-	}
-   
-	$datax[] = end($this->datax);
-	$datay[] = end($this->datay);
-   
-	return array($datax, $datay);
-    }
- 
-    function GetPoint($mu) {
-	$n = $this->n - 1;
-	$k = 0;
-	$kn = 0;
-	$nn = 0;
-	$nkn = 0;
-	$blend = 0.0;
-	$newx = 0.0;
-	$newy = 0.0;
-
-	$muk = 1.0;
-	$munk = (double) pow(1-$mu,(double) $n);
-
-	for ($k = 0; $k <= $n; $k++) {
-	    $nn = $n;
-	    $kn = $k;
-	    $nkn = $n - $k;
-	    $blend = $muk * $munk;
-	    $muk *= $mu;
-	    $munk /= (1-$mu);
-	    while ($nn >= 1) {
-		$blend *= $nn;
-		$nn--;
-		if ($kn > 1) {
-		    $blend /= (double) $kn;
-		    $kn--;
-		}
-		if ($nkn > 1) {
-		    $blend /= (double) $nkn;
-		    $nkn--;
-		}
-	    }
-	    $newx += $this->datax[$k] * $blend;
-	    $newy += $this->datay[$k] * $blend;
-	}
-
-	return array($newx, $newy);
-    }
-}
-
-// EOF
-?>
diff --git a/nightly-test-server/jpgraph/jpgraph_scatter.php b/nightly-test-server/jpgraph/jpgraph_scatter.php
deleted file mode 100644
index 33f52b5..0000000
--- a/nightly-test-server/jpgraph/jpgraph_scatter.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php 
-/*=======================================================================
-// File:	JPGRAPH_SCATTER.PHP
-// Description: Scatter (and impuls) plot extension for JpGraph
-// Created: 	2001-02-11
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-require_once ('jpgraph_plotmark.inc');
-
-//===================================================
-// CLASS FieldArrow
-// Description: Draw an arrow at (x,y) with angle a
-//===================================================
-class FieldArrow {
-    var $iSize=10;  // Length in pixels for  arrow
-    var $iArrowSize = 2;
-    var $iColor='black';
-    var $isizespec = array(
-	array(2,1),array(3,2),array(4,3),array(6,4),array(7,4),array(8,5),array(10,6),array(12,7),array(16,8),array(20,10));
-    function FieldArrow() {
-    }
-
-    function SetSize($aSize,$aArrowSize=2) {
-	$this->iSize = $aSize;
-	$this->iArrowSize = $aArrowSize;
-    }
-
-    function SetColor($aColor) {
-	$this->iColor = $aColor;
-    }
-
-    function Stroke(&$aImg,$x,$y,$a) {
-	// First rotate the center coordinates
-	list($x,$y) = $aImg->Rotate($x,$y);
-
-	$old_origin = $aImg->SetCenter($x,$y);
-	$old_a = $aImg->a;
-	$aImg->SetAngle(-$a+$old_a);
-
-	$dx = round($this->iSize/2);
-	$c = array($x-$dx,$y,$x+$dx,$y);
-	$x += $dx;
-
-	list($dx,$dy) = $this->isizespec[$this->iArrowSize];
-	$ca = array($x,$y,$x-$dx,$y-$dy,$x-$dx,$y+$dy,$x,$y);
-
-	$aImg->SetColor($this->iColor);
-	$aImg->Polygon($c);
-	$aImg->FilledPolygon($ca);
-
-	$aImg->SetCenter($old_origin[0],$old_origin[1]);
-	$aImg->SetAngle($old_a);
-    }
-}
-
-//===================================================
-// CLASS FieldPlot
-// Description: Render a field plot
-//===================================================
-class FieldPlot extends Plot {
-    var $iAngles;
-    var $iCallback='';
-    function FieldPlot($datay,$datax,$angles) {
-	if( (count($datax) != count($datay)) )
-	    JpGraphError::RaiseL(20001);//("Fieldplots must have equal number of X and Y points.");
-	if( (count($datax) != count($angles)) )
-	    JpGraphError::RaiseL(20002);//("Fieldplots must have an angle specified for each X and Y points.");
-	
-	$this->iAngles = $angles;
-
-	$this->Plot($datay,$datax);
-	$this->value->SetAlign('center','center');
-	$this->value->SetMargin(15);
-
-	$this->arrow = new FieldArrow();
-    }
-
-    function SetCallback($aFunc) {
-	$this->iCallback = $aFunc;
-    }
-
-    function Stroke(&$img,&$xscale,&$yscale) {
-
-	// Remeber base color and size
-	$bc = $this->arrow->iColor;
-	$bs = $this->arrow->iSize;
-	$bas = $this->arrow->iArrowSize;
-
-	for( $i=0; $i<$this->numpoints; ++$i ) {
-	    // Skip null values
-	    if( $this->coords[0][$i]==="" )
-		continue;
-
-	    $f = $this->iCallback;
-	    if( $f != "" ) {
-		list($cc,$cs,$cas) = call_user_func($f,$this->coords[1][$i],$this->coords[0][$i],$this->iAngles[$i]);
-		// Fall back on global data if the callback isn't set
-		if( $cc  == "" ) $cc = $bc;
-		if( $cs  == "" ) $cs = $bs;
-		if( $cas == "" ) $cas = $bas;
-		//echo "f=$f, cc=$cc, cs=$cs, cas=$cas<br>";
-		$this->arrow->SetColor($cc);	    
-		$this->arrow->SetSize($cs,$cas);
-	    }
-
-	    $xt = $xscale->Translate($this->coords[1][$i]);
-	    $yt = $yscale->Translate($this->coords[0][$i]);	
-
-	    $this->arrow->Stroke($img,$xt,$yt,$this->iAngles[$i]);
-	    $this->value->Stroke($img,$this->coords[0][$i],$xt,$yt);
-	}
-    }
-	
-    // Framework function
-    function Legend(&$aGraph) {
-	if( $this->legend != "" ) {
-	    $aGraph->legend->Add($this->legend,$this->mark->fill_color,$this->mark,0,
-				 $this->legendcsimtarget,$this->legendcsimalt);
-	}
-    }	
-}
-
-//===================================================
-// CLASS ScatterPlot
-// Description: Render X and Y plots
-//===================================================
-class ScatterPlot extends Plot {
-    var $impuls = false;
-    var $linkpoints = false, $linkpointweight=1, $linkpointcolor="black";
-//---------------
-// CONSTRUCTOR
-    function ScatterPlot($datay,$datax=false) {
-	if( (count($datax) != count($datay)) && is_array($datax))
-	    JpGraphError::RaiseL(20003);//("Scatterplot must have equal number of X and Y points.");
-	$this->Plot($datay,$datax);
-	$this->mark = new PlotMark();
-	$this->mark->SetType(MARK_SQUARE);
-	$this->mark->SetColor($this->color);
-	$this->value->SetAlign('center','center');
-	$this->value->SetMargin(0);
-    }
-
-//---------------
-// PUBLIC METHODS	
-    function SetImpuls($f=true) {
-	$this->impuls = $f;
-    }   
-
-    // Combine the scatter plot points with a line
-    function SetLinkPoints($aFlag=true,$aColor="black",$aWeight=1) {
-	$this->linkpoints=$aFlag;
-	$this->linkpointcolor=$aColor;
-	$this->linkpointweight=$aWeight;
-    }
-
-    function Stroke(&$img,&$xscale,&$yscale) {
-
-	$ymin=$yscale->scale_abs[0];
-	if( $yscale->scale[0] < 0 )
-	    $yzero=$yscale->Translate(0);
-	else
-	    $yzero=$yscale->scale_abs[0];
-	    
-	$this->csimareas = '';
-	for( $i=0; $i<$this->numpoints; ++$i ) {
-
-	    // Skip null values
-	    if( $this->coords[0][$i]==="" || $this->coords[0][$i]==='-' || $this->coords[0][$i]==='x')
-		continue;
-
-	    if( isset($this->coords[1]) )
-		$xt = $xscale->Translate($this->coords[1][$i]);
-	    else
-		$xt = $xscale->Translate($i);
-	    $yt = $yscale->Translate($this->coords[0][$i]);	
-
-
-	    if( $this->linkpoints && isset($yt_old) ) {
-		$img->SetColor($this->linkpointcolor);
-		$img->SetLineWeight($this->linkpointweight);
-		$img->Line($xt_old,$yt_old,$xt,$yt);
-	    }
-
-	    if( $this->impuls ) {
-		$img->SetColor($this->color);
-		$img->SetLineWeight($this->weight);
-		$img->Line($xt,$yzero,$xt,$yt);
-	    }
-	
-	    if( !empty($this->csimtargets[$i]) ) {
-	        $this->mark->SetCSIMTarget($this->csimtargets[$i]);
-	        $this->mark->SetCSIMAlt($this->csimalts[$i]);
-	    }
-	    
-	    if( isset($this->coords[1]) ) {
-		$this->mark->SetCSIMAltVal($this->coords[0][$i],$this->coords[1][$i]);
-	    }
-	    else {
-		$this->mark->SetCSIMAltVal($this->coords[0][$i],$i);
-	    }
-
-	    $this->mark->Stroke($img,$xt,$yt);
-	
-	    $this->csimareas .= $this->mark->GetCSIMAreas();
-	    $this->value->Stroke($img,$this->coords[0][$i],$xt,$yt);
-
-	    $xt_old = $xt;
-	    $yt_old = $yt;
-	}
-    }
-	
-    // Framework function
-    function Legend(&$aGraph) {
-	if( $this->legend != "" ) {
-	    $aGraph->legend->Add($this->legend,$this->mark->fill_color,$this->mark,0,
-				 $this->legendcsimtarget,$this->legendcsimalt);
-	}
-    }	
-} // Class
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_stock.php b/nightly-test-server/jpgraph/jpgraph_stock.php
deleted file mode 100644
index 57084d2..0000000
--- a/nightly-test-server/jpgraph/jpgraph_stock.php
+++ /dev/null
@@ -1,183 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_STOCK.PHP
-// Description:	Stock plot extension for JpGraph
-// Created: 	2003-01-27
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS StockPlot
-//===================================================
-class StockPlot extends Plot {
-    var $iTupleSize = 4;
-    var $iWidth=9;
-    var $iEndLines=1;
-    var $iStockColor1='white',$iStockColor2='darkred',$iStockColor3='darkred';
-//---------------
-// CONSTRUCTOR
-    function StockPlot(&$datay,$datax=false) {
-	if( count($datay) % $this->iTupleSize ) {
-	    JpGraphError::RaiseL(21001,$this->iTupleSize);//('Data values for Stock charts must contain an even multiple of '.$this->iTupleSize.' data points.');
-	}
-	$this->Plot($datay,$datax);
-	$this->numpoints /= $this->iTupleSize;
-    }
-//---------------
-// PUBLIC METHODS
-	
-    function SetColor($aColor,$aColor1='white',$aColor2='darkred',$aColor3='darkred') {
-	$this->color = $aColor;
-	$this->iStockColor1 = $aColor1;
-	$this->iStockColor2 = $aColor2;
-	$this->iStockColor3 = $aColor3;
-    }
-
-    function SetWidth($aWidth) {
-	// Make sure it's odd
-	$this->iWidth = 2*floor($aWidth/2)+1;
-    }
-
-    function HideEndLines($aHide=true) {
-	$this->iEndLines = !$aHide;
-    }
-
-    // Gets called before any axis are stroked
-    function PreStrokeAdjust(&$graph) {
-	if( $this->center ) {
-	    $a=0.5; $b=0.5;
-	    $this->numpoints++;
-	} else {
-	    $a=0; $b=0;
-	}
-	$graph->xaxis->scale->ticks->SetXLabelOffset($a);
-	$graph->SetTextScaleOff($b);						
-    }
-	
-    // Stroke stock plot
-    function Stroke(&$img,$xscale,$yscale) {
-	$n=$this->numpoints;
-	if( $this->center ) $n--;
-	if( isset($this->coords[1]) ) {
-	    if( count($this->coords[1])!=$n )
-		JpGraphError::RaiseL(2003,count($this->coords[1]),$numpoints);
-//("Number of X and Y points are not equal. Number of X-points:".count($this->coords[1])." Number of Y-points:$numpoints");
-	    else
-		$exist_x = true;
-	}
-	else 
-	    $exist_x = false;
-
-	if( $exist_x )
-	    $xs=$this->coords[1][0];
-	else
-	    $xs=0;
-		
-	$ts = $this->iTupleSize;
-	$this->csimareas = '';
-	for( $i=0; $i<$n; ++$i) {
-
-	    //If value is NULL, then don't draw a bar at all
- 	    if ($this->coords[0][$i] === null) continue;
-
-	    if( $exist_x ) $x=$this->coords[1][$i];
-	    else $x=$i;
-	    $xt = $xscale->Translate($x);
-	    
-	    $neg = $this->coords[0][$i*$ts] > $this->coords[0][$i*$ts+1] ;
-	    $yopen  = $yscale->Translate($this->coords[0][$i*$ts]);
-	    $yclose = $yscale->Translate($this->coords[0][$i*$ts+1]);
-	    $ymin   = $yscale->Translate($this->coords[0][$i*$ts+2]);
-	    $ymax   = $yscale->Translate($this->coords[0][$i*$ts+3]);
-
-	    $dx = floor($this->iWidth/2);
-	    $xl = $xt - $dx;
-	    $xr = $xt + $dx;
-
-	    if( $neg ) 
-		$img->SetColor($this->iStockColor3);
-	    else
-		$img->SetColor($this->iStockColor1);
-	    $img->FilledRectangle($xl,$yopen,$xr,$yclose);
-	    $img->SetLineWeight($this->weight);
-	    if( $neg ) 
-		$img->SetColor($this->iStockColor2);
-	    else
-		$img->SetColor($this->color);
-	
-	    $img->Rectangle($xl,$yopen,$xr,$yclose);
-
-	    if( $yopen < $yclose ) {
-		$ytop = $yopen ;
-		$ybottom = $yclose ;
-	    }
-	    else {
-		$ytop = $yclose ;
-		$ybottom = $yopen ;
-	    }
-	    $img->SetColor($this->color);
-	    $img->Line($xt,$ytop,$xt,$ymax);
-	    $img->Line($xt,$ybottom,$xt,$ymin);
-
-	    if( $this->iEndLines ) {
-		$img->Line($xl,$ymax,$xr,$ymax);
-		$img->Line($xl,$ymin,$xr,$ymin);
-	    }
-
-	    // A chance for subclasses to add things to the bar
-	    // for data point i
-	    $this->ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg);
-
-	    // Setup image maps
-	    if( !empty($this->csimtargets[$i]) ) {
-		$this->csimareas.= '<area shape="rect" coords="'.
-		    round($xl).','.round($ytop).','.
-		    round($xr).','.round($ybottom).'" ';   
-		$this->csimareas .= ' href="'.$this->csimtargets[$i].'"';
-		if( !empty($this->csimalts[$i]) ) {
-		    $sval=$this->csimalts[$i];
-		    $this->csimareas .= " title=\"$sval\" ";
-		}
-		$this->csimareas.= " alt=\"$sval\" />\n";
-	    }
-	}			
-	return true;
-    }
-
-    // A hook for subclasses to modify the plot
-    function ModBox($img,$xscale,$yscale,$i,$xl,$xr,$neg) {}
-
-} // Class
-
-//===================================================
-// CLASS BoxPlot
-//===================================================
-class BoxPlot extends StockPlot {
-    var $iPColor='black',$iNColor='white';
-    function BoxPlot($datay,$datax=false) {
-	$this->iTupleSize=5;
-	parent::StockPlot($datay,$datax);
-    }
-
-    function SetMedianColor($aPos,$aNeg) {
-	$this->iPColor = $aPos;
-	$this->iNColor = $aNeg;
-    }
-
-    function ModBox(&$img,$xscale,$yscale,$i,$xl,$xr,$neg) {
-	if( $neg ) 
-	    $img->SetColor($this->iNColor);
-	else
-	    $img->SetColor($this->iPColor);
-	
-	$y = $yscale->Translate($this->coords[0][$i*5+4]);
-	$img->Line($xl,$y,$xr,$y);
-    }
-}
-
-/* EOF */
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/jpgraph_utils.inc b/nightly-test-server/jpgraph/jpgraph_utils.inc
deleted file mode 100644
index 60ef1a1..0000000
--- a/nightly-test-server/jpgraph/jpgraph_utils.inc
+++ /dev/null
@@ -1,520 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	JPGRAPH_UTILS.INC
-// Description: Collection of non-essential "nice to have" utilities 
-// Created: 	2005-11-20
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-//===================================================
-// CLASS FuncGenerator
-// Description: Utility class to help generate data for function plots. 
-// The class supports both parametric and regular functions.
-//===================================================
-class FuncGenerator {
-    var $iFunc='',$iXFunc='',$iMin,$iMax,$iStepSize;
-	
-    function FuncGenerator($aFunc,$aXFunc='') {
-	$this->iFunc = $aFunc;
-	$this->iXFunc = $aXFunc;
-    }
-	
-    function E($aXMin,$aXMax,$aSteps=50) {
-	$this->iMin = $aXMin;
-	$this->iMax = $aXMax;
-	$this->iStepSize = ($aXMax-$aXMin)/$aSteps;
-
-	if( $this->iXFunc != '' )
-	    $t = 'for($i='.$aXMin.'; $i<='.$aXMax.'; $i += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]='.$this->iXFunc.';}';
-	elseif( $this->iFunc != '' )
-	    $t = 'for($x='.$aXMin.'; $x<='.$aXMax.'; $x += '.$this->iStepSize.') {$ya[]='.$this->iFunc.';$xa[]=$x;} $x='.$aXMax.';$ya[]='.$this->iFunc.';$xa[]=$x;';
-	else
-	    JpGraphError::RaiseL(24001);//('FuncGenerator : No function specified. ');
-			
-	@eval($t);
-		
-	// If there is an error in the function specifcation this is the only
-	// way we can discover that.
-	if( empty($xa) || empty($ya) )
-	    JpGraphError::RaiseL(24002);//('FuncGenerator : Syntax error in function specification ');
-				
-	return array($xa,$ya);
-    }
-}
-
-//=============================================================================
-// CLASS SymChar
-// Description: Code values for some commonly used characters that 
-//              normally isn't available directly on the keyboard, for example
-//              mathematical and greek symbols.
-//=============================================================================
-class  SymChar {
-    function Get($aSymb,$aCapital=FALSE) {
-        static $iSymbols = array(
-    /* Greek */
-	array('alpha','03B1','0391'),
-	array('beta','03B2','0392'),
-	array('gamma','03B3','0393'),
-	array('delta','03B4','0394'),
-	array('epsilon','03B5','0395'),
-	array('zeta','03B6','0396'),
-	array('ny','03B7','0397'),
-	array('eta','03B8','0398'),
-	array('theta','03B8','0398'),
-	array('iota','03B9','0399'),
-	array('kappa','03BA','039A'),
-	array('lambda','03BB','039B'),
-	array('mu','03BC','039C'),
-	array('nu','03BD','039D'),
-	array('xi','03BE','039E'),
-	array('omicron','03BF','039F'),
-	array('pi','03C0','03A0'),
-	array('rho','03C1','03A1'),
-	array('sigma','03C3','03A3'),
-	array('tau','03C4','03A4'),
-	array('upsilon','03C5','03A5'),
-	array('phi','03C6','03A6'),
-	array('chi','03C7','03A7'),
-	array('psi','03C8','03A8'),
-	array('omega','03C9','03A9'),
-    /* Money */
-	array('euro','20AC'),
-	array('yen','00A5'),
-	array('pound','20A4'),
-    /* Math */
-	array('approx','2248'),
-	array('neq','2260'),
-	array('not','2310'),
-	array('def','2261'),
-	array('inf','221E'),
-	array('sqrt','221A'),
-	array('int','222B'),
-    /* Misc */
-	array('copy','00A9'),
-	array('para','00A7'));
-
-	$n = count($iSymbols);
-	$i=0;
-	$found = false;
-	$aSymb = strtolower($aSymb);
-	while( $i < $n && !$found ) {
-	    $found = $aSymb === $iSymbols[$i++][0];
-	}
-	if( $found ) {
-	    $ca = $iSymbols[--$i];
-	    if( $aCapital && count($ca)==3 ) 
-		$s = $ca[2];
-	    else
-		$s = $ca[1];
-	    return sprintf('&#%04d;',hexdec($s));
-	}
-	else
-	    return '';
-    }
-}
-
-
-//=============================================================================
-// CLASS DateScaleUtils
-// Description: Help to create a manual date scale
-//=============================================================================
-DEFINE('DSUTILS_MONTH',1); // Major and minor ticks on a monthly basis
-DEFINE('DSUTILS_MONTH1',1); // Major and minor ticks on a monthly basis
-DEFINE('DSUTILS_MONTH2',2); // Major ticks on a bi-monthly basis
-DEFINE('DSUTILS_MONTH3',3); // Major icks on a tri-monthly basis
-DEFINE('DSUTILS_MONTH6',4); // Major on a six-monthly basis
-DEFINE('DSUTILS_WEEK1',5); // Major ticks on a weekly basis
-DEFINE('DSUTILS_WEEK2',6); // Major ticks on a bi-weekly basis
-DEFINE('DSUTILS_WEEK4',7); // Major ticks on a quod-weekly basis
-DEFINE('DSUTILS_DAY1',8); // Major ticks on a daily basis
-DEFINE('DSUTILS_DAY2',9); // Major ticks on a bi-daily basis
-DEFINE('DSUTILS_DAY4',10); // Major ticks on a qoud-daily basis
-DEFINE('DSUTILS_YEAR1',11); // Major ticks on a yearly basis
-DEFINE('DSUTILS_YEAR2',12); // Major ticks on a bi-yearly basis
-DEFINE('DSUTILS_YEAR5',13); // Major ticks on a five-yearly basis
-
-
-class DateScaleUtils {
-    var $starthour,$startmonth, $startday, $startyear;
-    var $endmonth, $endyear, $endday;
-    var $tickPositions=array(),$minTickPositions=array();
-    var $iUseWeeks = true;
-
-    function UseWeekFormat($aFlg) {
-	$this->iUseWeeks = $aFlg;
-    }
-
-    function doYearly($aType,$aMinor=false) {
-	$i=0; $j=0;
-	$m = $this->startmonth;
-	$y = $this->startyear;
-
-	if( $this->startday == 1 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-	}
-	++$m;
-
-	switch( $aType ) {
-	    case DSUTILS_YEAR1:
-		for($y=$this->startyear; $y <= $this->endyear; ++$y ) {
-		    if( $aMinor ) {
-			while( $m <= 12 ) {
-			    if( !($y == $this->endyear && $m > $this->endmonth) ) {
-				$this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			    }
-			    ++$m;
-			}
-			$m=1;
-		    }
-		    $this->tickPositions[$i++] = mktime(0,0,0,1,1,$y);    
-		}
-		break;
-	    case DSUTILS_YEAR2:
-		$y=$this->startyear; 
-		while( $y <= $this->endyear ) {
-		    $this->tickPositions[$i++] = mktime(0,0,0,1,1,$y);    
-		    for($k=0; $k < 1; ++$k ) { 
-			++$y;
-			if( $aMinor ) {
-			    $this->minTickPositions[$j++] = mktime(0,0,0,1,1,$y);
-			}
-		    }
-		    ++$y;
-		}
-		break;
-	    case DSUTILS_YEAR5:
-		$y=$this->startyear; 
-		while( $y <= $this->endyear ) {
-		    $this->tickPositions[$i++] = mktime(0,0,0,1,1,$y);    
-		    for($k=0; $k < 4; ++$k ) { 
-			++$y;
-			if( $aMinor ) {
-			    $this->minTickPositions[$j++] = mktime(0,0,0,1,1,$y);
-			}
-		    }
-		    ++$y;
-		}
-		break;
-	}
-    }
-
-    function doDaily($aType,$aMinor=false) {
-	$m = $this->startmonth;
-	$y = $this->startyear;
-	$d = $this->startday;
-	$h = $this->starthour;
-	$i=0;$j=0;
-
-	if( $h == 0 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,$d,$y);
-	    $t = mktime(0,0,0,$m,$d,$y);	    
-	}
-	else {
-	    $t = mktime(0,0,0,$m,$d,$y);	    
-	}
-	switch($aType) {
-	    case DSUTILS_DAY1:
-		while( $t <= $this->iMax ) {
-		    $t += 3600*24;
-		    $this->tickPositions[$i++] = $t;
-		}
-		break;
-	    case DSUTILS_DAY2:
-		while( $t <= $this->iMax ) {
-		    $t += 3600*24;
-		    if( $aMinor ) {
-			$this->minTickPositions[$j++] = $t;
-		    }
-		    $t += 3600*24;
-		    $this->tickPositions[$i++] = $t;
-		}
-		break;
-	    case DSUTILS_DAY4:
-		while( $t <= $this->iMax ) {
-		    for($k=0; $k < 3; ++$k ) {
-			$t += 3600*24;
-			if( $aMinor ) {
-			    $this->minTickPositions[$j++] = $t;
-			}
-		    }
-		    $t += 3600*24;
-		    $this->tickPositions[$i++] = $t;
-		}
-		break;
-	}
-    }
-
-    function doWeekly($aType,$aMinor=false) {
-	$hpd = 3600*24;
-	$hpw = 3600*24*7;
-	// Find out week number of min date
-	$thursday = $this->iMin + $hpd * (3 - (date('w', $this->iMin) + 6) % 7);
-	$week = 1 + (date('z', $thursday) - (11 - date('w', mktime(0, 0, 0, 1, 1, date('Y', $thursday)))) % 7) / 7;
-	$daynumber = date('w',$this->iMin);
-	if( $daynumber == 0 ) $daynumber = 7;
-	$m = $this->startmonth;
-	$y = $this->startyear;
-	$d = $this->startday;
-	$i=0;$j=0;
-	// The assumption is that the weeks start on Monday. If the first day
-	// is later in the week then the first week tick has to be on the following
-	// week.
-	if( $daynumber == 1 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,$d,$y);
-	    $t = mktime(0,0,0,$m,$d,$y) + $hpw;
-	}
-	else {
-	    $t = mktime(0,0,0,$m,$d,$y) + $hpd*(8-$daynumber);
-	}
-
-	switch($aType) {
-	    case DSUTILS_WEEK1:
-		$cnt=0;
-		break;
-	    case DSUTILS_WEEK2:
-		$cnt=1;
-		break;
-	    case DSUTILS_WEEK4:
-		$cnt=3;
-		break;
-	}
-	while( $t <= $this->iMax ) {
-	    $this->tickPositions[$i++] = $t;
-	    for($k=0; $k < $cnt; ++$k ) {
-		$t += $hpw;
-		if( $aMinor ) {
-		    $this->minTickPositions[$j++] = $t;
-		}
-	    }
-	    $t += $hpw;
-	}
-    }
-
-    function doMonthly($aType,$aMinor=false) {
-	$monthcount=0;
-	$m = $this->startmonth;
-	$y = $this->startyear;
-	$i=0; $j=0;
-
-	// Skip the first month label if it is before the startdate
-	if( $this->startday == 1 ) {
-	    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-	    $monthcount=1;
-	}
-	if( $aType == 1 ) {
-	    if( $this->startday < 15 ) {
-		$this->minTickPositions[$j++] = mktime(0,0,0,$m,15,$y);
-	    }
-	}
-	++$m;
-
-	// Loop through all the years included in the scale
-	for($y=$this->startyear; $y <= $this->endyear; ++$y ) {
-	    // Loop through all the months. There are three cases to consider:
-	    // 1. We are in the first year and must start with the startmonth
-	    // 2. We are in the end year and we must stop at last month of the scale
-	    // 3. A year in between where we run through all the 12 months
-	    $stopmonth = $y == $this->endyear ? $this->endmonth : 12;
-	    while( $m <= $stopmonth ) {
-		switch( $aType ) {
-		    case DSUTILS_MONTH1: 
-			// Set minor tick at the middle of the month
-			if( $aMinor ) {
-			    if( $m <= $stopmonth ) {
-				if( !($y==$this->endyear && $m==$stopmonth && $this->endday < 15) ) 
-				$this->minTickPositions[$j++] = mktime(0,0,0,$m,15,$y);
-			    }
-			}
-			// Major at month 
-			// Get timestamp of first hour of first day in each month
-			$this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-
-			break;
-		    case DSUTILS_MONTH2: 
-			if( $aMinor ) {
-			    // Set minor tick at start of each month
-			    $this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			}
-
-			// Major at every second month 
-			// Get timestamp of first hour of first day in each month
-			if( $monthcount % 2 == 0 ) {
-			    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-			}
-			break;
-		    case DSUTILS_MONTH3: 
-			if( $aMinor ) {
-			    // Set minor tick at start of each month
-			    $this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			}
-			    // Major at every third month 
-			// Get timestamp of first hour of first day in each month
-			if( $monthcount % 3 == 0 ) {
-			    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-			}
-			break;
-		    case DSUTILS_MONTH6: 
-			if( $aMinor ) {
-			    // Set minor tick at start of each month
-			    $this->minTickPositions[$j++] = mktime(0,0,0,$m,1,$y);
-			}
-			// Major at every third month 
-			// Get timestamp of first hour of first day in each month
-			if( $monthcount % 6 == 0 ) {
-			    $this->tickPositions[$i++] = mktime(0,0,0,$m,1,$y);
-			}
-			break;
-		}
-		++$m;
-		++$monthcount;
-	    }
-	    $m=1;
-	}
-
-	// For the case where all dates are within the same month
-	// we want to make sure we have at least two ticks on the scale
-	// since the scale want work properly otherwise
-	if($this->startmonth == $this->endmonth && $this->startyear == $this->endyear && $aType==1 ) {
-	    $this->tickPositions[$i++] = mktime(0 ,0 ,0, $this->startmonth + 1, 1, $this->startyear);
-	} 
-
-	return array($this->tickPositions,$this->minTickPositions);
-    }
-
-    function GetTicks($aData,$aType=1,$aMinor=false,$aEndPoints=false) {
-	$n = count($aData);
-	return $this->GetTicksFromMinMax($aData[0],$aData[$n-1],$aType,$aMinor,$aEndPoints);
-    }
-
-    function GetAutoTicks($aMin,$aMax,$aMaxTicks=10,$aMinor=false) {
-	$diff = $aMax - $aMin;
-	$spd = 3600*24;
-	$spw = $spd*7;
-	$spm = $spd*30;
-	$spy = $spd*352;
-
-	if( $this->iUseWeeks )
-	    $w = 'W';
-	else
-	    $w = 'd M';
-
-	// Decision table for suitable scales
-	// First value: Main decision point
-	// Second value: Array of formatting depending on divisor for wanted max number of ticks. <divisor><formatting><format-string>,..
-	$tt = array( 
-	    array($spw, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',-1,DSUTILS_DAY4,'d M')),
-	    array($spm, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',4,DSUTILS_DAY4,'d M',
-			      7,DSUTILS_WEEK1,$w,-1,DSUTILS_WEEK2,$w)),
-	    array($spy, array(1,DSUTILS_DAY1,'d M',2,DSUTILS_DAY2,'d M',4,DSUTILS_DAY4,'d M',
-			      7,DSUTILS_WEEK1,$w,14,DSUTILS_WEEK2,$w,
-			      30,DSUTILS_MONTH1,'M',60,DSUTILS_MONTH2,'M',-1,DSUTILS_MONTH3,'M')),
-	    array(-1, array(30,DSUTILS_MONTH1,'M-Y',60,DSUTILS_MONTH2,'M-Y',90,DSUTILS_MONTH3,'M-Y',
-			    180,DSUTILS_MONTH6,'M-Y',352,DSUTILS_YEAR1,'Y',704,DSUTILS_YEAR2,'Y',-1,DSUTILS_YEAR5,'Y')));
-
-	$ntt = count($tt);
-	$nd = floor($diff/$spd);
-	for($i=0; $i < $ntt; ++$i ) {
-	    if( $diff <= $tt[$i][0] || $i==$ntt-1) {
-		$t = $tt[$i][1];
-		$n = count($t)/3;
-		for( $j=0; $j < $n; ++$j ) {
-		    if( $nd/$t[3*$j] <= $aMaxTicks || $j==$n-1) {
-			$type = $t[3*$j+1];
-			$fs = $t[3*$j+2];
-			list($tickPositions,$minTickPositions) = $this->GetTicksFromMinMax($aMin,$aMax,$type,$aMinor);
-			return array($fs,$tickPositions,$minTickPositions,$type);
-		    }
-		}
-	    }
-	}
-    }
-
-    function GetTicksFromMinMax($aMin,$aMax,$aType,$aMinor=false,$aEndPoints=false) {
-	$this->starthour = date('G',$aMin);
-	$this->startmonth = date('n',$aMin);
-	$this->startday = date('j',$aMin);
-	$this->startyear = date('Y',$aMin);
-	$this->endmonth = date('n',$aMax);
-	$this->endyear = date('Y',$aMax);
-	$this->endday = date('j',$aMax);
-	$this->iMin = $aMin;
-	$this->iMax = $aMax;
-
-	if( $aType <= DSUTILS_MONTH6 ) {
-	    $this->doMonthly($aType,$aMinor);
-	}
-	elseif( $aType <= DSUTILS_WEEK4 ) {
-	    $this->doWeekly($aType,$aMinor);
-	}
-	elseif( $aType <= DSUTILS_DAY4 ) {
-	    $this->doDaily($aType,$aMinor);
-	}
-	elseif( $aType <= DSUTILS_YEAR5 ) {
-	    $this->doYearly($aType,$aMinor);
-	}
-	else {
-	    JpGraphError::RaiseL(24003);
-	}
-	// put a label at the very left data pos
-	if( $aEndPoints ) {
-	    $tickPositions[$i++] = $aData[0];
-	}
-
-	// put a label at the very right data pos
-	if( $aEndPoints ) {
-	    $tickPositions[$i] = $aData[$n-1];
-	}
-
-	return array($this->tickPositions,$this->minTickPositions);
-    }
-
-}
-
-//=============================================================================
-// Class ReadFileData
-//=============================================================================
-Class ReadFileData {
-
-    //----------------------------------------------------------------------------
-    // Desciption:
-    // Read numeric data from a file. 
-    // Each value should be separated by either a new line or by a specified 
-    // separator character (default is ',').
-    // Before returning the data each value is converted to a proper float 
-    // value. The routine is robust in the sense that non numeric data in the 
-    // file will be discarded.
-    //
-    // Returns: 
-    // The number of data values read on success, FALSE on failure
-    //----------------------------------------------------------------------------
-    function FromCSV($aFile,&$aData,$aSepChar=',',$aMaxLineLength=1024) {
-	$rh = fopen($aFile,'r');
-	if( $rh === false )
-	    return false;
-	$tmp = array();
-	$lineofdata = fgetcsv($rh, 1000, ',');
-	while ( $lineofdata !== FALSE) {
-	    $tmp = array_merge($tmp,$lineofdata);
-	    $lineofdata = fgetcsv($rh, $aMaxLineLength, $aSepChar);
-	}
-	fclose($rh);
-
-	// Now make sure that all data is numeric. By default
-	// all data is read as strings
-	$n = count($tmp);
-	$aData = array();
-	$cnt=0;
-	for($i=0; $i < $n; ++$i) {
-	    if( $tmp[$i] !== "" ) {
-		$aData[$cnt++] = floatval($tmp[$i]);
-	    }
-	}
-	return $cnt;
-    }
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/jpgraph/lang/de.inc.php b/nightly-test-server/jpgraph/lang/de.inc.php
deleted file mode 100644
index 7f53a3a..0000000
--- a/nightly-test-server/jpgraph/lang/de.inc.php
+++ /dev/null
@@ -1,498 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	DE.INC.PHP
-// Description: German language file for error messages
-// Created: 	2006-03-06
-// Author:	Timo Leopold (timo@leopold-hh.de)
-// Ver:		$Id$
-//
-// Copyright (c)
-//========================================================================
-*/
-
-// Notiz: Das Format fuer jede Fehlermeldung ist array(<Fehlermeldung>,<Anzahl der Argumente>)
-$_jpg_messages = array(
-
-/*
-** Headers wurden bereits gesendet - Fehler. Dies wird als HTML formatiert, weil es direkt als text zurueckgesendet wird
-*/
-10  => array('<table border="1"><tr><td style="color:darkred;font-size:1.2em;"><b>JpGraph Fehler:</b>
-HTTP header wurden bereits gesendet.<br>Fehler in der Datei <b>%s</b> in der Zeile <b>%d</b>.</td></tr><tr><td><b>Erklärung:</b><br>HTTP header wurden bereits zum Browser gesendet, wobei die Daten als Text gekennzeichnet wurden, bevor die Bibliothek die Chance hatte, seinen Bild-HTTP-Header zum Browser zu schicken. Dies verhindert, dass die Bibliothek Bilddaten zum Browser schicken kann (weil sie vom Browser als Text interpretiert würden und daher nur Mist dargestellt würde).<p>Wahrscheinlich steht Text im Skript bevor <i>Graph::Stroke()</i> aufgerufen wird. Wenn dieser Text zum Browser gesendet wird, nimmt dieser an, dass die gesamten Daten aus Text bestehen. Such nach irgendwelchem Text, auch nach Leerzeichen und Zeilenumbrüchen, die eventuell bereits zum Browser gesendet wurden. <p>Zum Beispiel ist ein oft auftretender Fehler, eine Leerzeile am Anfang der Datei oder vor <i>Graph::Stroke()</i> zu lassen."<b>&lt;?php</b>".</td></tr></table>',2),
-
-/*
-** Setup Fehler
-*/
-11 => array('Es wurde kein Pfad für CACHE_DIR angegeben. Bitte gib einen Pfad CACHE_DIR in der Datei jpg-config.inc an.',0),
-12 => array('Es wurde kein Pfad für TTF_DIR angegeben und der Pfad kann nicht automatisch ermittelt werden. Bitte gib den Pfad in der Datei jpg-config.inc an.',0),
-13 => array('The installed PHP version (%s) is not compatible with this release of the library. The library requires at least PHP version %s',2),
-
-/*
-**  jpgraph_bar
-*/
-
-2001 => array('Die Anzahl der Farben ist nicht gleich der Anzahl der Vorlagen in BarPlot::SetPattern().',0),
-2002 => array('Unbekannte Vorlage im Aufruf von BarPlot::SetPattern().',0),
-2003 => array('Anzahl der X- und Y-Koordinaten sind nicht identisch. Anzahl der X-Koordinaten: %d; Anzahl der Y-Koordinaten: %d.',2),
-2004 => array('Alle Werte für ein Balkendiagramm (barplot) müssen numerisch sein. Du hast den Wert nr [%d] == %s angegeben.',2),
-2005 => array('Du hast einen leeren Vektor für die Schattierungsfarben im Balkendiagramm (barplot) angegeben.',0),
-2006 => array('Unbekannte Position für die Werte der Balken: %s.',1),
-2007 => array('Kann GroupBarPlot nicht aus einem leeren Vektor erzeugen.',0),
-2008 => array('GroupBarPlot Element nbr %d wurde nicht definiert oder ist leer.',0),
-2009 => array('Eins der Objekte, das an GroupBar weitergegeben wurde ist kein Balkendiagramm (BarPlot). Versichere Dich, dass Du den GroupBarPlot aus einem Vektor von Balkendiagrammen (barplot) oder AccBarPlot-Objekten erzeugst. (Class = %s)',1),
-2010 => array('Kann AccBarPlot nicht aus einem leeren Vektor erzeugen.',0),
-2011 => array('AccBarPlot-Element nbr %d wurde nicht definiert oder ist leer.',1),
-2012 => array('Eins der Objekte, das an AccBar weitergegeben wurde ist kein Balkendiagramm (barplot). Versichere Dich, dass Du den AccBar-Plot aus einem Vektor von Balkendiagrammen (barplot) erzeugst. (Class=%s)',1),
-2013 => array('Du hast einen leeren Vektor für die Schattierungsfarben im Balkendiagramm (barplot) angegeben.',0),
-2014 => array('Die Anzahl der Datenpunkte jeder Datenreihe in AccBarPlot muss gleich sein.',0),
-
-
-/*
-**  jpgraph_date
-*/
-
-3001 => array('Es ist nur möglich, entweder SetDateAlign() oder SetTimeAlign() zu benutzen, nicht beides!',0),
-
-/*
-**  jpgraph_error
-*/
-
-4002 => array('Fehler bei den Eingabedaten von LineErrorPlot. Die Anzahl der Datenpunkte mus ein Mehrfaches von drei sein!',0),
-
-/*
-**  jpgraph_flags
-*/
-
-5001 => array('Unbekannte Flaggen-Größe (%d).',1),
-5002 => array('Der Flaggen-Index %s existiert nicht.',1),
-5003 => array('Es wurde eine ungültige Ordnungszahl (%d) für den Flaggen-Index angegeben.',1),
-5004 => array('Der Landesname %s hat kein korrespondierendes Flaggenbild. Die Flagge mag existieren, abr eventuell unter einem anderen Namen, z.B. versuche "united states" statt "usa".',1),
-
-
-/*
-**  jpgraph_gantt
-*/
-
-6001 => array('Interner Fehler. Die Höhe für ActivityTitles ist < 0.',0),
-6002 => array('Es dürfen keine negativen Werte für die Gantt-Diagramm-Dimensionen angegeben werden. Verwende 0, wenn die Dimensionen automatisch ermittelt werden sollen.',0),
-6003 => array('Ungültiges Format für den Bedingungs-Parameter bei Index=%d in CreateSimple(). Der Parameter muss bei index 0 starten und Vektoren in der Form (Row,Constrain-To,Constrain-Type) enthalten.',1),
-6004 => array('Ungültiges Format für den Fortschritts-Parameter bei Index=%d in CreateSimple(). Der Parameter muss bei Index 0 starten und Vektoren in der Form (Row,Progress) enthalten.',1),
-6005 => array('SetScale() ist nicht sinnvoll bei Gantt-Diagrammen.',0),
-6006 => array('Das Gantt-Diagramm kann nicht automatisch skaliert werden. Es existieren keine Aktivitäten mit Termin. [GetBarMinMax() start >= n]',0),
-6007 => array('Plausibiltätsprüfung für die automatische Gantt-Diagramm-Größe schlug fehl. Entweder die Breite (=%d) oder die Höhe (=%d) ist größer als MAX_GANTTIMG_SIZE. Dies kann möglicherweise durch einen falschen Wert bei einer Aktivität hervorgerufen worden sein.',2),
-6008 => array('Du hast eine Bedingung angegeben von Reihe=%d bis Reihe=%d, die keine Aktivität hat.',2),
-6009 => array('Unbekannter Bedingungstyp von Reihe=%d bis Reihe=%d',2),
-6010 => array('Ungültiger Icon-Index für das eingebaute Gantt-Icon [%d]',1),
-6011 => array('Argument für IconImage muss entweder ein String oder ein Integer sein.',0),
-6012 => array('Unbekannter Typ bei der Gantt-Objekt-Title-Definition.',0),
-6015 => array('Ungültige vertikale Position %d',1),
-6016 => array('Der eingegebene Datums-String (%s) für eine Gantt-Aktivität kann nicht interpretiert werden. Versichere Dich, dass es ein gültiger Datumsstring ist, z.B. 2005-04-23 13:30',1),
-6017 => array('Unbekannter Datumstyp in GanttScale (%s).',1),
-6018 => array('Intervall für Minuten muss ein gerader Teiler einer Stunde sein, z.B. 1,5,10,12,15,20,30, etc. Du hast ein Intervall von %d Minuten angegeben.',1),
-6019 => array('Die vorhandene Breite (%d) für die Minuten ist zu klein, um angezeigt zu werden. Bitte benutze die automatische Größenermittlung oder vergrößere die Breite des Diagramms.',1),
-6020 => array('Das Intervall für die Stunden muss ein gerader Teiler eines Tages sein, z.B. 0:30, 1:00, 1:30, 4:00, etc. Du hast ein Intervall von %d eingegeben.',1),
-6021 => array('Unbekanntes Format für die Woche.',0),
-6022 => array('Die Gantt-Skala wurde nicht eingegeben.',0),
-6023 => array('Wenn Du sowohl Stunden als auch Minuten anzeigen lassen willst, muss das Stunden-Interval gleich 1 sein (anderenfalls ist es nicht sinnvoll, Minuten anzeigen zu lassen).',0),
-6024 => array('Das CSIM-Ziel muss als String angegeben werden. Der Start des Ziels ist: %d',1),
-6025 => array('Der CSIM-Alt-Text muss als String angegeben werden. Der Beginn des Alt-Textes ist: %d',1),
-6027 => array('Der Fortschrittswert muss im Bereich [0, 1] liegen.',0),
-6028 => array('Die eingegebene Höhe (%d) für GanttBar ist nicht im zulässigen Bereich.',1),
-6029 => array('Der Offset für die vertikale Linie muss im Bereich [0,1] sein.',0),
-6030 => array('Unbekannte Pfeilrichtung für eine Verbindung.',0),
-6031 => array('Unbekannter Pfeiltyp für eine Verbindung.',0),
-6032 => array('Interner Fehler: Unbekannter Pfadtyp (=%d) für eine Verbindung.',1),
-
-/*
-**  jpgraph_gradient
-*/
-
-7001 => array('Unbekannter Gradiententyp (=%d).',1),
-
-/*
-**  jpgraph_iconplot
-*/
-
-8001 => array('Der Mix-Wert für das Icon muss zwischen 0 und 100 sein.',0),
-8002 => array('Die Ankerposition für Icons muss entweder "top", "bottom", "left", "right" oder "center" sein.',0),
-8003 => array('Es ist nicht möglich, gleichzeitig ein Bild und eine Landesflagge für dasselbe Icon zu definieren',0),
-8004 => array('Wenn Du Landesflaggen benutzen willst, musst Du die Datei "jpgraph_flags.php" hinzufügen (per include).',0),
-
-/*
-**  jpgraph_imgtrans
-*/
-
-9001 => array('Der Wert für die Bildtransformation ist außerhalb des zulässigen Bereichs. Der verschwindende Punkt am Horizont muss als Wert zwischen 0 und 1 angegeben werden.',0),
-
-/*
-**  jpgraph_lineplot
-*/
-
-10001 => array('Die Methode LinePlot::SetFilled() sollte nicht mehr benutzt werden. Benutze lieber SetFillColor()',0),
-10002 => array('Der Plot ist zu kompliziert für FastLineStroke. Benutze lieber den StandardStroke()',0),
-
-/*
-**  jpgraph_log
-*/
-
-11001 => array('Deine Daten enthalten nicht-numerische Werte.',0),
-11002 => array('Negative Werte können nicht für logarithmische Achsen verwendet werden.',0),
-11003 => array('Deine Daten enthalten nicht-numerische Werte.',0),
-11004 => array('Skalierungsfehler für die logarithmische Achse. Es gibt ein Problem mit den Daten der Achse. Der größte Wert muss größer sein als Null. Es ist mathematisch nicht möglich, einen Wert gleich Null in der Skala zu haben.',0),
-11005 => array('Das Tick-Intervall für die logarithmische Achse ist nicht definiert. Lösche jeden Aufruf von SetTextLabelStart() oder SetTextTickInterval() bei der logarithmischen Achse.',0),
-
-/*
-**  jpgraph_mgraph
-*/
-
-12001 => array("Du benutzt GD 2.x und versuchst ein Nicht-Truecolor-Bild als Hintergrundbild zu benutzen. Um Hintergrundbilder mit GD 2.x zu benutzen, ist es notwendig Truecolor zu aktivieren, indem die USE_TRUECOLOR-Konstante auf TRUE gesetzt wird. Wegen eines Bugs in GD 2.0.1 ist die Qualität der Truetype-Schriften sehr schlecht, wenn man Truetype-Schriften mit Truecolor-Bildern verwendet.",0),
-12002 => array('Ungültiger Dateiname für MGraph::SetBackgroundImage() : %s. Die Datei muss eine gültige Dateierweiterung haben (jpg,gif,png), wenn die automatische Typerkennung verwendet wird.',1),
-12003 => array('Unbekannte Dateierweiterung (%s) in MGraph::SetBackgroundImage() für Dateiname: %s',2),
-12004 => array('Das Bildformat des Hintergrundbildes (%s) wird von Deiner System-Konfiguration nicht unterstützt. ',1),
-12005 => array('Das Hintergrundbild kann nicht gelesen werden: %s',1),
-12006 => array('Es wurden ungültige Größen für Breite oder Höhe beim Erstellen des Bildes angegeben, (Breite=%d, Höhe=%d)',2),
-12007 => array('Das Argument für MGraph::Add() ist nicht gültig für GD.',0),
-12008 => array('Deine PHP- (und GD-lib-) Installation scheint keine bekannten Bildformate zu unterstützen.',0),
-12009 => array('Deine PHP-Installation unterstützt das gewählte Bildformat nicht: %s',1),
-12010 => array('Es konnte kein Bild als Datei %s erzeugt werden. Überprüfe, ob Du die entsprechenden Schreibrechte im aktuellen Verzeichnis hast.',1),
-12011 => array('Es konnte kein Truecolor-Bild erzeugt werden. Überprüfe, ob Du wirklich die GD2-Bibliothek installiert hast.',0),
-12012 => array('Es konnte kein Bild erzeugt werden. Überprüfe, ob Du wirklich die GD2-Bibliothek installiert hast.',0),
-
-/*
-**  jpgraph_pie3d
-*/
-
-14001 => array('Pie3D::ShowBorder(). Missbilligte Funktion. Benutze Pie3D::SetEdge(), um die Ecken der Tortenstücke zu kontrollieren.',0),
-14002 => array('PiePlot3D::SetAngle() 3D-Torten-Projektionswinkel muss zwischen 5 und 85 Grad sein.',0),
-14003 => array('Interne Festlegung schlug fehl. Pie3D::Pie3DSlice',0),
-14004 => array('Tortenstück-Startwinkel muss zwischen 0 und 360 Grad sein.',0),
-14005 => array('Pie3D Interner Fehler: Versuch, zweimal zu umhüllen bei der Suche nach dem Startindex.',0,),
-14006 => array('Pie3D Interner Fehler: Z-Sortier-Algorithmus für 3D-Tortendiagramme funktioniert nicht einwandfrei (2). Versuch, zweimal zu umhüllen beim Erstellen des Bildes.',0),
-14007 => array('Die Breite für das 3D-Tortendiagramm ist 0. Gib eine Breite > 0 an.',0),
-
-/*
-**  jpgraph_pie
-*/
-
-15001 => array('PiePLot::SetTheme() Unbekannter Stil: %s',1),
-15002 => array('Argument für PiePlot::ExplodeSlice() muss ein Integer-Wert sein',0),
-15003 => array('Argument für PiePlot::Explode() muss ein Vektor mit Integer-Werten sein.',0),
-15004 => array('Tortenstück-Startwinkel muss zwischen 0 und 360 Grad sein.',0),
-15005 => array('PiePlot::SetFont() sollte nicht mehr verwendet werden. Benutze stattdessen PiePlot->value->SetFont().',0),
-15006 => array('PiePlot::SetSize() Radius für Tortendiagramm muss entweder als Bruch [0, 0.5] der Bildgröße oder als Absoluwert in Pixel im Bereich [10, 1000] angegeben werden.',0),
-15007 => array('PiePlot::SetFontColor() sollte nicht mehr verwendet werden. Benutze stattdessen PiePlot->value->SetColor()..',0),
-15008 => array('PiePlot::SetLabelType() der Typ für Tortendiagramme muss entweder 0 or 1 sein (nicht %d).',1),
-15009 => array('Ungültiges Tortendiagramm. Die Summe aller Daten ist Null.',0),
-15010 => array('Die Summe aller Daten ist Null.',0),
-15011 => array('Um Bildtransformationen benutzen zu können, muss die Datei jpgraph_imgtrans.php eingefügt werden (per include).',0),
-
-/*
-**  jpgraph_plotband
-*/
-
-16001 => array('Die Dichte für das Pattern muss zwischen 1 und 100 sein. (Du hast %f eingegeben)',1),
-16002 => array('Es wurde keine Position für das Pattern angegeben.',0),
-16003 => array('Unbekannte Pattern-Definition (%d)',0),
-16004 => array('Der Mindeswert für das PlotBand ist größer als der Maximalwert. Bitte korrigiere dies!',0),
-
-
-/*
-**  jpgraph_polar
-*/
-
-17001 => array('PolarPlots müssen eine gerade Anzahl von Datenpunkten haben. Jeder Datenpunkt ist ein Tupel (Winkel, Radius).',0),
-17002 => array('Unbekannte Ausrichtung für X-Achsen-Titel. (%s)',1),
-//17003 => array('Set90AndMargin() wird für PolarGraph nicht unterstützt.',0),
-17004 => array('Unbekannter Achsentyp für PolarGraph. Er muss entweder \'lin\' oder \'log\' sein.',0),
-
-/*
-**  jpgraph_radar
-*/
-
-18001 => array('ClientSideImageMaps werden für RadarPlots nicht unterstützt.',0),
-18002 => array('RadarGraph::SupressTickMarks() sollte nicht mehr verwendet werden. Benutze stattdessen HideTickMarks().',0),
-18003 => array('Ungültiger Achsentyp für RadarPlot (%s). Er muss entweder \'lin\' oder \'log\' sein.',1),
-18004 => array('Die RadarPlot-Größe muss zwischen 0.1 und 1 sein. (Dein Wert=%f)',1),
-18005 => array('RadarPlot: nicht unterstützte Tick-Dichte: %d',1),
-18006 => array('Minimum Daten %f (RadarPlots sollten nur verwendet werden, wenn alle Datenpunkte einen Wert > 0 haben).',1),
-18007 => array('Die Anzahl der Titel entspricht nicht der Anzahl der Datenpunkte.',0),
-18008 => array('Jeder RadarPlot muss die gleiche Anzahl von Datenpunkten haben.',0),
-
-/*
-**  jpgraph_regstat
-*/
-
-19001 => array('Spline: Anzahl der X- und Y-Koordinaten muss gleich sein.',0),
-19002 => array('Ungültige Dateneingabe für Spline. Zwei oder mehr aufeinanderfolgende X-Werte sind identisch. Jeder eigegebene X-Wert muss unterschiedlich sein, weil vom mathematischen Standpunkt ein Eins-zu-Eins-Mapping vorliegen muss, d.h. jeder X-Wert korrespondiert mit exakt einem Y-Wert.',0),
-19003 => array('Bezier: Anzahl der X- und Y-Koordinaten muss gleich sein.',0),
-
-/*
-**  jpgraph_scatter
-*/
-
-20001 => array('Fieldplots müssen die gleiche Anzahl von X und Y Datenpunkten haben.',0),
-20002 => array('Bei Fieldplots muss ein Winkel für jeden X und Y Datenpunkt angegeben werden.',0),
-20003 => array('Scatterplots müssen die gleiche Anzahl von X- und Y-Datenpunkten haben.',0),
-
-/*
-**  jpgraph_stock
-*/
-
-21001 => array('Die Anzahl der Datenwerte für Stock-Charts müssen ein Mehrfaches von %d Datenpunkten sein.',1),
-
-/*
-**  jpgraph_plotmark
-*/
-
-23001 => array('Der Marker "%s" existiert nicht in der Farbe: %d',2),
-23002 => array('Der Farb-Index ist zu hoch für den Marker "%s"',1),
-23003 => array('Ein Dateiname muss angegeben werden, wenn Du den Marker-Typ auf MARK_IMG setzt.',0),
-
-/*
-**  jpgraph_utils
-*/
-
-24001 => array('FuncGenerator : Keine Funktion definiert. ',0),
-24002 => array('FuncGenerator : Syntax-Fehler in der Funktionsdefinition ',0),
-24003 => array('DateScaleUtils: Unknown tick type specified in call to GetTicks()',0),
-
-/*
-**  jpgraph
-*/
-
-25001 => array('Diese PHP-Installation ist nicht mit der GD-Bibliothek kompiliert. Bitte kompiliere PHP mit GD-Unterstützung neu, damit JpGraph funktioniert. (Weder die Funktion imagetypes() noch imagecreatefromstring() existiert!)',0),
-25002 => array('Diese PHP-Installation scheint nicht die benötigte GD-Bibliothek zu unterstützen. Bitte schau in der PHP-Dokumentation nach, wie man die GD-Bibliothek installiert und aktiviert.',0),
-25003 => array('Genereller PHP Fehler : Bei %s:%d : %s',3),
-25004 => array('Genereller PHP Fehler : %s ',1),
-25005 => array('PHP_SELF, die PHP-Global-Variable kann nicht ermittelt werden. PHP kann nicht von der Kommandozeile gestartet werden, wenn der Cache oder die Bilddateien automatisch benannt werden sollen.',0),
-25006 => array('Die Benutzung der FF_CHINESE (FF_BIG5) Schriftfamilie benötigt die iconv() Funktion in Deiner PHP-Konfiguration. Dies wird nicht defaultmäßig in PHP kompiliert (benötigt "--width-iconv" bei der Konfiguration).',0),
-25007 => array('Du versuchst das lokale (%s) zu verwenden, was von Deiner PHP-Installation nicht unterstützt wird. Hinweis: Benutze \'\', um das defaultmäßige Lokale für diese geographische Region festzulegen.',1),
-25008 => array('Die Bild-Breite und Höhe in Graph::Graph() müssen numerisch sein',0),
-25009 => array('Die Skalierung der Achsen muss angegeben werden mit Graph::SetScale()',0),
-
-25010 => array('Graph::Add() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0),
-25011 => array('Graph::AddY2() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0),
-25012 => array('Graph::AddYN() Du hast versucht, einen leeren Plot zum Graph hinzuzufügen.',0),
-25013 => array('Es können nur Standard-Plots zu multiplen Y-Achsen hinzugefügt werden',0),
-25014 => array('Graph::AddText() Du hast versucht, einen leeren Text zum Graph hinzuzufügen.',0),
-25015 => array('Graph::AddLine() Du hast versucht, eine leere Linie zum Graph hinzuzufügen.',0),
-25016 => array('Graph::AddBand() Du hast versucht, ein leeres Band zum Graph hinzuzufügen.',0),
-25017 => array('Du benutzt GD 2.x und versuchst, ein Hintergrundbild in einem Truecolor-Bild zu verwenden. Um Hintergrundbilder mit GD 2.x zu verwenden, ist es notwendig, Truecolor zu aktivieren, indem die USE_TRUECOLOR-Konstante auf TRUE gesetzt wird. Wegen eines Bugs in GD 2.0.1 ist die Qualität der Schrift sehr schlecht, wenn Truetype-Schrift in Truecolor-Bildern verwendet werden.',0),
-25018 => array('Falscher Dateiname für Graph::SetBackgroundImage() : "%s" muss eine gültige Dateinamenerweiterung (jpg,gif,png) haben, wenn die automatische Dateityperkennung verwenndet werden soll.',1),
-25019 => array('Unbekannte Dateinamenerweiterung (%s) in Graph::SetBackgroundImage() für Dateiname: "%s"',2),
-
-25020 => array('Graph::SetScale(): Dar Maximalwert muss größer sein als der Mindestwert.',0),
-25021 => array('Unbekannte Achsendefinition für die Y-Achse. (%s)',1),
-25022 => array('Unbekannte Achsendefinition für die X-Achse. (%s)',1),
-25023 => array('Nicht unterstützter Y2-Achsentyp: "%s" muss einer von (lin,log,int) sein.',1),
-25024 => array('Nicht unterstützter X-Achsentyp: "%s" muss einer von (lin,log,int) sein.',1),
-25025 => array('Nicht unterstützte Tick-Dichte: %d',1),
-25026 => array('Nicht unterstützter Typ der nicht angegebenen Y-Achse. Du hast entweder: 1. einen Y-Achsentyp für automatisches Skalieren definiert, aber keine Plots angegeben. 2. eine Achse direkt definiert, aber vergessen, die Tick-Dichte zu festzulegen.',0),
-25027 => array('Kann cached CSIM "%s" zum Lesen nicht öffnen.',1),
-25028 => array('Apache/PHP hat keine Schreibrechte, in das CSIM-Cache-Verzeichnis (%s) zu schreiben. Überprüfe die Rechte.',1),
-25029 => array('Kann nicht in das CSIM "%s" schreiben. Überprüfe die Schreibrechte und den freien Speicherplatz.',1),
-
-25030 => array('Fehlender Skriptname für StrokeCSIM(). Der Name des aktuellen Skriptes muss als erster Parameter von StrokeCSIM() angegeben werden.',0),
-25031 => array('Der Achsentyp muss mittels Graph::SetScale() angegeben werden.',0),
-25032 => array('Es existieren keine Plots für die Y-Achse nbr:%d',1),
-25033 => array('',0),
-25034 => array('Undefinierte X-Achse kann nicht gezeichnet werden. Es wurden keine Plots definiert.',0),
-25035 => array('Du hast Clipping aktiviert. Clipping wird nur für Diagramme mit 0 oder 90 Grad Rotation unterstützt. Bitte verändere Deinen Rotationswinkel (=%d Grad) dementsprechend oder deaktiviere Clipping.',1),
-25036 => array('Unbekannter Achsentyp AxisStyle() : %s',1),
-25037 => array('Das Bildformat Deines Hintergrundbildes (%s) wird von Deiner System-Konfiguration nicht unterstützt. ',1),
-25038 => array('Das Hintergrundbild scheint von einem anderen Typ (unterschiedliche Dateierweiterung) zu sein als der angegebene Typ. Angegebenen: %s; Datei: %s',2),
-25039 => array('Hintergrundbild kann nicht gelesen werden: "%s"',1),
-
-25040 => array('Es ist nicht möglich, sowohl ein Hintergrundbild als auch eine Hintergrund-Landesflagge anzugeben.',0),
-25041 => array('Um Landesflaggen als Hintergrund benutzen zu können, muss die Datei "jpgraph_flags.php" eingefügt werden (per include).',0),
-25042 => array('Unbekanntes Hintergrundbild-Layout',0),
-25043 => array('Unbekannter Titelhintergrund-Stil.',0),
-25044 => array('Automatisches Skalieren kann nicht verwendet werden, weil es unmöglich ist, einen gültigen min/max Wert für die Y-Achse zu ermitteln (nur Null-Werte).',0),
-25045 => array('Die Schriftfamilien FF_HANDWRT und FF_BOOK sind wegen Copyright-Problemen nicht mehr verfügbar. Diese Schriften können nicht mehr mit JpGraph verteilt werden. Bitte lade Dir Schriften von http://corefonts.sourceforge.net/ herunter.',0),
-25046 => array('Angegebene TTF-Schriftfamilie (id=%d) ist unbekannt oder existiert nicht. Bitte merke Dir, dass TTF-Schriften wegen Copyright-Problemen nicht mit JpGraph mitgeliefert werden. Du findest MS-TTF-Internetschriften (arial, courier, etc.) zum Herunterladen unter http://corefonts.sourceforge.net/',1),
-25047 => array('Stil %s ist nicht verfügbar für Schriftfamilie %s',2),
-25048 => array('Unbekannte Schriftstildefinition [%s].',1),
-25049 => array('Schriftdatei "%s" ist nicht lesbar oder existiert nicht.',1),
-
-25050 => array('Erstes Argument für Text::Text() muss ein String sein.',0),
-25051 => array('Ungültige Richtung angegeben für Text.',0),
-25052 => array('PANIK: Interner Fehler in SuperScript::Stroke(). Unbekannte vertikale Ausrichtung für Text.',0),
-25053 => array('PANIK: Interner Fehler in SuperScript::Stroke(). Unbekannte horizontale Ausrichtung für Text.',0),
-25054 => array('Interner Fehler: Unbekannte Grid-Achse %s',1),
-25055 => array('Axis::SetTickDirection() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetTickSide().',0),
-25056 => array('SetTickLabelMargin() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetLabelMargin().',0),
-25057 => array('SetTextTicks() sollte nicht mehr verwendet werden. Benutze stattdessen SetTextTickInterval().',0),
-25058 => array('TextLabelIntevall >= 1 muss angegeben werden.',0),
-25059 => array('SetLabelPos() sollte nicht mehr verwendet werden. Benutze stattdessen Axis::SetLabelSide().',0),
-
-25060 => array('Unbekannte Ausrichtung angegeben für X-Achsentitel (%s).',1),
-25061 => array('Unbekannte Ausrichtung angegeben für Y-Achsentitel (%s).',1),
-25062 => array('Label unter einem Winkel werden für die Y-Achse nicht unterstützt.',0),
-25063 => array('Ticks::SetPrecision() sollte nicht mehr verwendet werden. Benutze stattdessen Ticks::SetLabelFormat() (oder Ticks::SetFormatCallback()).',0),
-25064 => array('Kleinere oder größere Schrittgröße ist 0. Überprüfe, ob Du fälschlicherweise SetTextTicks(0) in Deinem Skript hast. Wenn dies nicht der Fall ist, bist Du eventuell über einen Bug in JpGraph gestolpert. Bitte sende einen Report und füge den Code an, der den Fehler verursacht hat.',0),
-25065 => array('Tick-Positionen müssen als array() angegeben werden',0),
-25066 => array('Wenn die Tick-Positionen und -Label von Hand eingegeben werden, muss die Anzahl der Ticks und der Label gleich sein.',0),
-25067 => array('Deine von Hand eingegebene Achse und Ticks sind nicht korrekt. Die Skala scheint zu klein zu sein für den Tickabstand.',0),
-25068 => array('Ein Plot hat eine ungültige Achse. Dies kann beispielsweise der Fall sein, wenn Du automatisches Text-Skalieren verwendest, um ein Liniendiagramm zu zeichnen mit nur einem Datenpunkt, oder wenn die Bildfläche zu klein ist. Es kann auch der Fall sein, dass kein Datenpunkt einen numerischen Wert hat (vielleicht nur \'-\' oder \'x\').',0),
-25069 => array('Grace muss größer sein als 0',0),
-
-25070 => array('Deine Daten enthalten nicht-numerische Werte.',0),
-25071 => array('Du hast mit SetAutoMin() einen Mindestwert angegeben, der größer ist als der Maximalwert für die Achse. Dies ist nicht möglich.',0),
-25072 => array('Du hast mit SetAutoMax() einen Maximalwert angegeben, der kleiner ist als der Minimalwert der Achse. Dies ist nicht möglich.',0),
-25073 => array('Interner Fehler. Der Integer-Skalierungs-Algorithmus-Vergleich ist außerhalb der Grenzen  (r=%f).',1),
-25074 => array('Interner Fehler. Der Skalierungsbereich ist negativ (%f) [für %s Achse]. Dieses Problem könnte verursacht werden durch den Versuch, \'ungültige\' Werte in die Daten-Vektoren einzugeben (z.B. nur String- oder NULL-Werte), was beim automatischen Skalieren einen Fehler erzeugt.',2),
-25075 => array('Die automatischen Ticks können nicht gesetzt werden, weil min==max.',0),
-25077 => array('Einstellfaktor für die Farbe muss größer sein als 0',0),
-25078 => array('Unbekannte Farbe: %s',1),
-25079 => array('Unbekannte Farbdefinition: %s, Größe=%d',2),
-
-25080 => array('Der Alpha-Parameter für Farben muss zwischen 0.0 und 1.0 liegen.',0),
-25081 => array('Das ausgewählte Grafikformat wird entweder nicht unterstützt oder ist unbekannt [%s]',1),
-25082 => array('Es wurden ungültige Größen für Breite und Höhe beim Erstellen des Bildes definiert (Breite=%d, Höhe=%d).',2),
-25083 => array('Es wurde eine ungültige Größe beim Kopieren des Bildes angegeben. Die Größe für das kopierte Bild wurde auf 1 Pixel oder weniger gesetzt.',0),
-25084 => array('Fehler beim Erstellen eines temporären GD-Canvas. Möglicherweise liegt ein Arbeitsspeicherproblem vor.',0),
-25085 => array('Ein Bild kann nicht aus dem angegebenen String erzeugt werden. Er ist entweder in einem nicht unterstützen Format oder er represäntiert ein kaputtes Bild.',0),
-25086 => array('Du scheinst nur GD 1.x installiert zu haben. Um Alphablending zu aktivieren, ist GD 2.x oder höher notwendig. Bitte installiere GD 2.x oder versichere Dich, dass die Konstante USE_GD2 richtig gesetzt ist. Standardmäßig wird die installierte GD-Version automatisch erkannt. Ganz selten wird GD2 erkannt, obwohl nur GD1 installiert ist. Die Konstante USE_GD2 muss dann zu "false" gesetzt werden.',0),
-25087 => array('Diese PHP-Version wurde ohne TTF-Unterstützung konfiguriert. PHP muss mit TTF-Unterstützung neu kompiliert und installiert werden.',0),
-25088 => array('Die GD-Schriftunterstützung wurde falsch konfiguriert. Der Aufruf von imagefontwidth() ist fehlerhaft.',0),
-25089 => array('Die GD-Schriftunterstützung wurde falsch konfiguriert. Der Aufruf von imagefontheight() ist fehlerhaft.',0),
-
-25090 => array('Unbekannte Richtung angegeben im Aufruf von StrokeBoxedText() [%s].',1),
-25091 => array('Die interne Schrift untestützt das Schreiben von Text in einem beliebigen Winkel nicht. Benutze stattdessen TTF-Schriften.',0),
-25092 => array('Es liegt entweder ein Konfigurationsproblem mit TrueType oder ein Problem beim Lesen der Schriftdatei "%s" vor. Versichere Dich, dass die Datei existiert und Leserechte und -pfad vergeben sind. (wenn \'basedir\' restriction in PHP aktiviert ist, muss die Schriftdatei im Dokumentwurzelverzeichnis abgelegt werden). Möglicherweise ist die FreeType-Bibliothek falsch installiert. Versuche, mindestens zur FreeType-Version 2.1.13 zu aktualisieren und kompiliere GD mit einem korrekten Setup neu, damit die FreeType-Bibliothek gefunden werden kann.',1),
-25093 => array('Die Schriftdatei "%s" kann nicht gelesen werden beim Aufruf von Image::GetBBoxTTF. Bitte versichere Dich, dass die Schrift gesetzt wurde, bevor diese Methode aufgerufen wird, und dass die Schrift im TTF-Verzeichnis installiert ist.',1),
-25094 => array('Die Textrichtung muss in einem Winkel zwischen 0 und 90 engegeben werden.',0),
-25095 => array('Unbekannte Schriftfamilien-Definition. ',0),
-25096 => array('Der Farbpalette können keine weiteren Farben zugewiesen werden. Dem Bild wurde bereits die größtmögliche Anzahl von Farben (%d) zugewiesen und die Palette ist voll. Verwende stattdessen ein TrueColor-Bild',0),
-25097 => array('Eine Farbe wurde als leerer String im Aufruf von PushColor() angegegeben.',0),
-25098 => array('Negativer Farbindex. Unpassender Aufruf von PopColor().',0),
-25099 => array('Die Parameter für Helligkeit und Kontrast sind außerhalb des zulässigen Bereichs [-1,1]',0),
-
-25100 => array('Es liegt ein Problem mit der Farbpalette und dem GD-Setup vor. Bitte deaktiviere anti-aliasing oder verwende GD2 mit TrueColor. Wenn die GD2-Bibliothek installiert ist, versichere Dich, dass die Konstante USE_GD2 auf "true" gesetzt und TrueColor aktiviert ist.',0),
-25101 => array('Ungültiges numerisches Argument für SetLineStyle(): (%d)',1),
-25102 => array('Ungültiges String-Argument für SetLineStyle(): %s',1),
-25103 => array('Ungültiges Argument für SetLineStyle %s',1),
-25104 => array('Unbekannter Linientyp: %s',1),
-25105 => array('Es wurden NULL-Daten für ein gefülltes Polygon angegeben. Sorge dafür, dass keine NULL-Daten angegeben werden.',0),
-25106 => array('Image::FillToBorder : es können keine weiteren Farben zugewiesen werden.',0),
-25107 => array('In Datei "%s" kann nicht geschrieben werden. Überprüfe die aktuellen Schreibrechte.',1),
-25108 => array('Das Bild kann nicht gestreamt werden. Möglicherweise liegt ein Fehler im PHP/GD-Setup vor. Kompiliere PHP neu und verwende die eingebaute GD-Bibliothek, die mit PHP angeboten wird.',0),
-25109 => array('Deine PHP- (und GD-lib-) Installation scheint keine bekannten Grafikformate zu unterstützen. Sorge zunächst dafür, dass GD als PHP-Modul kompiliert ist. Wenn Du außerdem JPEG-Bilder verwenden willst, musst Du die JPEG-Bibliothek installieren. Weitere Details sind in der PHP-Dokumentation zu finden.',0),
-
-25110 => array('Dein PHP-Installation unterstützt das gewählte Grafikformat nicht: %s',1),
-25111 => array('Das gecachete Bild %s kann nicht gelöscht werden. Problem mit den Rechten?',1),
-25112 => array('Das Datum der gecacheten Datei (%s) liegt in der Zukunft.',1),
-25113 => array('Das gecachete Bild %s kann nicht gelöscht werden. Problem mit den Rechten?',1),
-25114 => array('PHP hat nicht die erforderlichen Rechte, um in die Cache-Datei %s zu schreiben. Bitte versichere Dich, dass der Benutzer, der PHP anwendet, die entsprechenden Schreibrechte für die Datei hat, wenn Du das Cache-System in JPGraph verwenden willst.',1),
-25115 => array('Berechtigung für gecachetes Bild %s kann nicht gesetzt werden. Problem mit den Rechten?',1),
-25116 => array('Datei kann nicht aus dem Cache %s geöffnet werden',1),
-25117 => array('Gecachetes Bild %s kann nicht zum Lesen geöffnet werden.',1),
-25118 => array('Verzeichnis %s kann nicht angelegt werden. Versichere Dich, dass PHP die Schreibrechte in diesem Verzeichnis hat.',1),
-25119 => array('Rechte für Datei %s können nicht gesetzt werden. Problem mit den Rechten?',1),
-
-25120 => array('Die Position für die Legende muss als Prozentwert im Bereich 0-1 angegeben werden.',0),
-25121 => array('Eine leerer Datenvektor wurde für den Plot eingegeben. Es muss wenigstens ein Datenpunkt vorliegen.',0),
-25122 => array('Stroke() muss als Subklasse der Klasse Plot definiert sein.',0),
-25123 => array('Du kannst keine Text-X-Achse mit X-Koordinaten verwenden. Benutze stattdessen eine "int" oder "lin" Achse.',0),
-25124 => array('Der Eingabedatenvektor mus aufeinanderfolgende Werte von 0 aufwärts beinhalten. Der angegebene Y-Vektor beginnt mit leeren Werten (NULL).',0),
-25125 => array('Ungültige Richtung für statische Linie.',0),
-25126 => array('Es kann kein TrueColor-Bild erzeugt werden. Überprüfe, ob die GD2-Bibliothek und PHP korrekt aufgesetzt wurden.',0),
-25127 => array('The library has been configured for automatic encoding conversion of Japanese fonts. This requires that PHP has the mb_convert_encoding() function. Your PHP installation lacks this function (PHP needs the "--enable-mbstring" when compiled).',0),
-
-/*
-**---------------------------------------------------------------------------------------------
-** Pro-version strings
-**---------------------------------------------------------------------------------------------
-*/
-
-/*
-**  jpgraph_table
-*/
-
-27001 => array('GTextTable: Ungültiges Argument für Set(). Das Array-Argument muss 2-- dimensional sein.',0),
-27002 => array('GTextTable: Ungültiges Argument für Set()',0),
-27003 => array('GTextTable: Falsche Anzahl von Argumenten für GTextTable::SetColor()',0),
-27004 => array('GTextTable: Angegebener Zellenbereich, der verschmolzen werden soll, ist ungültig.',0),
-27005 => array('GTextTable: Bereits verschmolzene Zellen im Bereich (%d,%d) bis (%d,%d) können nicht ein weiteres Mal verschmolzen werden.',4),
-27006 => array('GTextTable: Spalten-Argument = %d liegt außerhalb der festgelegten Tabellengröße.',1),
-27007 => array('GTextTable: Zeilen-Argument = %d liegt außerhalb der festgelegten Tabellengröße.',1),
-27008 => array('GTextTable: Spalten- und Zeilengröße müssen zu den Dimensionen der Tabelle passen.',0),
-27009 => array('GTextTable: Die Anzahl der Tabellenspalten oder -zeilen ist 0. Versichere Dich, dass die Methoden Init() oder Set() aufgerufen werden.',0),
-27010 => array('GTextTable: Es wurde keine Ausrichtung beim Aufruf von SetAlign() angegeben.',0),
-27011 => array('GTextTable: Es wurde eine unbekannte Ausrichtung beim Aufruf von SetAlign() abgegeben. Horizontal=%s, Vertikal=%s',2),
-27012 => array('GTextTable: Interner Fehler. Es wurde ein ungültiges Argument festgeleget %s',1),
-27013 => array('GTextTable: Das Argument für FormatNumber() muss ein String sein.',0),
-27014 => array('GTextTable: Die Tabelle wurde weder mit einem Aufruf von Set() noch von Init() initialisiert.',0),
-27015 => array('GTextTable: Der Zellenbildbedingungstyp muss entweder TIMG_WIDTH oder TIMG_HEIGHT sein.',0),
-
-/*
-**  jpgraph_windrose
-*/
-
-22001 => array('Die Gesamtsumme der prozentualen Anteile aller Windrosenarme darf 100% nicht überschreiten!\n(Aktuell max: %d)',1),
-22002 => array('Das Bild ist zu klein für eine Skala. Bitte vergrößere das Bild.',0),
-22004 => array('Die Etikettendefinition für Windrosenrichtungen müssen 16 Werte haben (eine für jede Kompassrichtung).',0),
-22005 => array('Der Linientyp für radiale Linien muss einer von ("solid","dotted","dashed","longdashed") sein.',0),
-22006 => array('Es wurde ein ungültiger Windrosentyp angegeben.',0),
-22007 => array('Es wurden zu wenig Werte für die Bereichslegende angegeben.',0),
-22008 => array('Interner Fehler: Versuch, eine freie Windrose zu plotten, obwohl der Typ keine freie Windrose ist.',0),
-22009 => array('Du hast die gleiche Richtung zweimal angegeben, einmal mit einem Winkel und einmal mit einer Kompassrichtung (%f Grad).',0),
-22010 => array('Die Richtung muss entweder ein numerischer Wert sein oder eine der 16 Kompassrichtungen',0),
-22011 => array('Der Windrosenindex muss ein numerischer oder Richtungswert sein. Du hast angegeben Index=%d',1),
-22012 => array('Die radiale Achsendefinition für die Windrose enthält eine nicht aktivierte Richtung.',0),
-22013 => array('Du hast dasselbe Look&Feel für die gleiche Kompassrichtung zweimal engegeben, einmal mit Text und einmal mit einem Index (Index=%d)',1),
-22014 => array('Der Index für eine Kompassrichtung muss zwischen 0 und 15 sein.',0),
-22015 => array('Du hast einen unbekannten Windrosenplottyp angegeben.',0),
-22016 => array('Der Windrosenarmindex muss ein numerischer oder ein Richtungswert sein.',0),
-22017 => array('Die Windrosendaten enthalten eine Richtung, die nicht aktiviert ist. Bitte berichtige, welche Label angezeigt werden sollen.',0),
-22018 => array('Du hast für dieselbe Kompassrichtung zweimal Daten angegeben, einmal mit Text und einmal mit einem Index (Index=%d)',1),
-22019 => array('Der Index für eine Richtung muss zwischen 0 und 15 sein. Winkel dürfen nicht für einen regelmäßigen Windplot angegeben werden, sondern entweder ein Index oder eine Kompassrichtung.',0),
-22020 => array('Der Windrosenplot ist zu groß für die angegebene Bildgröße. Benutze entweder WindrosePlot::SetSize(), um den Plot kleiner zu machen oder vergrößere das Bild im ursprünglichen Aufruf von WindroseGraph().',0),
-
-/*
-**  jpgraph_odometer
-*/
-
-13001 => array('Unbekannter Nadeltypstil (%d).',1),
-13002 => array('Ein Wert für das Odometer (%f) ist außerhalb des angegebenen Bereichs [%f,%f]',3),
-
-/*
-**  jpgraph_barcode
-*/
-
-1001 => array('Unbekannte Kodier-Specifikation: %s',1),
-1002 => array('datenvalidierung schlug fehl. [%s] kann nicht mittels der Kodierung "%s" kodiert werden',2),
-1003 => array('Interner Kodierfehler. Kodieren von %s ist nicht möglich in Code 128',1),
-1004 => array('Interner barcode Fehler. Unbekannter UPC-E Kodiertyp: %s',1),
-1005 => array('Interner Fehler. Das Textzeichen-Tupel (%s, %s) kann nicht im Code-128 Zeichensatz C kodiert werden.',2),
-1006 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, CTRL in CHARSET != A zu kodieren.',0),
-1007 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, DEL in CHARSET != B zu kodieren.',0),
-1008 => array('Interner Kodierfehler für CODE 128. Es wurde versucht, kleine Buchstaben in CHARSET != B zu kodieren.',0),
-1009 => array('Kodieren mittels CODE 93 wird noch nicht unterstützt.',0),
-1010 => array('Kodieren mittels POSTNET wird noch nicht unterstützt.',0),
-1011 => array('Nicht untrstütztes Barcode-Backend für den Typ %s',1),
-
-/*
-** PDF417
-*/
-
-26001 => array('PDF417: Die Anzahl der Spalten muss zwischen 1 und 30 sein.',0),
-26002 => array('PDF417: Der Fehler-Level muss zwischen 0 und 8 sein.',0),
-26003 => array('PDF417: Ungültiges Format für Eingabedaten, um sie mit PDF417 zu kodieren.',0),
-26004 => array('PDF417: die eigebenen Daten können nicht mit Fehler-Level %d und %d spalten kodiert werden, weil daraus zu viele Symbole oder mehr als 90 Zeilen resultieren.',2),
-26005 => array('PDF417: Die Datei "%s" kann nicht zum Schreiben geöffnet werden.',1),
-26006 => array('PDF417: Interner Fehler. Die Eingabedatendatei für PDF417-Cluster %d ist fehlerhaft.',1),
-26007 => array('PDF417: Interner Fehler. GetPattern: Ungültiger Code-Wert %d (Zeile %d)',2),
-26008 => array('PDF417: Interner Fehler. Modus wurde nicht in der Modusliste!! Modus %d',1),
-26009 => array('PDF417: Kodierfehler: Ungültiges Zeichen. Zeichen kann nicht mit ASCII-Code %d kodiert werden.',1),
-26010 => array('PDF417: Interner Fehler: Keine Eingabedaten beim Dekodieren.',0),
-26011 => array('PDF417: Kodierfehler. Numerisches Kodieren bei nicht-numerischen Daten nicht möglich.',0),
-26012 => array('PDF417: Interner Fehler. Es wurden für den Binary-Kompressor keine Daten zum Dekodieren eingegeben.',0),
-26013 => array('PDF417: Interner Fehler. Checksum Fehler. Koeffiziententabellen sind fehlerhaft.',0),
-26014 => array('PDF417: Interner Fehler. Es wurden keine Daten zum Berechnen von Kodewörtern eingegeben.',0),
-26015 => array('PDF417: Interner Fehler. Ein Eintrag 0 in die Statusübertragungstabellen ist nicht NULL. Eintrag 1 = (%s)',1),
-26016 => array('PDF417: Interner Fehler: Nichtregistrierter Statusübertragungsmodus beim Dekodieren.',0),
-
-
-);
-
-?>
diff --git a/nightly-test-server/jpgraph/lang/en.inc.php b/nightly-test-server/jpgraph/lang/en.inc.php
deleted file mode 100644
index e00dbd7..0000000
--- a/nightly-test-server/jpgraph/lang/en.inc.php
+++ /dev/null
@@ -1,502 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	EN.INC.PHP
-// Description: English language file for error messages
-// Created: 	2006-01-25
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-// Note: 
-// Format of each error message is array(<error message>,<number of arguments>)
-// The argument placeholders in the error strings are in printf() - format
-
-$_jpg_messages = array(
-
-/*
-** Headers already sent error. This is formatted as HTML different since this will be sent back directly as text
-*/
-10  => array('<table border="1"><tr><td style="color:darkred; font-size:1.2em;"><b>JpGraph Error:</b> 
-HTTP headers have already been sent.<br>Caused by output from file <b>%s</b> at line <b>%d</b>.</td></tr><tr><td><b>Explanation:</b><br>HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it\'s image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).<p>Most likely you have some text in your script before the call to <i>Graph::Stroke()</i>. If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. <p>For example it is a common mistake to leave a blank line before the opening "<b>&lt;?php</b>".</td></tr></table>',2),
-
-/*
-** Setup errors
-*/
-11 => array('No path specified for CACHE_DIR. Please specify CACHE_DIR manually in jpg-config.inc',0),
-12 => array('No path specified for TTF_DIR and path can not be determined automatically. Please specify TTF_DIR manually (in jpg-config.inc).',0),
-13 => array('The installed PHP version (%s) is not compatible with this release of the library. The library requires at least PHP version %s',2),
-/*
-**  jpgraph_bar
-*/
-
-2001 => array('Number of colors is not the same as the number of patterns in BarPlot::SetPattern()',0),
-2002 => array('Unknown pattern specified in call to BarPlot::SetPattern()',0),
-2003 => array('Number of X and Y points are not equal. Number of X-points: %d Number of Y-points: %d',2),
-2004 => array('All values for a barplot must be numeric. You have specified value nr [%d] == %s',2),
-2005 => array('You have specified an empty array for shadow colors in the bar plot.',0),
-2006 => array('Unknown position for values on bars : %s',1),
-2007 => array('Cannot create GroupBarPlot from empty plot array.',0),
-2008 => array('Group bar plot element nbr %d is undefined or empty.',0),
-2009 => array('One of the objects submitted to GroupBar is not a BarPlot. Make sure that you create the GroupBar plot from an array of BarPlot or AccBarPlot objects. (Class = %s)',1),
-2010 => array('Cannot create AccBarPlot from empty plot array.',0),
-2011 => array('Acc bar plot element nbr %d is undefined or empty.',1),
-2012 => array('One of the objects submitted to AccBar is not a BarPlot. Make sure that you create the AccBar plot from an array of BarPlot objects. (Class=%s)',1),
-2013 => array('You have specified an empty array for shadow colors in the bar plot.',0),
-2014 => array('Number of datapoints for each data set in accbarplot must be the same',0),
-
-
-/*
-**  jpgraph_date
-*/
-
-3001 => array('It is only possible to use either SetDateAlign() or SetTimeAlign() but not both',0),
-
-/*
-**  jpgraph_error
-*/
-
-4002 => array('Error in input data to LineErrorPlot. Number of data points must be a multiple of 3',0),
-
-/*
-**  jpgraph_flags
-*/
-
-5001 => array('Unknown flag size (%d).',1),
-5002 => array('Flag index %s does not exist.',1),
-5003 => array('Invalid ordinal number (%d) specified for flag index.',1),
-5004 => array('The (partial) country name %s does not have a corresponding flag image. The flag may still exist but under another name, e.g. instead of "usa" try "united states".',1),
-
-
-/*
-**  jpgraph_gantt
-*/
-
-6001 => array('Internal error. Height for ActivityTitles is < 0',0),
-6002 => array('You can\'t specify negative sizes for Gantt graph dimensions. Use 0 to indicate that you want the library to automatically determine a dimension.',0),
-6003 => array('Invalid format for Constrain parameter at index=%d in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Constrain-To,Constrain-Type)',1), 
-6004 => array('Invalid format for Progress parameter at index=%d in CreateSimple(). Parameter must start with index 0 and contain arrays of (Row,Progress)',1), 
-6005 => array('SetScale() is not meaningful with Gantt charts.',0),
-6006 => array('Cannot autoscale Gantt chart. No dated activities exist. [GetBarMinMax() start >= n]',0),
-6007 => array('Sanity check for automatic Gantt chart size failed. Either the width (=%d) or height (=%d) is larger than MAX_GANTTIMG_SIZE. This could potentially be caused by a wrong date in one of the activities.',2),
-6008 => array('You have specified a constrain from row=%d to row=%d which does not have any activity',2),
-6009 => array('Unknown constrain type specified from row=%d to row=%d',2),
-6010 => array('Illegal icon index for Gantt builtin icon [%d]',1),
-6011 => array('Argument to IconImage must be string or integer',0),
-6012 => array('Unknown type in Gantt object title specification',0),
-6015 => array('Illegal vertical position %d',1),
-6016 => array('Date string (%s) specified for Gantt activity can not be interpretated. Please make sure it is a valid time string, e.g. 2005-04-23 13:30',1),
-6017 => array('Unknown date format in GanttScale (%s).',1),
-6018 => array('Interval for minutes must divide the hour evenly, e.g. 1,5,10,12,15,20,30 etc You have specified an interval of %d minutes.',1),
-6019 => array('The available width (%d) for minutes are to small for this scale to be displayed. Please use auto-sizing or increase the width of the graph.',1),
-6020 => array('Interval for hours must divide the day evenly, e.g. 0:30, 1:00, 1:30, 4:00 etc. You have specified an interval of %d',1),
-6021 => array('Unknown formatting style for week.',0),
-6022 => array('Gantt scale has not been specified.',0),
-6023 => array('If you display both hour and minutes the hour interval must be 1 (Otherwise it doesn\'t make sense to display minutes).',0),
-6024 => array('CSIM Target must be specified as a string. Start of target is: %d',1),
-6025 => array('CSIM Alt text must be specified as a string. Start of alt text is: %d',1),
-6027 => array('Progress value must in range [0, 1]',0),
-6028 => array('Specified height (%d) for gantt bar is out of range.',1),
-6029 => array('Offset for vertical line must be in range [0,1]',0),
-6030 => array('Unknown arrow direction for link.',0),
-6031 => array('Unknown arrow type for link.',0),
-6032 => array('Internal error: Unknown path type (=%d) specified for link.',1),
-
-/*
-**  jpgraph_gradient
-*/
-
-7001 => array('Unknown gradient style (=%d).',1),
-
-/*
-**  jpgraph_iconplot
-*/
-
-8001 => array('Mix value for icon must be between 0 and 100.',0),
-8002 => array('Anchor position for icons must be one of "top", "bottom", "left", "right" or "center"',0),
-8003 => array('It is not possible to specify both an image file and a country flag for the same icon.',0),
-8004 => array('In order to use Country flags as icons you must include the "jpgraph_flags.php" file.',0),
-
-/*
-**  jpgraph_imgtrans
-*/
-
-9001 => array('Value for image transformation out of bounds. Vanishing point on horizon must be specified as a value between 0 and 1.',0),
-
-/*
-**  jpgraph_lineplot
-*/
-
-10001 => array('LinePlot::SetFilled() is deprecated. Use SetFillColor()',0),
-10002 => array('Plot too complicated for fast line Stroke. Use standard Stroke()',0),
-
-/*
-**  jpgraph_log
-*/
-
-11001 => array('Your data contains non-numeric values.',0),
-11002 => array('Negative data values can not be used in a log scale.',0),
-11003 => array('Your data contains non-numeric values.',0),
-11004 => array('Scale error for logarithmic scale. You have a problem with your data values. The max value must be greater than 0. It is mathematically impossible to have 0 in a logarithmic scale.',0),
-11005 => array('Specifying tick interval for a logarithmic scale is undefined. Remove any calls to SetTextLabelStart() or SetTextTickInterval() on the logarithmic scale.',0),
-
-/*
-**  jpgraph_mgraph
-*/
-
-12001 => array("You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x it is necessary to enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.",0),
-12002 => array('Incorrect file name for MGraph::SetBackgroundImage() : %s Must have a valid image extension (jpg,gif,png) when using auto detection of image type',1),
-12003 => array('Unknown file extension (%s) in MGraph::SetBackgroundImage() for filename: %s',2),
-12004 => array('The image format of your background image (%s) is not supported in your system configuration. ',1),
-12005 => array('Can\'t read background image: %s',1),
-12006 => array('Illegal sizes specified for width or height when creating an image, (width=%d, height=%d)',2),
-12007 => array('Argument to MGraph::Add() is not a valid GD image handle.',0),
-12008 => array('Your PHP (and GD-lib) installation does not appear to support any known graphic formats.',0),
-12009 => array('Your PHP installation does not support the chosen graphic format: %s',1),
-12010 => array('Can\'t create or stream image to file %s Check that PHP has enough permission to write a file to the current directory.',1),
-12011 => array('Can\'t create truecolor image. Check that you really have GD2 library installed.',0),
-12012 => array('Can\'t create image. Check that you really have GD2 library installed.',0),
-
-/*
-**  jpgraph_pie3d
-*/
-
-14001 => array('Pie3D::ShowBorder() . Deprecated function. Use Pie3D::SetEdge() to control the edges around slices.',0),
-14002 => array('PiePlot3D::SetAngle() 3D Pie projection angle must be between 5 and 85 degrees.',0),
-14003 => array('Internal assertion failed. Pie3D::Pie3DSlice',0),
-14004 => array('Slice start angle must be between 0 and 360 degrees.',0),
-14005 => array('Pie3D Internal error: Trying to wrap twice when looking for start index',0,),
-14006 => array('Pie3D Internal Error: Z-Sorting algorithm for 3D Pies is not working properly (2). Trying to wrap twice while stroking.',0),
-14007 => array('Width for 3D Pie is 0. Specify a size > 0',0),
-
-/*
-**  jpgraph_pie
-*/
-
-15001 => array('PiePLot::SetTheme() Unknown theme: %s',1),
-15002 => array('Argument to PiePlot::ExplodeSlice() must be an integer',0),
-15003 => array('Argument to PiePlot::Explode() must be an array with integer distances.',0),
-15004 => array('Slice start angle must be between 0 and 360 degrees.',0),
-15005 => array('PiePlot::SetFont() is deprecated. Use PiePlot->value->SetFont() instead.',0),
-15006 => array('PiePlot::SetSize() Radius for pie must either be specified as a fraction [0, 0.5] of the size of the image or as an absolute size in pixels  in the range [10, 1000]',0),
-15007 => array('PiePlot::SetFontColor() is deprecated. Use PiePlot->value->SetColor() instead.',0),
-15008 => array('PiePlot::SetLabelType() Type for pie plots must be 0 or 1 (not %d).',1),
-15009 => array('Illegal pie plot. Sum of all data is zero for Pie Plot',0),
-15010 => array('Sum of all data is 0 for Pie.',0),
-15011 => array('In order to use image transformation you must include the file jpgraph_imgtrans.php in your script.',0),
-
-/*
-**  jpgraph_plotband
-*/
-
-16001 => array('Density for pattern must be between 1 and 100. (You tried %f)',1),
-16002 => array('No positions specified for pattern.',0),
-16003 => array('Unknown pattern specification (%d)',0),
-16004 => array('Min value for plotband is larger than specified max value. Please correct.',0),
-
-
-/*
-**  jpgraph_polar
-*/
-
-17001 => array('Polar plots must have an even number of data point. Each data point is a tuple (angle,radius).',0),
-17002 => array('Unknown alignment specified for X-axis title. (%s)',1),
-//17003 => array('Set90AndMargin() is not supported for polar graphs.',0),
-17004 => array('Unknown scale type for polar graph. Must be "lin" or "log"',0),
-
-/*
-**  jpgraph_radar
-*/
-
-18001 => array('Client side image maps not supported for RadarPlots.',0),
-18002 => array('RadarGraph::SupressTickMarks() is deprecated. Use HideTickMarks() instead.',0),
-18003 => array('Illegal scale for radarplot (%s). Must be \'lin\' or \'log\'',1),
-18004 => array('Radar Plot size must be between 0.1 and 1. (Your value=%f)',1),
-18005 => array('RadarPlot Unsupported Tick density: %d',1),
-18006 => array('Minimum data %f (Radar plots should only be used when all data points > 0)',1),
-18007 => array('Number of titles does not match number of points in plot.',0),
-18008 => array('Each radar plot must have the same number of data points.',0),
-
-/*
-**  jpgraph_regstat
-*/
-
-19001 => array('Spline: Number of X and Y coordinates must be the same',0),
-19002 => array('Invalid input data for spline. Two or more consecutive input X-values are equal. Each input X-value must differ since from a mathematical point of view it must be a one-to-one mapping, i.e. each X-value must correspond to exactly one Y-value.',0),
-19003 => array('Bezier: Number of X and Y coordinates must be the same',0),
-
-/*
-**  jpgraph_scatter
-*/
-
-20001 => array('Fieldplots must have equal number of X and Y points.',0),
-20002 => array('Fieldplots must have an angle specified for each X and Y points.',0),
-20003 => array('Scatterplot must have equal number of X and Y points.',0),
-
-/*
-**  jpgraph_stock
-*/
-
-21001 => array('Data values for Stock charts must contain an even multiple of %d data points.',1),
-
-/*
-**  jpgraph_plotmark
-*/
-
-23001 => array('This marker "%s" does not exist in color with index: %d',2),
-23002 => array('Mark color index too large for marker "%s"',1),
-23003 => array('A filename must be specified if you set the mark type to MARK_IMG.',0),
-
-/*
-**  jpgraph_utils
-*/
-
-24001 => array('FuncGenerator : No function specified. ',0),
-24002 => array('FuncGenerator : Syntax error in function specification ',0),
-24003 => array('DateScaleUtils: Unknown tick type specified in call to GetTicks()',0),
-/*
-**  jpgraph
-*/
-
-25001 => array('This PHP installation is not configured with the GD library. Please recompile PHP with GD support to run JpGraph. (Neither function imagetypes() nor imagecreatefromstring() does exist)',0),
-25002 => array('Your PHP installation does not seem to have the required GD library. Please see the PHP documentation on how to install and enable the GD library.',0),
-25003 => array('General PHP error : At %s:%d : %s',3),
-25004 => array('General PHP error : %s ',1),
-25005 => array('Can\'t access PHP_SELF, PHP global variable. You can\'t run PHP from command line if you want to use the \'auto\' naming of cache or image files.',0),
-25006 => array('Usage of FF_CHINESE (FF_BIG5) font family requires that your PHP setup has the iconv() function. By default this is not compiled into PHP (needs the "--width-iconv" when configured).',0),
-25007 => array('You are trying to use the locale (%s) which your PHP installation does not support. Hint: Use \'\' to indicate the default locale for this geographic region.',1),
-25008 => array('Image width/height argument in Graph::Graph() must be numeric',0),
-25009 => array('You must specify what scale to use with a call to Graph::SetScale()',0),
-
-25010 => array('Graph::Add() You tried to add a null plot to the graph.',0),
-25011 => array('Graph::AddY2() You tried to add a null plot to the graph.',0), 
-25012 => array('Graph::AddYN() You tried to add a null plot to the graph.',0), 
-25013 => array('You can only add standard plots to multiple Y-axis',0),
-25014 => array('Graph::AddText() You tried to add a null text to the graph.',0), 
-25015 => array('Graph::AddLine() You tried to add a null line to the graph.',0), 
-25016 => array('Graph::AddBand() You tried to add a null band to the graph.',0),
-25017 => array('You are using GD 2.x and are trying to use a background images on a non truecolor image. To use background images with GD 2.x it is necessary to enable truecolor by setting the USE_TRUECOLOR constant to TRUE. Due to a bug in GD 2.0.1 using any truetype fonts with truecolor images will result in very poor quality fonts.',0),
-25018 => array('Incorrect file name for Graph::SetBackgroundImage() : "%s" Must have a valid image extension (jpg,gif,png) when using auto detection of image type',1),
-25019 => array('Unknown file extension (%s) in Graph::SetBackgroundImage() for filename: "%s"',2),
-
-25020 => array('Graph::SetScale(): Specified Max value must be larger than the specified Min value.',0),
-25021 => array('Unknown scale specification for Y-scale. (%s)',1),
-25022 => array('Unknown scale specification for X-scale. (%s)',1),
-25023 => array('Unsupported Y2 axis type: "%s" Must be one of (lin,log,int)',1),
-25024 => array('Unsupported Y axis type:  "%s" Must be one of (lin,log,int)',1),
-25025 => array('Unsupported Tick density: %d',1),
-25026 => array('Can\'t draw unspecified Y-scale. You have either: 1. Specified an Y axis for auto scaling but have not supplied any plots. 2. Specified a scale manually but have forgot to specify the tick steps',0),
-25027 => array('Can\'t open cached CSIM "%s" for reading.',1),
-25028 => array('Apache/PHP does not have permission to write to the CSIM cache directory (%s). Check permissions.',1),
-25029 => array('Can\'t write CSIM "%s" for writing. Check free space and permissions.',1),
-
-25030 => array('Missing script name in call to StrokeCSIM(). You must specify the name of the actual image script as the first parameter to StrokeCSIM().',0),
-25031 => array('You must specify what scale to use with a call to Graph::SetScale().',0),
-25032 => array('No plots for Y-axis nbr:%d',1),
-25033 => array('',0),
-25034 => array('Can\'t draw unspecified X-scale. No plots specified.',0),
-25035 => array('You have enabled clipping. Clipping is only supported for graphs at 0 or 90 degrees rotation. Please adjust you current angle (=%d degrees) or disable clipping.',1),
-25036 => array('Unknown AxisStyle() : %s',1),
-25037 => array('The image format of your background image (%s) is not supported in your system configuration. ',1),
-25038 => array('Background image seems to be of different type (has different file extension) than specified imagetype. Specified: %s File: %s',2),
-25039 => array('Can\'t read background image: "%s"',1), 
-
-25040 => array('It is not possible to specify both a background image and a background country flag.',0),
-25041 => array('In order to use Country flags as backgrounds you must include the "jpgraph_flags.php" file.',0),
-25042 => array('Unknown background image layout',0),
-25043 => array('Unknown title background style.',0),
-25044 => array('Cannot use auto scaling since it is impossible to determine a valid min/max value of the Y-axis (only null values).',0),
-25045 => array('Font families FF_HANDWRT and FF_BOOK are no longer available due to copyright problem with these fonts. Fonts can no longer be distributed with JpGraph. Please download fonts from http://corefonts.sourceforge.net/',0),
-25046 => array('Specified TTF font family (id=%d) is unknown or does not exist. Please note that TTF fonts are not distributed with JpGraph for copyright reasons. You can find the MS TTF WEB-fonts (arial, courier etc) for download at http://corefonts.sourceforge.net/',1),
-25047 => array('Style %s is not available for font family %s',2),
-25048 => array('Unknown font style specification [%s].',1),
-25049 => array('Font file "%s" is not readable or does not exist.',1),
-
-25050 => array('First argument to Text::Text() must be a string.',0),
-25051 => array('Invalid direction specified for text.',0),
-25052 => array('PANIC: Internal error in SuperScript::Stroke(). Unknown vertical alignment for text',0),
-25053 => array('PANIC: Internal error in SuperScript::Stroke(). Unknown horizontal alignment for text',0),
-25054 => array('Internal error: Unknown grid axis %s',1),
-25055 => array('Axis::SetTickDirection() is deprecated. Use Axis::SetTickSide() instead',0),
-25056 => array('SetTickLabelMargin() is deprecated. Use Axis::SetLabelMargin() instead.',0),
-25057 => array('SetTextTicks() is deprecated. Use SetTextTickInterval() instead.',0), 
-25058 => array('Text label interval must be specified >= 1.',0),
-25059 => array('SetLabelPos() is deprecated. Use Axis::SetLabelSide() instead.',0),
-
-25060 => array('Unknown alignment specified for X-axis title. (%s)',1),
-25061 => array('Unknown alignment specified for Y-axis title. (%s)',1),
-25062 => array('Labels at an angle are not supported on Y-axis',0),
-25063 => array('Ticks::SetPrecision() is deprecated. Use Ticks::SetLabelFormat() (or Ticks::SetFormatCallback()) instead',0),
-25064 => array('Minor or major step size is 0. Check that you haven\'t got an accidental SetTextTicks(0) in your code. If this is not the case you might have stumbled upon a bug in JpGraph. Please report this and if possible include the data that caused the problem',0),
-25065 => array('Tick positions must be specified as an array()',0),
-25066 => array('When manually specifying tick positions and labels the number of labels must be the same as the number of specified ticks.',0),
-25067 => array('Your manually specified scale and ticks is not correct. The scale seems to be too small to hold any of the specified tick marks.',0),
-25068 => array('A plot has an illegal scale. This could for example be that you are trying to use text auto scaling to draw a line plot with only one point or that the plot area is too small. It could also be that no input data value is numeric (perhaps only \'-\' or \'x\')',0),
-25069 => array('Grace must be larger then 0',0),
-25070 => array('Either X or Y data arrays contains non-numeric values. Check that the data is really specified as numeric data and not as strings. It is an error to specify data for example as \'-2345.2\' (using quotes).',0),
-25071 => array('You have specified a min value with SetAutoMin() which is larger than the maximum value used for the scale. This is not possible.',0),
-25072 => array('You have specified a max value with SetAutoMax() which is smaller than the minimum value used for the scale. This is not possible.',0),
-25073 => array('Internal error. Integer scale algorithm comparison out of bound (r=%f)',1),
-25074 => array('Internal error. The scale range is negative (%f) [for %s scale] This problem could potentially be caused by trying to use \"illegal\" values in the input data arrays (like trying to send in strings or only NULL values) which causes the auto scaling to fail.',2),
-25075 => array('Can\'t automatically determine ticks since min==max.',0),
-25077 => array('Adjustment factor for color must be > 0',0),
-25078 => array('Unknown color: %s',1),
-25079 => array('Unknown color specification: %s, size=%d',2),
-
-25080 => array('Alpha parameter for color must be between 0.0 and 1.0',0),
-25081 => array('Selected graphic format is either not supported or unknown [%s]',1),
-25082 => array('Illegal sizes specified for width or height when creating an image, (width=%d, height=%d)',2),
-25083 => array('Illegal image size when copying image. Size for copied to image is 1 pixel or less.',0),
-25084 => array('Failed to create temporary GD canvas. Possible Out of memory problem.',0),
-25085 => array('An image can not be created from the supplied string. It is either in a format not supported or the string is representing an corrupt image.',0),
-25086 => array('You only seem to have GD 1.x installed. To enable Alphablending requires GD 2.x or higher. Please install GD or make sure the constant USE_GD2 is specified correctly to reflect your installation. By default it tries to auto detect what version of GD you have installed. On some very rare occasions it may falsely detect GD2 where only GD1 is installed. You must then set USE_GD2 to false.',0),
-25087 => array('This PHP build has not been configured with TTF support. You need to recompile your PHP installation with FreeType support.',0),
-25088 => array('You have a misconfigured GD font support. The call to imagefontwidth() fails.',0),
-25089 => array('You have a misconfigured GD font support. The call to imagefontheight() fails.',0),
-
-25090 => array('Unknown direction specified in call to StrokeBoxedText() [%s]',1),
-25091 => array('Internal font does not support drawing text at arbitrary angle. Use TTF fonts instead.',0),
-25092 => array('There is either a configuration problem with TrueType or a problem reading font file "%s" Make sure file exists and is in a readable place for the HTTP process. (If \'basedir\' restriction is enabled in PHP then the font file must be located in the document root.). It might also be a wrongly installed FreeType library. Try upgrading to at least FreeType 2.1.13 and recompile GD with the correct setup so it can find the new FT library.',1),
-25093 => array('Can not read font file "%s" in call to Image::GetBBoxTTF. Please make sure that you have set a font before calling this method and that the font is installed in the TTF directory.',1),
-25094 => array('Direction for text most be given as an angle between 0 and 90.',0),
-25095 => array('Unknown font font family specification. ',0),
-25096 => array('Can\'t allocate any more colors in palette image. Image has already allocated maximum of %d colors and the palette  is now full. Change to a truecolor image instead',0),
-25097 => array('Color specified as empty string in PushColor().',0),
-25098 => array('Negative Color stack index. Unmatched call to PopColor()',0),
-25099 => array('Parameters for brightness and Contrast out of range [-1,1]',0), 
-
-25100 => array('Problem with color palette and your GD setup. Please disable anti-aliasing or use GD2 with true-color. If you have GD2 library installed please make sure that you have set the USE_GD2 constant to true and truecolor is enabled.',0),
-25101 => array('Illegal numeric argument to SetLineStyle(): (%d)',1),
-25102 => array('Illegal string argument to SetLineStyle(): %s',1),
-25103 => array('Illegal argument to SetLineStyle %s',1),
-25104 => array('Unknown line style: %s',1),
-25105 => array('NULL data specified for a filled polygon. Check that your data is not NULL.',0),
-25106 => array('Image::FillToBorder : Can not allocate more colors',0),
-25107 => array('Can\'t write to file "%s". Check that the process running PHP has enough permission.',1),
-25108 => array('Can\'t stream image. This is most likely due to a faulty PHP/GD setup. Try to recompile PHP and use the built-in GD library that comes with PHP.',0),
-25109 => array('Your PHP (and GD-lib) installation does not appear to support any known graphic formats. You need to first make sure GD is compiled as a module to PHP. If you also want to use JPEG images you must get the JPEG library. Please see the PHP docs for details.',0),
-
-25110 => array('Your PHP installation does not support the chosen graphic format: %s',1),
-25111 => array('Can\'t delete cached image %s. Permission problem?',1),
-25112 => array('Cached imagefile (%s) has file date in the future.',1),
-25113 => array('Can\'t delete cached image "%s". Permission problem?',1),
-25114 => array('PHP has not enough permissions to write to the cache file "%s". Please make sure that the user running PHP has write permission for this file if you wan to use the cache system with JpGraph.',1),
-25115 => array('Can\'t set permission for cached image "%s". Permission problem?',1),
-25116 => array('Cant open file from cache "%s"',1), 
-25117 => array('Can\'t open cached image "%s" for reading.',1),
-25118 => array('Can\'t create directory "%s". Make sure PHP has write permission to this directory.',1),
-25119 => array('Can\'t set permissions for "%s". Permission problems?',1),
-
-25120 => array('Position for legend must be given as percentage in range 0-1',0),
-25121 => array('Empty input data array specified for plot. Must have at least one data point.',0),
-25122 => array('Stroke() must be implemented by concrete subclass to class Plot',0),
-25123 => array('You can\'t use a text X-scale with specified X-coords. Use a "int" or "lin" scale instead.',0),
-25124 => array('The input data array must have consecutive values from position 0 and forward. The given y-array starts with empty values (NULL)',0),
-25125 => array('Illegal direction for static line',0),
-25126 => array('Can\'t create truecolor image. Check that the GD2 library is properly setup with PHP.',0),
-25127 => array('The library has been configured for automatic encoding conversion of Japanese fonts. This requires that PHP has the mb_convert_encoding() function. Your PHP installation lacks this function (PHP needs the "--enable-mbstring" when compiled).',0),
-
-/*
-**---------------------------------------------------------------------------------------------
-** Pro-version strings
-**---------------------------------------------------------------------------------------------
-*/
-
-/*
-**  jpgraph_table 
-*/
-
-27001 => array('GTextTable: Invalid argument to Set(). Array argument must be 2 dimensional',0),
-27002 => array('GTextTable: Invalid argument to Set()',0),
-27003 => array('GTextTable: Wrong number of arguments to GTextTable::SetColor()',0),
-27004 => array('GTextTable: Specified cell range to be merged is not valid.',0),
-27005 => array('GTextTable: Cannot merge already merged cells in the range: (%d,%d) to (%d,%d)',4),
-27006 => array('GTextTable: Column argument = %d is outside specified table size.',1),
-27007 => array('GTextTable: Row argument = %d is outside specified table size.',1),
-27008 => array('GTextTable: Column and row size arrays must match the dimensions of the table',0),
-27009 => array('GTextTable: Number of table columns or rows are 0. Make sure Init() or Set() is called.',0),
-27010 => array('GTextTable: No alignment specified in call to SetAlign()',0),
-27011 => array('GTextTable: Unknown alignment specified in SetAlign(). Horizontal=%s, Vertical=%s',2),
-27012 => array('GTextTable: Internal error. Invalid alignment specified =%s',1),
-27013 => array('GTextTable: Argument to FormatNumber() must be a string.',0),
-27014 => array('GTextTable: Table is not initilaized with either a call to Set() or Init()',0),
-27015 => array('GTextTable: Cell image constrain type must be TIMG_WIDTH or TIMG_HEIGHT',0),
-
-/*
-**  jpgraph_windrose
-*/
-
-22001 => array('Total percentage for all windrose legs in a windrose plot can not exceed 100% !\n(Current max is: %d)',1),
-22002 => array('Graph is too small to have a scale. Please make the graph larger.',0),
-22004 => array('Label specification for windrose directions must have 16 values (one for each compass direction).',0),
-22005 => array('Line style for radial lines must be on of ("solid","dotted","dashed","longdashed") ',0),
-22006 => array('Illegal windrose type specified.',0),
-22007 => array('To few values for the range legend.',0),
-22008 => array('Internal error: Trying to plot free Windrose even though type is not a free windrose',0),
-22009 => array('You have specified the same direction twice, once with an angle and once with a compass direction (%f degrees)',0),
-22010 => array('Direction must either be a numeric value or one of the 16 compass directions',0),
-22011 => array('Windrose index must be numeric or direction label. You have specified index=%d',1),
-22012 => array('Windrose radial axis specification contains a direction which is not enabled.',0),
-22013 => array('You have specified the look&feel for the same compass direction twice, once with text and once with index (Index=%d)',1),
-22014 => array('Index for compass direction must be between 0 and 15.',0),
-22015 => array('You have specified an undefined Windrose plot type.',0),
-22016 => array('Windrose leg index must be numeric or direction label.',0),
-22017 => array('Windrose data contains a direction which is not enabled. Please adjust what labels are displayed.',0),
-22018 => array('You have specified data for the same compass direction twice, once with text and once with index (Index=%d)',1),
-22019 => array('Index for direction must be between 0 and 15. You can\'t specify angles for a Regular Windplot, only index and compass directions.',0),
-22020 => array('Windrose plot is too large to fit the specified Graph size. Please use WindrosePlot::SetSize() to make the plot smaller or increase the size of the Graph in the initial WindroseGraph() call.',0),
-
-/*
-**  jpgraph_odometer
-*/
-
-13001 => array('Unknown needle style (%d).',1),
-13002 => array('Value for odometer (%f) is outside specified scale [%f,%f]',3),
-
-/*
-**  jpgraph_barcode
-*/
-
-1001 => array('Unknown encoder specification: %s',1),
-1002 => array('Data validation failed. Can\'t encode [%s] using encoding "%s"',2),
-1003 => array('Internal encoding error. Trying to encode %s is not possible in Code 128',1),
-1004 => array('Internal barcode error. Unknown UPC-E encoding type: %s',1),
-1005 => array('Internal error. Can\'t encode character tuple (%s, %s) in Code-128 charset C',2),
-1006 => array('Internal encoding error for CODE 128. Trying to encode control character in CHARSET != A',0),
-1007 => array('Internal encoding error for CODE 128. Trying to encode DEL in CHARSET != B',0),
-1008 => array('Internal encoding error for CODE 128. Trying to encode small letters in CHARSET != B',0),
-1009 => array('Encoding using CODE 93 is not yet supported.',0),
-1010 => array('Encoding using POSTNET is not yet supported.',0),
-1011 => array('Non supported barcode backend for type %s',1),
-
-/*
-** PDF417
-*/
-
-26001 => array('PDF417: Number of Columns must be >= 1 and <= 30',0),
-26002 => array('PDF417: Error level must be between 0 and 8',0),
-26003 => array('PDF417: Invalid format for input data to encode with PDF417',0),
-26004 => array('PDF417: Can\'t encode given data with error level %d and %d columns since it results in too many symbols or more than 90 rows.',2),
-26005 => array('PDF417: Can\'t open file "%s" for writing',1),
-26006 => array('PDF417: Internal error. Data files for PDF417 cluster %d is corrupted.',1),
-26007 => array('PDF417: Internal error. GetPattern: Illegal Code Value = %d (row=%d)',2),
-26008 => array('PDF417: Internal error. Mode not found in mode list!! mode=%d',1),
-26009 => array('PDF417: Encode error: Illegal character. Can\'t encode character with ASCII code=%d',1),
-26010 => array('PDF417: Internal error: No input data in decode.',0),
-26011 => array('PDF417: Encoding error. Can\'t use numeric encoding on non-numeric data.',0),
-26012 => array('PDF417: Internal error. No input data to decode for Binary compressor.',0),
-26013 => array('PDF417: Internal error. Checksum error. Coefficient tables corrupted.',0),
-26014 => array('PDF417: Internal error. No data to calculate codewords on.',0),
-26015 => array('PDF417: Internal error. State transition table entry 0 is NULL. Entry 1 = (%s)',1),
-26016 => array('PDF417: Internal error: Unrecognized state transition mode in decode.',0),
-
-
-);
-
-/*
- ** EOF
- */
-
-?>
diff --git a/nightly-test-server/jpgraph/lang/prod.inc.php b/nightly-test-server/jpgraph/lang/prod.inc.php
deleted file mode 100644
index 3ca7192..0000000
--- a/nightly-test-server/jpgraph/lang/prod.inc.php
+++ /dev/null
@@ -1,355 +0,0 @@
-<?php
-/*=======================================================================
-// File: 	PROD.INC.PHP
-// Description: Special localization file with the same error messages 
-//              for all errors.
-// Created: 	2006-02-18
-// Author:	Johan Persson (johanp@aditus.nu)
-// Ver:		$Id$
-//
-// Copyright (c) Aditus Consulting. All rights reserved.
-//========================================================================
-*/
-
-// The single error message for all errors
-DEFINE('DEFAULT_ERROR_MESSAGE','We are sorry but the system could not generate the requested image. Please contact site support to resolve this problem. Problem no: #');
-
-// Note: Format of each error message is array(<error message>,<number of arguments>)
-$_jpg_messages = array(
-
-/*
-** Headers already sent error. This is formatted as HTML different since this will be sent back directly as text
-*/
-10  => array('<table border=1><tr><td><font color=darkred size=4><b>JpGraph Error:</b> 
-HTTP headers have already been sent.<br>Caused by output from file <b>%s</b> at line <b>%d</b>.</font></td></tr><tr><td><b>Explanation:</b><br>HTTP headers have already been sent back to the browser indicating the data as text before the library got a chance to send it\'s image HTTP header to this browser. This makes it impossible for the library to send back image data to the browser (since that would be interpretated as text by the browser and show up as junk text).<p>Most likely you have some text in your script before the call to <i>Graph::Stroke()</i>. If this texts gets sent back to the browser the browser will assume that all data is plain text. Look for any text, even spaces and newlines, that might have been sent back to the browser. <p>For example it is a common mistake to leave a blank line before the opening "<b>&lt;?php</b>".</td></tr></table>',2),
-
-
-11 => array(DEFAULT_ERROR_MESSAGE.'11',0),
-12 => array(DEFAULT_ERROR_MESSAGE.'12',0),
-13 => array(DEFAULT_ERROR_MESSAGE.'13',0),
-2001 => array(DEFAULT_ERROR_MESSAGE.'2001',0),
-2002 => array(DEFAULT_ERROR_MESSAGE.'2002',0),
-2003 => array(DEFAULT_ERROR_MESSAGE.'2003',0),
-2004 => array(DEFAULT_ERROR_MESSAGE.'2004',0),
-2005 => array(DEFAULT_ERROR_MESSAGE.'2005',0),
-2006 => array(DEFAULT_ERROR_MESSAGE.'2006',0),
-2007 => array(DEFAULT_ERROR_MESSAGE.'2007',0),
-2008 => array(DEFAULT_ERROR_MESSAGE.'2008',0),
-2009 => array(DEFAULT_ERROR_MESSAGE.'2009',0),
-2010 => array(DEFAULT_ERROR_MESSAGE.'2010',0),
-2011 => array(DEFAULT_ERROR_MESSAGE.'2011',0),
-2012 => array(DEFAULT_ERROR_MESSAGE.'2012',0),
-2013 => array(DEFAULT_ERROR_MESSAGE.'2013',0),
-2014 => array(DEFAULT_ERROR_MESSAGE.'2014',0),
-3001 => array(DEFAULT_ERROR_MESSAGE.'3001',0),
-4002 => array(DEFAULT_ERROR_MESSAGE.'4002',0),
-5001 => array(DEFAULT_ERROR_MESSAGE.'5001',0),
-5002 => array(DEFAULT_ERROR_MESSAGE.'5002',0),
-5003 => array(DEFAULT_ERROR_MESSAGE.'5003',0),
-5004 => array(DEFAULT_ERROR_MESSAGE.'5004',0),
-6001 => array(DEFAULT_ERROR_MESSAGE.'6001',0),
-6002 => array(DEFAULT_ERROR_MESSAGE.'6002',0),
-6003 => array(DEFAULT_ERROR_MESSAGE.'6003',0),
-6004 => array(DEFAULT_ERROR_MESSAGE.'6004',0),
-6005 => array(DEFAULT_ERROR_MESSAGE.'6005',0),
-6006 => array(DEFAULT_ERROR_MESSAGE.'6006',0),
-6007 => array(DEFAULT_ERROR_MESSAGE.'6007',0),
-6008 => array(DEFAULT_ERROR_MESSAGE.'6008',0),
-6009 => array(DEFAULT_ERROR_MESSAGE.'6009',0),
-6010 => array(DEFAULT_ERROR_MESSAGE.'6010',0),
-6011 => array(DEFAULT_ERROR_MESSAGE.'6011',0),
-6012 => array(DEFAULT_ERROR_MESSAGE.'6012',0),
-6015 => array(DEFAULT_ERROR_MESSAGE.'6015',0),
-6016 => array(DEFAULT_ERROR_MESSAGE.'6016',0),
-6017 => array(DEFAULT_ERROR_MESSAGE.'6017',0),
-6018 => array(DEFAULT_ERROR_MESSAGE.'6018',0),
-6019 => array(DEFAULT_ERROR_MESSAGE.'6019',0),
-6020 => array(DEFAULT_ERROR_MESSAGE.'6020',0),
-6021 => array(DEFAULT_ERROR_MESSAGE.'6021',0),
-6022 => array(DEFAULT_ERROR_MESSAGE.'6022',0),
-6023 => array(DEFAULT_ERROR_MESSAGE.'6023',0),
-6024 => array(DEFAULT_ERROR_MESSAGE.'6024',0),
-6025 => array(DEFAULT_ERROR_MESSAGE.'6025',0),
-6027 => array(DEFAULT_ERROR_MESSAGE.'6027',0),
-6028 => array(DEFAULT_ERROR_MESSAGE.'6028',0),
-6029 => array(DEFAULT_ERROR_MESSAGE.'6029',0),
-6030 => array(DEFAULT_ERROR_MESSAGE.'6030',0),
-6031 => array(DEFAULT_ERROR_MESSAGE.'6031',0),
-6032 => array(DEFAULT_ERROR_MESSAGE.'6032',0),
-7001 => array(DEFAULT_ERROR_MESSAGE.'7001',0),
-8001 => array(DEFAULT_ERROR_MESSAGE.'8001',0),
-8002 => array(DEFAULT_ERROR_MESSAGE.'8002',0),
-8003 => array(DEFAULT_ERROR_MESSAGE.'8003',0),
-8004 => array(DEFAULT_ERROR_MESSAGE.'8004',0),
-9001 => array(DEFAULT_ERROR_MESSAGE.'9001',0),
-10001 => array(DEFAULT_ERROR_MESSAGE.'10001',0),
-10002 => array(DEFAULT_ERROR_MESSAGE.'10002',0),
-11001 => array(DEFAULT_ERROR_MESSAGE.'11001',0),
-11002 => array(DEFAULT_ERROR_MESSAGE.'11002',0),
-11003 => array(DEFAULT_ERROR_MESSAGE.'11003',0),
-11004 => array(DEFAULT_ERROR_MESSAGE.'11004',0),
-11005 => array(DEFAULT_ERROR_MESSAGE.'11005',0),
-12001 => array(DEFAULT_ERROR_MESSAGE.'12001',0),
-12002 => array(DEFAULT_ERROR_MESSAGE.'12002',0),
-12003 => array(DEFAULT_ERROR_MESSAGE.'12003',0),
-12004 => array(DEFAULT_ERROR_MESSAGE.'12004',0),
-12005 => array(DEFAULT_ERROR_MESSAGE.'12005',0),
-12006 => array(DEFAULT_ERROR_MESSAGE.'12006',0),
-12007 => array(DEFAULT_ERROR_MESSAGE.'12007',0),
-12008 => array(DEFAULT_ERROR_MESSAGE.'12008',0),
-12009 => array(DEFAULT_ERROR_MESSAGE.'12009',0),
-12010 => array(DEFAULT_ERROR_MESSAGE.'12010',0),
-12011 => array(DEFAULT_ERROR_MESSAGE.'12011',0),
-12012 => array(DEFAULT_ERROR_MESSAGE.'12012',0),
-14001 => array(DEFAULT_ERROR_MESSAGE.'14001',0),
-14002 => array(DEFAULT_ERROR_MESSAGE.'14002',0),
-14003 => array(DEFAULT_ERROR_MESSAGE.'14003',0),
-14004 => array(DEFAULT_ERROR_MESSAGE.'14004',0),
-14005 => array(DEFAULT_ERROR_MESSAGE.'14005',0),
-14006 => array(DEFAULT_ERROR_MESSAGE.'14006',0),
-14007 => array(DEFAULT_ERROR_MESSAGE.'14007',0),
-15001 => array(DEFAULT_ERROR_MESSAGE.'15001',0),
-15002 => array(DEFAULT_ERROR_MESSAGE.'15002',0),
-15003 => array(DEFAULT_ERROR_MESSAGE.'15003',0),
-15004 => array(DEFAULT_ERROR_MESSAGE.'15004',0),
-15005 => array(DEFAULT_ERROR_MESSAGE.'15005',0),
-15006 => array(DEFAULT_ERROR_MESSAGE.'15006',0),
-15007 => array(DEFAULT_ERROR_MESSAGE.'15007',0),
-15008 => array(DEFAULT_ERROR_MESSAGE.'15008',0),
-15009 => array(DEFAULT_ERROR_MESSAGE.'15009',0),
-15010 => array(DEFAULT_ERROR_MESSAGE.'15010',0),
-15011 => array(DEFAULT_ERROR_MESSAGE.'15011',0),
-16001 => array(DEFAULT_ERROR_MESSAGE.'16001',0),
-16002 => array(DEFAULT_ERROR_MESSAGE.'16002',0),
-16003 => array(DEFAULT_ERROR_MESSAGE.'16003',0),
-16004 => array(DEFAULT_ERROR_MESSAGE.'16004',0),
-17001 => array(DEFAULT_ERROR_MESSAGE.'17001',0),
-17002 => array(DEFAULT_ERROR_MESSAGE.'17002',0),
-17004 => array(DEFAULT_ERROR_MESSAGE.'17004',0),
-18001 => array(DEFAULT_ERROR_MESSAGE.'18001',0),
-18002 => array(DEFAULT_ERROR_MESSAGE.'18002',0),
-18003 => array(DEFAULT_ERROR_MESSAGE.'18003',0),
-18004 => array(DEFAULT_ERROR_MESSAGE.'18004',0),
-18005 => array(DEFAULT_ERROR_MESSAGE.'18005',0),
-18006 => array(DEFAULT_ERROR_MESSAGE.'18006',0),
-18007 => array(DEFAULT_ERROR_MESSAGE.'18007',0),
-18008 => array(DEFAULT_ERROR_MESSAGE.'18008',0),
-19001 => array(DEFAULT_ERROR_MESSAGE.'19001',0),
-19002 => array(DEFAULT_ERROR_MESSAGE.'19002',0),
-19003 => array(DEFAULT_ERROR_MESSAGE.'19003',0),
-20001 => array(DEFAULT_ERROR_MESSAGE.'20001',0),
-20002 => array(DEFAULT_ERROR_MESSAGE.'20002',0),
-20003 => array(DEFAULT_ERROR_MESSAGE.'20003',0),
-21001 => array(DEFAULT_ERROR_MESSAGE.'21001',0),
-23001 => array(DEFAULT_ERROR_MESSAGE.'23001',0),
-23002 => array(DEFAULT_ERROR_MESSAGE.'23002',0),
-23003 => array(DEFAULT_ERROR_MESSAGE.'23003',0),
-24001 => array(DEFAULT_ERROR_MESSAGE.'24001',0),
-24002 => array(DEFAULT_ERROR_MESSAGE.'24002',0),
-24003 => array(DEFAULT_ERROR_MESSAGE.'24003',0),
-25001 => array(DEFAULT_ERROR_MESSAGE.'25001',0),
-25002 => array(DEFAULT_ERROR_MESSAGE.'25002',0),
-25003 => array(DEFAULT_ERROR_MESSAGE.'25003',0),
-25004 => array(DEFAULT_ERROR_MESSAGE.'25004',0),
-25005 => array(DEFAULT_ERROR_MESSAGE.'25005',0),
-25006 => array(DEFAULT_ERROR_MESSAGE.'25006',0),
-25007 => array(DEFAULT_ERROR_MESSAGE.'25007',0),
-25008 => array(DEFAULT_ERROR_MESSAGE.'25008',0),
-25009 => array(DEFAULT_ERROR_MESSAGE.'25009',0),
-25010 => array(DEFAULT_ERROR_MESSAGE.'25010',0),
-25011 => array(DEFAULT_ERROR_MESSAGE.'25011',0),
-25012 => array(DEFAULT_ERROR_MESSAGE.'25012',0),
-25013 => array(DEFAULT_ERROR_MESSAGE.'25013',0),
-25014 => array(DEFAULT_ERROR_MESSAGE.'25014',0),
-25015 => array(DEFAULT_ERROR_MESSAGE.'25015',0),
-25016 => array(DEFAULT_ERROR_MESSAGE.'25016',0),
-25017 => array(DEFAULT_ERROR_MESSAGE.'25017',0),
-25018 => array(DEFAULT_ERROR_MESSAGE.'25018',0),
-25019 => array(DEFAULT_ERROR_MESSAGE.'25019',0),
-25020 => array(DEFAULT_ERROR_MESSAGE.'25020',0),
-25021 => array(DEFAULT_ERROR_MESSAGE.'25021',0),
-25022 => array(DEFAULT_ERROR_MESSAGE.'25022',0),
-25023 => array(DEFAULT_ERROR_MESSAGE.'25023',0),
-25024 => array(DEFAULT_ERROR_MESSAGE.'25024',0),
-25025 => array(DEFAULT_ERROR_MESSAGE.'25025',0),
-25026 => array(DEFAULT_ERROR_MESSAGE.'25026',0),
-25027 => array(DEFAULT_ERROR_MESSAGE.'25027',0),
-25028 => array(DEFAULT_ERROR_MESSAGE.'25028',0),
-25029 => array(DEFAULT_ERROR_MESSAGE.'25029',0),
-25030 => array(DEFAULT_ERROR_MESSAGE.'25030',0),
-25031 => array(DEFAULT_ERROR_MESSAGE.'25031',0),
-25032 => array(DEFAULT_ERROR_MESSAGE.'25032',0),
-25033 => array(DEFAULT_ERROR_MESSAGE.'25033',0),
-25034 => array(DEFAULT_ERROR_MESSAGE.'25034',0),
-25035 => array(DEFAULT_ERROR_MESSAGE.'25035',0),
-25036 => array(DEFAULT_ERROR_MESSAGE.'25036',0),
-25037 => array(DEFAULT_ERROR_MESSAGE.'25037',0),
-25038 => array(DEFAULT_ERROR_MESSAGE.'25038',0),
-25039 => array(DEFAULT_ERROR_MESSAGE.'25039',0),
-25040 => array(DEFAULT_ERROR_MESSAGE.'25040',0),
-25041 => array(DEFAULT_ERROR_MESSAGE.'25041',0),
-25042 => array(DEFAULT_ERROR_MESSAGE.'25042',0),
-25043 => array(DEFAULT_ERROR_MESSAGE.'25043',0),
-25044 => array(DEFAULT_ERROR_MESSAGE.'25044',0),
-25045 => array(DEFAULT_ERROR_MESSAGE.'25045',0),
-25046 => array(DEFAULT_ERROR_MESSAGE.'25046',0),
-25047 => array(DEFAULT_ERROR_MESSAGE.'25047',0),
-25048 => array(DEFAULT_ERROR_MESSAGE.'25048',0),
-25049 => array(DEFAULT_ERROR_MESSAGE.'25049',0),
-25050 => array(DEFAULT_ERROR_MESSAGE.'25050',0),
-25051 => array(DEFAULT_ERROR_MESSAGE.'25051',0),
-25052 => array(DEFAULT_ERROR_MESSAGE.'25052',0),
-25053 => array(DEFAULT_ERROR_MESSAGE.'25053',0),
-25054 => array(DEFAULT_ERROR_MESSAGE.'25054',0),
-25055 => array(DEFAULT_ERROR_MESSAGE.'25055',0),
-25056 => array(DEFAULT_ERROR_MESSAGE.'25056',0),
-25057 => array(DEFAULT_ERROR_MESSAGE.'25057',0),
-25058 => array(DEFAULT_ERROR_MESSAGE.'25058',0),
-25059 => array(DEFAULT_ERROR_MESSAGE.'25059',0),
-25060 => array(DEFAULT_ERROR_MESSAGE.'25060',0),
-25061 => array(DEFAULT_ERROR_MESSAGE.'25061',0),
-25062 => array(DEFAULT_ERROR_MESSAGE.'25062',0),
-25063 => array(DEFAULT_ERROR_MESSAGE.'25063',0),
-25064 => array(DEFAULT_ERROR_MESSAGE.'25064',0),
-25065 => array(DEFAULT_ERROR_MESSAGE.'25065',0),
-25066 => array(DEFAULT_ERROR_MESSAGE.'25066',0),
-25067 => array(DEFAULT_ERROR_MESSAGE.'25067',0),
-25068 => array(DEFAULT_ERROR_MESSAGE.'25068',0),
-25069 => array(DEFAULT_ERROR_MESSAGE.'25069',0),
-25070 => array(DEFAULT_ERROR_MESSAGE.'25070',0),
-25071 => array(DEFAULT_ERROR_MESSAGE.'25071',0),
-25072 => array(DEFAULT_ERROR_MESSAGE.'25072',0),
-25073 => array(DEFAULT_ERROR_MESSAGE.'25073',0),
-25074 => array(DEFAULT_ERROR_MESSAGE.'25074',0),
-25075 => array(DEFAULT_ERROR_MESSAGE.'25075',0),
-25077 => array(DEFAULT_ERROR_MESSAGE.'25077',0),
-25078 => array(DEFAULT_ERROR_MESSAGE.'25078',0),
-25079 => array(DEFAULT_ERROR_MESSAGE.'25079',0),
-25080 => array(DEFAULT_ERROR_MESSAGE.'25080',0),
-25081 => array(DEFAULT_ERROR_MESSAGE.'25081',0),
-25082 => array(DEFAULT_ERROR_MESSAGE.'25082',0),
-25083 => array(DEFAULT_ERROR_MESSAGE.'25083',0),
-25084 => array(DEFAULT_ERROR_MESSAGE.'25084',0),
-25085 => array(DEFAULT_ERROR_MESSAGE.'25085',0),
-25086 => array(DEFAULT_ERROR_MESSAGE.'25086',0),
-25087 => array(DEFAULT_ERROR_MESSAGE.'25087',0),
-25088 => array(DEFAULT_ERROR_MESSAGE.'25088',0),
-25089 => array(DEFAULT_ERROR_MESSAGE.'25089',0),
-25090 => array(DEFAULT_ERROR_MESSAGE.'25090',0),
-25091 => array(DEFAULT_ERROR_MESSAGE.'25091',0),
-25092 => array(DEFAULT_ERROR_MESSAGE.'25092',0),
-25093 => array(DEFAULT_ERROR_MESSAGE.'25093',0),
-25094 => array(DEFAULT_ERROR_MESSAGE.'25094',0),
-25095 => array(DEFAULT_ERROR_MESSAGE.'25095',0),
-25096 => array(DEFAULT_ERROR_MESSAGE.'25096',0),
-25097 => array(DEFAULT_ERROR_MESSAGE.'25097',0),
-25098 => array(DEFAULT_ERROR_MESSAGE.'25098',0),
-25099 => array(DEFAULT_ERROR_MESSAGE.'25099',0),
-25100 => array(DEFAULT_ERROR_MESSAGE.'25100',0),
-25101 => array(DEFAULT_ERROR_MESSAGE.'25101',0),
-25102 => array(DEFAULT_ERROR_MESSAGE.'25102',0),
-25103 => array(DEFAULT_ERROR_MESSAGE.'25103',0),
-25104 => array(DEFAULT_ERROR_MESSAGE.'25104',0),
-25105 => array(DEFAULT_ERROR_MESSAGE.'25105',0),
-25106 => array(DEFAULT_ERROR_MESSAGE.'25106',0),
-25107 => array(DEFAULT_ERROR_MESSAGE.'25107',0),
-25108 => array(DEFAULT_ERROR_MESSAGE.'25108',0),
-25109 => array(DEFAULT_ERROR_MESSAGE.'25109',0),
-25110 => array(DEFAULT_ERROR_MESSAGE.'25110',0),
-25111 => array(DEFAULT_ERROR_MESSAGE.'25111',0),
-25112 => array(DEFAULT_ERROR_MESSAGE.'25112',0),
-25113 => array(DEFAULT_ERROR_MESSAGE.'25113',0),
-25114 => array(DEFAULT_ERROR_MESSAGE.'25114',0),
-25115 => array(DEFAULT_ERROR_MESSAGE.'25115',0),
-25116 => array(DEFAULT_ERROR_MESSAGE.'25116',0),
-25117 => array(DEFAULT_ERROR_MESSAGE.'25117',0),
-25118 => array(DEFAULT_ERROR_MESSAGE.'25118',0),
-25119 => array(DEFAULT_ERROR_MESSAGE.'25119',0),
-25120 => array(DEFAULT_ERROR_MESSAGE.'25120',0),
-25121 => array(DEFAULT_ERROR_MESSAGE.'25121',0),
-25122 => array(DEFAULT_ERROR_MESSAGE.'25122',0),
-25123 => array(DEFAULT_ERROR_MESSAGE.'25123',0),
-25124 => array(DEFAULT_ERROR_MESSAGE.'25124',0),
-25125 => array(DEFAULT_ERROR_MESSAGE.'25125',0),
-25126 => array(DEFAULT_ERROR_MESSAGE.'25126',0),
-25127 => array(DEFAULT_ERROR_MESSAGE.'25126',0),
-24003 => array(DEFAULT_ERROR_MESSAGE.'24003',0),
-24004 => array(DEFAULT_ERROR_MESSAGE.'24004',0),
-24005 => array(DEFAULT_ERROR_MESSAGE.'24005',0),
-24006 => array(DEFAULT_ERROR_MESSAGE.'24006',0),
-24007 => array(DEFAULT_ERROR_MESSAGE.'24007',0),
-24008 => array(DEFAULT_ERROR_MESSAGE.'24008',0),
-24009 => array(DEFAULT_ERROR_MESSAGE.'24009',0),
-24010 => array(DEFAULT_ERROR_MESSAGE.'24010',0),
-24011 => array(DEFAULT_ERROR_MESSAGE.'24011',0),
-24012 => array(DEFAULT_ERROR_MESSAGE.'24012',0),
-24013 => array(DEFAULT_ERROR_MESSAGE.'24013',0),
-24014 => array(DEFAULT_ERROR_MESSAGE.'24014',0),
-24015 => array(DEFAULT_ERROR_MESSAGE.'24015',0),
-22001 => array(DEFAULT_ERROR_MESSAGE.'22001',0),
-22002 => array(DEFAULT_ERROR_MESSAGE.'22002',0),
-22004 => array(DEFAULT_ERROR_MESSAGE.'22004',0),
-22005 => array(DEFAULT_ERROR_MESSAGE.'22005',0),
-22006 => array(DEFAULT_ERROR_MESSAGE.'22006',0),
-22007 => array(DEFAULT_ERROR_MESSAGE.'22007',0),
-22008 => array(DEFAULT_ERROR_MESSAGE.'22008',0),
-22009 => array(DEFAULT_ERROR_MESSAGE.'22009',0),
-22010 => array(DEFAULT_ERROR_MESSAGE.'22010',0),
-22011 => array(DEFAULT_ERROR_MESSAGE.'22011',0),
-22012 => array(DEFAULT_ERROR_MESSAGE.'22012',0),
-22013 => array(DEFAULT_ERROR_MESSAGE.'22013',0),
-22014 => array(DEFAULT_ERROR_MESSAGE.'22014',0),
-22015 => array(DEFAULT_ERROR_MESSAGE.'22015',0),
-22016 => array(DEFAULT_ERROR_MESSAGE.'22016',0),
-22017 => array(DEFAULT_ERROR_MESSAGE.'22017',0),
-22018 => array(DEFAULT_ERROR_MESSAGE.'22018',0),
-22019 => array(DEFAULT_ERROR_MESSAGE.'22019',0),
-22020 => array(DEFAULT_ERROR_MESSAGE.'22020',0),
-13001 => array(DEFAULT_ERROR_MESSAGE.'13001',0),
-13002 => array(DEFAULT_ERROR_MESSAGE.'13002',0),
-1001 => array(DEFAULT_ERROR_MESSAGE.'1001',0),
-1002 => array(DEFAULT_ERROR_MESSAGE.'1002',0),
-1003 => array(DEFAULT_ERROR_MESSAGE.'1003',0),
-1004 => array(DEFAULT_ERROR_MESSAGE.'1004',0),
-1005 => array(DEFAULT_ERROR_MESSAGE.'1005',0),
-1006 => array(DEFAULT_ERROR_MESSAGE.'1006',0),
-1007 => array(DEFAULT_ERROR_MESSAGE.'1007',0),
-1008 => array(DEFAULT_ERROR_MESSAGE.'1008',0),
-1009 => array(DEFAULT_ERROR_MESSAGE.'1009',0),
-1010 => array(DEFAULT_ERROR_MESSAGE.'1010',0),
-1011 => array(DEFAULT_ERROR_MESSAGE.'1011',0),
-26001 => array(DEFAULT_ERROR_MESSAGE.'26001',0),
-26002 => array(DEFAULT_ERROR_MESSAGE.'26002',0),
-26003 => array(DEFAULT_ERROR_MESSAGE.'26003',0),
-26004 => array(DEFAULT_ERROR_MESSAGE.'26004',0),
-26005 => array(DEFAULT_ERROR_MESSAGE.'26005',0),
-26006 => array(DEFAULT_ERROR_MESSAGE.'26006',0),
-26007 => array(DEFAULT_ERROR_MESSAGE.'26007',0),
-26008 => array(DEFAULT_ERROR_MESSAGE.'26008',0),
-26009 => array(DEFAULT_ERROR_MESSAGE.'26009',0),
-26010 => array(DEFAULT_ERROR_MESSAGE.'26010',0),
-26011 => array(DEFAULT_ERROR_MESSAGE.'26011',0),
-26012 => array(DEFAULT_ERROR_MESSAGE.'26012',0),
-26013 => array(DEFAULT_ERROR_MESSAGE.'26013',0),
-26014 => array(DEFAULT_ERROR_MESSAGE.'26014',0),
-26015 => array(DEFAULT_ERROR_MESSAGE.'26015',0),
-26016 => array(DEFAULT_ERROR_MESSAGE.'26016',0),
-
-27001 => array(DEFAULT_ERROR_MESSAGE.'27001',0),
-27002 => array(DEFAULT_ERROR_MESSAGE.'27002',0),
-27003 => array(DEFAULT_ERROR_MESSAGE.'27003',0),
-27004 => array(DEFAULT_ERROR_MESSAGE.'27004',0),
-27005 => array(DEFAULT_ERROR_MESSAGE.'27005',0),
-27006 => array(DEFAULT_ERROR_MESSAGE.'27006',0),
-27007 => array(DEFAULT_ERROR_MESSAGE.'27007',0),
-27008 => array(DEFAULT_ERROR_MESSAGE.'27008',0),
-27009 => array(DEFAULT_ERROR_MESSAGE.'27009',0),
-27010 => array(DEFAULT_ERROR_MESSAGE.'27010',0),
-27011 => array(DEFAULT_ERROR_MESSAGE.'27011',0),
-27012 => array(DEFAULT_ERROR_MESSAGE.'27012',0),
-27013 => array(DEFAULT_ERROR_MESSAGE.'27013',0),
-27014 => array(DEFAULT_ERROR_MESSAGE.'27014',0),
-27015 => array(DEFAULT_ERROR_MESSAGE.'27015',0),
-);
-
-?>
diff --git a/nightly-test-server/locgraph.php b/nightly-test-server/locgraph.php
deleted file mode 100644
index 6b8faee..0000000
--- a/nightly-test-server/locgraph.php
+++ /dev/null
@@ -1,94 +0,0 @@
-<?php
-include("jpgraph/jpgraph.php");
-include("jpgraph/jpgraph_line.php");
-include("jpgraph/jpgraph_utils.inc");
-include("jpgraph/jpgraph_date.php");
-
-if(isset($HTTP_GET_VARS['start'])){
-	$start = $HTTP_GET_VARS['start'];
-}
-if(isset($HTTP_GET_VARS['end'])){
-	$end = $HTTP_GET_VARS['end'];
-}
-
-$locgraphlink=mysql_connect("localhost","llvm","ll2002vm");
-mysql_select_db("nightlytestresults");
-
-
-$lines  = array();
-$files = array();
-$dirs = array();
-$xdata = array();
-
-/********************************
- *
- * This is where we choose the bounds on the graph
- * 
- ********************************/
-if(isset($start) && isset($end)){
-	$query = mysql_query("select * from code where added <= \"$end\" and added >= \"$start\" order by added desc") or die (mysql_error());
-}
-else if(!isset($start) && isset($end)){
-	$query = mysql_query("select * from code where added <=\"$end\" order by added desc") or die (mysql_error());
-}	
-else if(isset($start) && !isset($end)){
-	$query = mysql_query("select * from code where added >= \"$start\" order by added desc") or die (mysql_error());
-}
-else{
-	$query = mysql_query("select * from code order by added desc") or die (mysql_error());
-}
-
-if(isset($HTTP_GET_VARS['xsize'])){
-	$xsize = $HTTP_GET_VARS['xsize'];
-}
-else{
-	$xsize=400;
-}
-
-if(isset($HTTP_GET_VARS['ysize'])){
-	$ysize = $HTTP_GET_VARS['ysize'];
-}
-else{
-	$ysize=250;
-}
-
-
-while($row = mysql_fetch_array($query)){
-	array_push($lines, $row['loc']);
-	#array_push($dirs, $row['dirs']);
-	#array_push($files, $row['files']);
-	preg_match("/(\d\d\d\d)\-(\d\d)\-(\d\d)\s(\d\d)\:(\d\d)\:(\d\d)/", $row['added'], $values);
-	$seconds = mktime($values[4], $values[5], $values[6], $values[2], $values[3],$values[1]);
-	array_push($xdata, $seconds);
-}
-
-function  TimeCallback( $aVal) {
-    return Date ('m-d-y', $aVal);
-}
-$graph = new Graph($xsize,$ysize);
-$graph->SetScale("datelin");
-$graph->tabtitle->Set(" Lines of Code in CVS Repository ");
-#$graph->tabtitle->SetFont(FF_ARIAL,FS_BOLD,13);
-$graph->xaxis->SetLabelAngle(90);
-$graph->SetMargin(70,40,30,80);
-$graph->xaxis->title->SetMargin(70);
-$graph->yaxis->title->SetMargin(30);
-$graph->SetFrame(false);
-$graph->SetMarginColor("White");
-$graph->legend->SetShadow('gray@0.4',5);
-$graph->legend->SetPos(0.2,0.13,'left','top');
-$graph->legend->hide(true);
-$graph->ygrid->SetFill(true,'#EFEFEF@0.5','#BBCCFF@0.5');
-$graph->xgrid->Show();
-$graph->xaxis->scale->SetTimeAlign(MONTHADJ_1);
-$graph->xaxis-> SetLabelFormatCallback( 'TimeCallback');
-
-$line = new LinePlot($lines, $xdata);
-$line->SetLegend("Lines of code");
-$line->SetColor("red");
-
-$graph->Add($line);
-$graph->Stroke();
-
-mysql_close($locgraphlink);
-?>
diff --git a/nightly-test-server/machine.php b/nightly-test-server/machine.php
deleted file mode 100644
index 184fec5..0000000
--- a/nightly-test-server/machine.php
+++ /dev/null
@@ -1,456 +0,0 @@
-<?
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-	print "Error: Incorrect URL for machine.php!\n";
-        die();
-}
-$machine = $HTTP_GET_VARS['machine'];
-		
-if(!(include "NightlyTester.php")){
-	print "Error: could not load necessary files!\n";
-        die();
-}
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine);
-$machine_name = $row['name'];
-if(strcmp($row['nickname'],"")!=0){
-	$machine_name=$row['nickname'];
-}
-
-
-?>
-
-<html>
-<head>
-<title>LLVM Machine Test Results For <?php print $machine_name ?></title>
-<script type="text/javascript" src="popup.js"></script>
-<STYLE TYPE="text/css">
-<!--
-  @import url(style.css);
--->
-</STYLE>
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Machine Test Results For <?php print $machine_name ?></b></font></center><br>
-
-<table cellspacing=5 cellpadding=5 border=0>
-        <tr>
-                <td valign=top>
-                        <? 
-			$machine = $HTTP_GET_VARS['machine'];
-			$night = -1;
-			include "sidebar.php"; 
-			?>
-                </td>
-                <td valign=top>
-
-<?
-
-print "<table border=0 cellpadding=0 cellspacing=5>\n";
-print "<tr>\n";
-print "<td><b>Nickname:</b></td>";
-print "<td>{$row['nickname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>uname:</b></td>";
-//print $row['uname'];
-print "<td>{$row['uname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hardware:</b></td>";
-print "<td>{$row['hardware']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>OS:</b></td>";
-print "<td>{$row['os']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hostname:</b></td>";
-print "<td>{$row['name']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>GCC:</b></td>";
-print "<td>{$row['gcc']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Machine ID:</b></td>";
-print "<td>{$row['id']}</td>\n";
-print "</tr>\n";
-print "</table>\n<br>\n";
-
-
-$result = getNightsResource($machine);
-$recent=mysql_fetch_array($result);
-$recent_id=$recent['id'];
-$cur_date = $recent['added'];
-$old=mysql_fetch_array($result);
-$old_id=$old['id'];
-mysql_free_result($result);
-
-include("ProgramResults.php");
-if(is_numeric($recent_id) && is_numeric($old_id)){
-	$today_results = GetDayResults($recent_id, $category_array);
-	$yesterday_results = GetDayResults($old_id, $category_array);
-	$percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results);
-
-	/* note: $medium_change, $large_change, and $crazy_change are defined in ProgramResult.php */
-	print "<table border=0><tr><td>\n";
-	
-	print "<table border=0>\n";
-	Print "<tr><td>$medium_change % differences from yesterday:</td><td> $medium_number</td></tr>\n";
-	Print "<tr><td>$large_change % differences from yesterday:</td><td> $large_number</td></tr>\n";
-	Print "<tr><td>$crazy_change % differences from yesterday:</td><td> $crazy_number</td></tr>\n";
-	print "</table>\n";
-	
-	print "</td><td valign=top>";
-
-	print "<span style=\"position:relative;\">\n";
-	print "<span id=\"differences\" class=\"popup\">\n";
-	print "<pre>The number of measurements that signifigantly<br>changed from the previous test.</pre>\n";
-	print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('differences');\">?</a></span>\n";
-
-	print "</td></tr></table>\n";
-}
-
-print "<form method=GET action=\"machinegraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine\">\n";
-print "<input type=hidden name=night value=\"$recent_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-print "<input type=hidden name=start value=\"2000-01-01 01:01:01\">\n";
-
-echo "<table border=1 cellpadding=0 cellspacing=0>\n";
-echo "<tr bgcolor=#FFCC99>";
-	echo "<td>";
-		echo "Date added";
-	echo "</td>";
-	
-	echo "<td align=center>";
-		echo "CVS checkout time";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"getcvstime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Configure time cpu";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"configuretime_cpu\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Configure time wall";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"configuretime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Build time cpu";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"buildtime_cpu\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Build time wall";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"buildtime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Dejagnu time cpu";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"dejagnutime_cpu\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-		echo "Dejagnu time wall";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"dejagnutime_wall\">\n";
-	echo "</td>";
-	echo "<td align=center>";
-                echo "# of expected test passes";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"teststats_exppass\">\n";
-        echo "</td>";
-        echo "<td align=center>";
-                echo "# of unexpected test failures";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"teststats_unexpfail\">\n";
-        echo "</td>";
-        echo "<td align=center>";
-                echo "# of expected test failures";
-		print "<br><input type=checkbox name=\"measure[]\" value=\"teststats_expfail\">\n";
-        echo "</td>";
-	echo "<td align=center>";
-		echo "# of warnings";
-	echo "</td>";
-	echo "<td>";
-	echo "</td>";
-echo "</tr>";
-
-$result = getNightsResource($machine);
-$line=1;
-$row = mysql_fetch_array($result);
-$x=0;
-
-
-while($x<10 && $prev_row = mysql_fetch_array($result)){
-	$warnings ="";
-	if(strcmp($row['warnings'],"")!=0){
-		$warnings=$row['warnings'];
-	}
-	$num_warnings = preg_match_all('/warning/', $warnings, $match);	
-
-	if(strpos($row['buildstatus'],"OK")===FALSE){
-		print "\t<tr bgcolor=#FFCC33>\n";
-		$build_ok=0;
-	}
-	else if($line % 2 ==0){
-		print "\t<tr bgcolor=#DDDDDD>\n";
-		$build_ok=1;
-	}
-	else{
-		print "\t<tr bgcolor='white'>\n";
-		$build_ok=1;
-	}	
-	$line++;
-	
-	#this test is to test whether the test that precedes this failed,
-	#thus the test would have bogus data and we shouldnt color based on its
-	#results
-	if(strpos($prev_row['buildstatus'],"OK")===false){
-		$prev_build_ok=0;
-	}
-	else{
-		$prev_build_ok=1;
-	}
-
-	/*~~~~~~~~~~~~ Date of test ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$row['added']);
-		echo "$date";
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Get CVS Wall Time ~~~~~~~~~~~~*/
-
-
-	echo "<td>";
-		echo $row['getcvstime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Configure Time CPU ~~~~~~~~~~~~*/
-	if($prev_row['configuretime_cpu']!=0 && $build_ok && $prev_build_ok){
-		$delta = round(( ($prev_row['configuretime_cpu'] - $row['configuretime_cpu']) / $prev_row['configuretime_cpu'] ) * 100,2);
-		if ($delta > 20){
-			print "<td bgcolor=#CCFFCC>{$row['configuretime_cpu']}</td>";
-		}
-		else if ($delta < -20){
-			print "<td bgcolor=#FFAAAA>{$row['configuretime_cpu']}</td>";
-		}
-		else{
-			print "<td>{$row['configuretime_cpu']}</td>";
-		}
-	}
-	else{
-		print "<td>{$row['configuretime_cpu']}</td>";
-	}
-
-	/*~~~~~~~~~~~~ Configure Time Wall ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		echo $row['configuretime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Build Time CPU ~~~~~~~~~~~~*/
-
-	if($prev_row['buildtime_cpu']!=0 && $build_ok && $prev_build_ok){
-		$delta = round(( ($prev_row['buildtime_cpu'] - $row['buildtime_cpu']) / $prev_row['buildtime_cpu'] ) * 100,2);
-		if ($delta > 10){
-			print "<td bgcolor=#CCFFCC>{$row['buildtime_cpu']}</td>";
-		}
-		else if ($delta < -10){
-			print "<td bgcolor=#FFAAAA>{$row['buildtime_cpu']}</td>";
-		}
-		else{
-			print "<td>{$row['buildtime_cpu']}</td>";
-		}
-	}
-	else{
-		print "<td>{$row['buildtime_cpu']}</td>";
-	}
-
-	/*~~~~~~~~~~~~ Build Time Wall ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		echo $row['buildtime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ Dejagnu Time CPU ~~~~~~~~~~~~*/
-
-	if($prev_row['dejagnutime_cpu']!=0 && $build_ok && $prev_build_ok){
-		$delta = round( ( ($prev_row['dejagnutime_cpu'] - $row['dejagnutime_cpu']) / $prev_row['dejagnutime_cpu'] ) * 100,2);
-		if ($delta > 10){
-			print "<td bgcolor=#CCFFCC>{$row['dejagnutime_cpu']}</td>";
-		}
-		else if ($delta < -10){
-			print "<td bgcolor=#FFAAAA>{$row['dejagnutime_cpu']}</td>";
-		}
-		else{
-			print "<td>{$row['dejagnutime_cpu']}</td>";
-		}
-	}
-	else{
-		print "<td>{$row['dejagnutime_cpu']}</td>";
-	}
-	
-
-	/*~~~~~~~~~~~~ Dejagnu Time Wall ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		echo $row['dejagnutime_wall'];
-	echo "</td>";
-
-	/*~~~~~~~~~~~~ # of expected passes ~~~~~~~~~~~~*/
-
-	if ($row['teststats_exppass'] > $prev_row['teststats_exppass'] && $build_ok && $prev_build_ok){
-		$color="#CCFFCC";
-	}
-	else if ($row['teststats_exppass'] < $prev_row['teststats_exppass'] && $build_ok  && $prev_build_ok){
-		$color="#FFAAAA";	
-	}
-	else{
-		$color="white";
-	}
-	if(!$build_ok){
-		print "<td>{$row['teststats_exppass']}</td>";		
-	}
-	else{
-		print "<td bgcolor=$color>{$row['teststats_exppass']}</td>";		
-	}
-	/*~~~~~~~~~~~~ # of unexpected failures ~~~~~~~~~~~~*/
-
-	if ($row['teststats_unexpfail'] < $prev_row['teststats_unexpfail'] && $build_ok && $prev_build_ok){
-		$color="#CCFFCC";
-	}
-	else if ($row['teststats_unexpfail'] > $prev_row['teststats_unexpfail'] && $build_ok && $prev_build_ok){
-		$color="#FFAAAA";	
-	}
-	else{
-		$color="white";
-	}
-
-	if(!$build_ok){
-		print "<td>{$row['teststats_unexpfail']}</td>";
-	}
-	else if($row['teststats_exppass']!=0){
-		print "<td bgcolor=$color><a href=\"test.php?machine=$machine&night={$row['id']}#unexpfail_tests\">{$row['teststats_unexpfail']}</a></td>";
-	}
-	else{
-		print "<td bgcolor=$color>{$row['teststats_unexpfail']}</td>";		
-	}
-
-	/*~~~~~~~~~~~~ # of expected failures ~~~~~~~~~~~~*/
-
-				if ($row['teststats_expfail'] < $prev_row['teststats_expfail'] && $build_ok && $prev_build_ok){
-		print "<td bgcolor=#CCFFCC>{$row['teststats_expfail']}</td>";
-	}
-	else if ($row['teststats_expfail'] > $prev_row['teststats_expfail'] && $build_ok && $prev_build_ok){
-		print "<td bgcolor=#FFAAAA>{$row['teststats_expfail']}</td>";
-	}
-	else{
-		print "<td>{$row['teststats_expfail']}</td>";
-	}
-
-	/*~~~~~~~~~~~~ Number Of Warnings ~~~~~~~~~~~~*/
-
-	if($num_warnings>0){
-		print "\t<td><a href=\"test.php?machine=$machine&night={$row['id']}#warnings\">$num_warnings</a></td>\n";
-	}	
-	else{
-		print "\t<td>$num_warnings</td>\n";
-	}
-
-	/*~~~~~~~~~~~~ Link to test page ~~~~~~~~~~~~*/
-
-	echo "<td>";
-		print "<a href=\"test.php?machine=$machine&night={$row['id']}\">View details</a>\n";
-	echo "</td>";
-	echo "</tr>";
-	
-	$row = $prev_row;
-	$x++;
-} #end while
-
-mysql_free_result($result);
-
-/*******************************
- *
- * Taking care of last row
- *******************************/
-
-if($line % 2 ==0){
-	print "\t<tr bgcolor=#DDDDDD>\n";
-}
-else{
-	print "\t<tr bgcolor='white'>\n";
-}	
-$line++;
-echo "<td>";
-	$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$row['added']);
-	echo $date;
-echo "</td>";
-echo "<td>";
-	echo $row['getcvstime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['configuretime_cpu'];
-echo "</td>";
-echo "<td>";
-	echo $row['configuretime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['buildtime_cpu'];
-echo "</td>";
-echo "<td>";
-	echo $row['buildtime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['dejagnutime_cpu'];
-echo "</td>";
-echo "<td>";
-	echo $row['dejagnutime_wall'];
-echo "</td>";
-echo "<td>";
-	echo $row['teststats_exppass'];
-echo "</td>";
-echo "<td>";
-       	echo $row['teststats_unexpfail'];
-echo "</td>";
-echo "<td>";
-     	echo $row['teststats_expfail'];
-echo "</td>";
-echo "<td>";
-	if(isset($num_warnings)){
-		echo $num_warnings;
-	}
-	else{
-		echo "-";
-	}
-echo "</td>";
-echo "<td>";
-	print "<a href=\"test.php?machine=$machine&night={$row['id']}\">View details</a>\n";
-echo "</td>";
-echo "</tr>";
-
-echo "</table>";
-
-
-print "<input type=submit name=action value=\"Graph Column\"> | ";
-print "<input type=reset>\n";
-print "<span style=\"position:relative;\">\n";
-print "<span id=\"graph\" class=\"popup2\">\n";
-print "<pre>Produces a graph of the selected columns over<br>time.</pre>\n";
-print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('graph');\">?</a></span>\n";
-print "</form>\n";
-
-mysql_close($mysql_link);
-?>
-
-                </td>
-        </tr>
-</table>
-
-</body>
-</html>
diff --git a/nightly-test-server/machinegraph.php b/nightly-test-server/machinegraph.php
deleted file mode 100644
index 4c69de4..0000000
--- a/nightly-test-server/machinegraph.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-if(!isset($HTTP_GET_VARS['measure'])){
-        die("ERROR: Please select a checkbox at the top of a column to create a graph.\n");
-}
-
-$measure=$HTTP_GET_VARS['measure'];
-if(sizeof($measure)>1){
-	include("multiplemachinegraph.php");
-}
-else{
-	include("individualmachinegraph.php");
-}
-
-?>
\ No newline at end of file
diff --git a/nightly-test-server/multiplemachinegraph.php b/nightly-test-server/multiplemachinegraph.php
deleted file mode 100644
index 451d09b..0000000
--- a/nightly-test-server/multiplemachinegraph.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$machine_id = $HTTP_GET_VARS['machine'];
-$machine = $HTTP_GET_VARS['machine'];
-
-if(!isset($HTTP_GET_VARS['night']) || !is_numeric($HTTP_GET_VARS['night'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$night_id = $HTTP_GET_VARS['night'];
-$night = $HTTP_GET_VARS['night'];
-
-$end = "";
-if(isset($HTTP_GET_VARS['end'])){
-	if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-		$end = "&end={$HTTP_GET_VARS['end']}";
-	}
-	else{
-		print "Error: Incorrect URL!\n";
-        	die();
-	}
-}
-$end_url="";
-$start_url="";
-
-if(!isset($HTTP_GET_VARS['measure'])){
-	die("ERROR: Incorrect URL\n");
-}
-$measure_arr = $HTTP_GET_VARS['measure'];
-
-if(!(include "NightlyTester.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-if(!(include"ProgramResults.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine_id);
-$today_row = getNightInfo($night_id);
-$cur_date=$today_row['added'];
-
-?>
-
-<html>
-<head><title>LLVM Nightly Test Results Machine Graph</title></head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results Machine Graph</b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-                        include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-
-
-foreach ($measure_arr as $measure){
-	print "<a href=\"individualmachinegraph.php?name=$measure&xsize=800&ysize=500&machine=$machine_id&measure[]=$measure$end\">\n";
-	print "\t<img src=\"drawmachinegraph.php?name=$measure&xsize=800&ysize=400&machine=$machine_id&measure[]=$measure$end\" alt=\"$measure\" height=400 width=800>\n";
-	print "</a><br>\n";
-
-}
-	
-	
-
-?>
-		
-			
-
-</td></tr></table>
-</body></html>
diff --git a/nightly-test-server/multipleresultsgraph.php b/nightly-test-server/multipleresultsgraph.php
deleted file mode 100644
index 99d0434..0000000
--- a/nightly-test-server/multipleresultsgraph.php
+++ /dev/null
@@ -1,102 +0,0 @@
-<?php
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$machine_id = $HTTP_GET_VARS['machine'];
-$machine = $HTTP_GET_VARS['machine'];
-
-if(!isset($HTTP_GET_VARS['night']) || !is_numeric($HTTP_GET_VARS['night'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$night_id = $HTTP_GET_VARS['night'];
-$night = $HTTP_GET_VARS['night'];
-
-$end = "";
-if(isset($HTTP_GET_VARS['end'])){
-        if(preg_match("/\d\d\d\d\-\d\d\-\d\d \d\d:\d\d:\d\d/", "{$HTTP_GET_VARS['end']}")>0){
-                $end = "&end={$HTTP_GET_VARS['end']}";
-        }
-        else{
-                print "Error: Incorrect URL!\n";
-                die();
-        }
-}
-//the following variables are added for sidebar.php to work
-$end_url="";
-$start_url="";
-
-if(!isset($HTTP_GET_VARS['measure'])){
-        die("ERROR: Incorrect URL\n");
-}
-$measure_arr = $HTTP_GET_VARS['measure'];
-
-if(!isset($HTTP_GET_VARS['program'])){
-        die("ERROR: Incorrect URL\n");
-}
-$program_arr = $HTTP_GET_VARS['program'];
-
-if(!(include "NightlyTester.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-if(!(include"ProgramResults.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine_id);
-$today_row = getNightInfo($night_id);
-$cur_date=$today_row['added'];
-
-?>
-
-<html>
-<head><title>LLVM Nightly Test Graphs For <?php print $cur_date; ?></title></head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Graphs For <?php print $cur_date; ?></b></font></cen\
-ter><br>
-
-<table cellspacing=4 cellpadding=4 border=0>
-        <tr align=left>
-                <td valign=top>
-                        <?
-                        $machine = $HTTP_GET_VARS['machine'];
-                        $night = $HTTP_GET_VARS['night'];
-                        include 'sidebar.php';
-                        ?>
-                </td>
-                <td>
-<?php
-foreach ($measure_arr as $measure){
-
-	$list_of_programs="";
-	foreach($program_arr as $program){
-		$list_of_programs.="&program[]=$program";
-	}
-
-	print "<a href=\"individualgraph.php?name=$measure&xsize=800&ysize=500&machine=$machine_id&night=$night_id&measure[]=$measure$list_of_programs$end\">\n";
-	print "\t<img src=\"drawresultsgraph.php?name=$measure&xsize=800&ysize=400&machine=$machine_id&measure=$measure$list_of_programs$end\" alt=\"$measure\" height=400 width=800>\n";
-	print "</a><br>\n";
-
-}
-	
-	
-
-?>
-		
-			
-
-</td></tr></table>
-</body></html>
diff --git a/nightly-test-server/phpinfo.php b/nightly-test-server/phpinfo.php
deleted file mode 100644
index e3caa1d..0000000
--- a/nightly-test-server/phpinfo.php
+++ /dev/null
@@ -1,3 +0,0 @@
-<?php 
-phpinfo(); 
-?> 
\ No newline at end of file
diff --git a/nightly-test-server/popup.js b/nightly-test-server/popup.js
deleted file mode 100644
index 09503fb..0000000
--- a/nightly-test-server/popup.js
+++ /dev/null
@@ -1,133 +0,0 @@
-function ShowPop(id)
-{
-	if (document.getElementById)
-	{
-   		document.getElementById(id).style.visibility = " visible";
-	}
-	else if (document.all)
-	{
-		document.all[id].style.visibility = " visible";
-	}
-	else if (document.layers)
-	{
-		document.layers[id].style.visibility = " visible";
-	}
-}
-
-
-
-
-
-
-function HidePop(id)
-{
-   	if (document.getElementById)
-	{
-   		document.getElementById(id).style.visibility = " hidden";
-	}
-	/*else if (document.all)
-	{
-		document.all[id].style.visibility = " hidden";
-	}
-	else if (document.layers)
-	{
-		document.layers[id].style.visibility = " hidden";
-	}*/
-}
-
-
-
-function TogglePop(id)
-{
-   	if (document.getElementById)
-	{
-		if(document.getElementById(id).style.visibility  == "visible"){
-			document.getElementById(id).style.visibility = "hidden";
-		}
-		else{
-			document.getElementById(id).style.visibility  = "visible";
-		}
-	}
-	else if (document.all)
-	{
-		if(document.all[id].style.visibility  == "visible"){
-			document.all[id].style.visibility  = "hidden";
-		}
-		else{
-			document.all[id].style.visibility = "visible";
-		}
-	}
-	else if (document.layers)
-	{
-		if(document.layers[id].style.visibility == "visible"){
-			document.layers[id].style.visibility = "hidden";
-		}
-		else{
-			document.layers[id].style.visibility = "visible";
-		}
-	}
-}
-
-
-function toggleLayer(whichLayer)
-{
-	if (document.getElementById)
-	{
-		// this is the way the standards work
-		var style2 = document.getElementById(whichLayer).style;
-		style2.display = style2.display? "":"none";
-		var link  = document.getElementById(whichLayer+"_").innerHTML;
-		if(link.indexOf("(+)") >= 0){
-			document.getElementById(whichLayer+"_").innerHTML="(-)"+link.substring(3,link.length);
-		}
-		else{
-			document.getElementById(whichLayer+"_").innerHTML="(+)"+link.substring(3,link.length);
-		}
-	}//end if
-	else if (document.all)
-	{
-		// this is the way old msie versions work
-		var style2 = document.all[whichLayer].style;
-		style2.display = style2.display? "":"none";
-		var link  = document.all[wwhichLayer+"_"].innerHTML;
-		if(link.indexOf("(+)") >= 0){
-    		document.all[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-		}
-		else{
-			document.all[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-		}
-	}
-	else if (document.layers)
-	{
-		// this is the way nn4 works
-		var style2 = document.layers[whichLayer].style;
-		style2.display = style2.display? "":"none";
-		var link  = document.layers[whichLayer+"_"].innerHTML;
-		if(link.indexOf("(+)") >= 0){
-			document.layers[whichLayer+"_"].innerHTML="(-)"+link.substring(3,link.length);
-		}
-		else{
-			document.layers[whichLayer+"_"].innerHTML="(+)"+link.substring(3,link.length);
-		}
-	}
-}//end function
-
-var checkflag="false";
-function check(field) {
-  if (checkflag == "false") {
-    for (i = 0; i < field.length; i++) {
-      field[i].checked = true;
-    }
-    checkflag = "true";
-    return "Uncheck all"; 
-  }  
-  else {
-    for (i = 0; i < field.length; i++) {
-      if(field[i].type == 'checkbox'){
-        field[i].checked = false; 
-      }
-    }
-    checkflag = "false";
-    return "Check all"; 
-  }
-}
\ No newline at end of file
diff --git a/nightly-test-server/resultsgraph.php b/nightly-test-server/resultsgraph.php
deleted file mode 100644
index ffef996..0000000
--- a/nightly-test-server/resultsgraph.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-$measure=$HTTP_GET_VARS['measure'];
-if(sizeof($measure)>1){
-        include("multipleresultsgraph.php");
-}
-else{
-        include("individualgraph.php");
-}
-
-?>
-
diff --git a/nightly-test-server/sidebar.php b/nightly-test-server/sidebar.php
deleted file mode 100644
index ff30fae..0000000
--- a/nightly-test-server/sidebar.php
+++ /dev/null
@@ -1,214 +0,0 @@
-<?php
-
-/*****************************************************
- *
- * Prints out a sidebar for results graph page
- *
- ******************************************************/
-if(isset($measure_arr) && isset($program_arr)){
-	$machine_row=getMachineInfo($machine);
-	$today_row = getNightInfo($night);
-	$cur_date = $today_row['added'];
-
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	if(isset($machine_row['nickname'])){
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['nickname']}</a><br><br>\n";
-	}
-	else{
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['name']}</a><br><br>\n";
-	}
-	print "Test dates:<br>\n<ul>\n";
-	
-	$measure_link="";
-	foreach ($measure_arr as $x){
-		$measure_link.="&measure[]=$x";
-	}
-	$program_link="";
-	foreach ($program_arr as $x){
-		$program_link.="&program[]=$x";
-	}
-
-
-	/********************** Creating list to future and past tests **********************/
-	
-	$next_stack = array();
-	$next_query = getNightsResource($machine,$cur_date,"2020-12-30 01:01:01");
-	$x=0;
-	while($x<7 && $x<mysql_affected_rows()-1 && $next = mysql_fetch_array($next_query)){
-		array_push($next_stack, $next);
-		$x++;
-	}
-	foreach ($next_stack as $x){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$x['added']);
-		print "\t<li><a href=\"test.php?machine=$machine&night={$x['id']}\">$date</a>\n";
-		
-	}
-	mysql_free_result($next_query);	
-
-	$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$today_row['added']);
-	print "\t<li><h3><a href=\"test.php?machine=$machine&night=$night\">$date</a></h3>\n"; 
-	
-	$previous_query = getNightsResource($machine,"2000-01-01 01:01:01","$cur_date");
-	$x=0;
-	$prev=mysql_fetch_array($previous_query); //eliminates current date
-	while($x<7 && $prev=mysql_fetch_array($previous_query)){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$prev['added']);
-		print "\t<li><a href=\"resultsgraph.php?machine=$machine&night={$prev['id']}$end_url$start_url$measure_link$program_link\">$date</a>\n";
-		$x++;
-	}
-	print "</ul>\n";
-	mysql_free_result($previous_query);
-
-}
-
-/*****************************************************
- *
- * sidebar for test page
- *
- * print out link to homepage, then find links to the next 7 
- * days and the previous 7 dates. Also 
- * link to machine page.
- *
- ******************************************************/
-else if($machine!=-1 && $night !=-1){
-	$machine_row=getMachineInfo($machine);
-	$today_row = getNightInfo($night);
-	$cur_date = $today_row['added'];
-
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	if(isset($machine_row['nickname'])){
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['nickname']}</a><br><br>\n";
-	}
-	else{
-		print "Machine: <a href=\"machine.php?machine=$machine\">{$machine_row['name']}</a><br><br>\n";
-	}
-	print "Test dates:<br>\n<ul>\n";
-	
-
-	/********************** Creating list to future and past tests **********************/
-	
-	$next_stack = array();
-	$next_query = getNightsIDs($machine,$cur_date,"2020-12-30 01:01:01","ASC");
-	$next = mysql_fetch_array($next_query);
-	$x=0;
-	while($x<7 && $x<mysql_affected_rows()-1 && $next = mysql_fetch_array($next_query)){
-		array_unshift($next_stack, $next);
-		$x++;
-	}
-	foreach ($next_stack as $x){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$x['added']);
-		print "\t<li><a href=\"test.php?machine=$machine&night={$x['id']}\">$date</a>\n";
-		
-	}
-	mysql_free_result($next_query);	
-
-	$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$today_row['added']);
-	print "\t<li><h3><a href=\"test.php?machine=$machine&night=$night\">$date</a></h3>\n"; 
-	
-	$previous_query = getNightsIDs($machine,"2000-01-01 01:01:01","$cur_date");
-	$x=0;
-	$prev=mysql_fetch_array($previous_query); //eliminates current date
-	while($x<7 && $prev=mysql_fetch_array($previous_query)){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$prev['added']);
-		print "\t<li><a href=\"test.php?machine=$machine&night={$prev['id']}\">$date</a>\n";
-		$x++;
-	}
-	print "</ul>\n";
-	mysql_free_result($previous_query);
-       
-	$next_query = getNightsIDs($machine);
-	print "<form method=GET action=\"test.php\">\n";
-        print "<input type=hidden name=\"machine\" value=\"$machine\">\n";
-	print "<select name=night>\n";
-	while($next=mysql_fetch_array($next_query)){
-	  print "<option value={$next['id']}>{$next['added']}\n";
-	}
-	mysql_free_result($next_query);
-	
-	print "</select><br>\n";
-	print "<input type=submit value=\"Jump to Date\">\n";
-	print "</form>\n";
-	
-
-}
-
-
-
-/*****************************************************
- *
- * This is the sidebar for the machine page
- *
- * Print out a link to the homepage then print
- * out links to the last 20 tests
- *
- ******************************************************/
-elseif($machine != -1 && $night == -1){
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	print "Test dates:<br>\n<ul>\n";
-	$x=0;
-	$machine_nights = getNightsResource($machine); 
-	while($x<20 && $temp_row=mysql_fetch_array($machine_nights)){
-		$date = preg_replace("/\s\d\d:\d\d:\d\d/","",$temp_row['added']);
-		print "<li><a href=\"test.php?machine=$machine&night={$temp_row['id']}\">$date</a>\n";
-		$x++;
-	}	
-	print "</ul>\n";
-	mysql_free_result($machine_nights);	
-
-	$next_query = getNightsResource($machine);
-        print "<form method=GET action=\"test.php\">\n";
-        print "<input type=hidden name=machine value=\"$machine\">\n";
-        print "<select name=night>\n";
-        while ($next = mysql_fetch_array($next_query)){
-                print "<option value={$next['id']}>{$next['added']}\n";
-        }
-        print "</select><br>\n";
-        print "<input type=submit value=\"Jump to Date\">\n";
-        print "</form>\n";
-        mysql_free_result($next_query);
-}
-
-
-
-/*****************************************************
- *
- * This is the sidebar for the index
- *
- * Print out link to homepage, then a link to machine page, 
- * then link to every machine.
- *
- ******************************************************/
-else{ /*if($machine ==-1 && night ==-1)*/
-
-	print "<a href=\"index.php\">Homepage</a><br><br>\n";
-	$list_o_machines = getRecentMachineResource();
-	print "Test Machines With<br> Recent Submissions:<br>\n<ul>\n";
-	while($temp_row = mysql_fetch_array($list_o_machines)){
-		if(strcmp($temp_row['nickname'],"")==0){
-			print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['name']}</a>\n";
-		}
-		else{
-			print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['nickname']}</a>\n";	
-		}
-	}
-	print "</ul>\n";	
-	mysql_free_result($list_o_machines);
-
-	print "<a href='testers.php'>All Test Machines:</a><br>\n<ul>\n";
-	$list_o_machines = getMachineResource();
-        while($temp_row = mysql_fetch_array($list_o_machines)){
-                if(strcmp($temp_row['nickname'],"")==0){
-                        print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['name']}</a>\n";
-                }
-                else{
-                        print "<li><a href=\"machine.php?machine={$temp_row['id']}\">{$temp_row['nickname']}</a>\n";
-                }
-        }
-        print "</ul>\n";
-        mysql_free_result($list_o_machines);
-}
-
-$this_url = $this_url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
-print "<h5><a href=\"common.php?$this_url\">Link to this page</a></h5><br>\n";
-
-?>
diff --git a/nightly-test-server/sorttable.js b/nightly-test-server/sorttable.js
deleted file mode 100644
index 9023fd6..0000000
--- a/nightly-test-server/sorttable.js
+++ /dev/null
@@ -1,187 +0,0 @@
-addEvent(window, "load", sortables_init);
-
-var SORT_COLUMN_INDEX;
-
-function sortables_init() {
-    // Find all tables with class sortable and make them sortable
-    if (!document.getElementsByTagName) return;
-    tbls = document.getElementsByTagName("table");
-    for (ti=0;ti<tbls.length;ti++) {
-        thisTbl = tbls[ti];
-        if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) {
-            //initTable(thisTbl.id);
-            ts_makeSortable(thisTbl);
-        }
-    }
-}
-
-function ts_makeSortable(table) {
-    if (table.rows && table.rows.length > 0) {
-        var firstRow = table.rows[0];
-    }
-    if (!firstRow) return;
-    
-    // We have a first row: assume it's the header, and make its contents clickable links
-    for (var i=0;i<firstRow.cells.length;i++) {
-        var cell = firstRow.cells[i];
-        var txt = ts_getInnerText(cell);
-        cell.innerHTML = '<a href="#" class="sortheader" '+ 
-        'onclick="ts_resortTable(this, '+i+');return false;">' + 
-        txt+'<span class="sortarrow">&nbsp;&nbsp;&nbsp;</span></a>';
-    }
-}
-
-function ts_getInnerText(el) {
-	if (typeof el == "string") return el;
-	if (typeof el == "undefined") { return el };
-	if (el.innerText) return el.innerText;	//Not needed but it is faster
-	var str = "";
-	
-	var cs = el.childNodes;
-	var l = cs.length;
-	for (var i = 0; i < l; i++) {
-		switch (cs[i].nodeType) {
-			case 1: //ELEMENT_NODE
-				str += ts_getInnerText(cs[i]);
-				break;
-			case 3:	//TEXT_NODE
-				str += cs[i].nodeValue;
-				break;
-		}
-	}
-	return str;
-}
-
-function ts_resortTable(lnk,clid) {
-    // get the span
-    var span;
-    for (var ci=0;ci<lnk.childNodes.length;ci++) {
-        if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];
-    }
-    var spantext = ts_getInnerText(span);
-    var td = lnk.parentNode;
-    var column = clid || td.cellIndex;
-    var table = getParent(td,'TABLE');
-    
-    // Work out a type for the column
-    if (table.rows.length <= 1) return;
-    var itm = ts_getInnerText(table.rows[2].cells[column]);
-    sortfn = ts_sort_caseinsensitive;
-    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date;
-    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date;
-    if (itm.match(/^[£$]/)) sortfn = ts_sort_currency;
-    if (itm.match(/^[\-\d\.]+$/)) sortfn = ts_sort_numeric;
-    SORT_COLUMN_INDEX = column;
-    var firstRow = new Array();
-    var secondRow = new Array();
-    var newRows = new Array();
-    for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }
-    for (i=0;i<table.rows[1].length;i++) { secondRow[i] = table.rows[1][i]; }
-    for (j=2;j<table.rows.length;j++) { newRows[j-2] = table.rows[j]; }
-
-    newRows.sort(sortfn);
-
-    if (span.getAttribute("sortdir") == 'down') {
-        ARROW = '&nbsp;&nbsp;&uarr;';
-        newRows.reverse();
-        span.setAttribute('sortdir','up');
-    } else {
-        ARROW = '&nbsp;&nbsp;&darr;';  
-	span.setAttribute('sortdir','down');
-    }
-    
-    // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones
-    // don't do sortbottom rows
-    for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}
-    // do sortbottom rows only
-    for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}
-    
-    // Delete any other arrows there may be showing
-    var allspans = document.getElementsByTagName("span");
-    for (var ci=0;ci<allspans.length;ci++) {
-        if (allspans[ci].className == 'sortarrow') {
-            if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?
-                allspans[ci].innerHTML = '&nbsp;&nbsp;&nbsp;';
-            }
-        }
-    }
-        
-    span.innerHTML = ARROW;
-}
-
-function getParent(el, pTagName) {
-	if (el == null) return null;
-	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase
-		return el;
-	else
-		return getParent(el.parentNode, pTagName);
-}
-function ts_sort_date(a,b) {
-    // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
-    if (aa.length == 10) {
-        dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);
-    } else {
-        yr = aa.substr(6,2);
-        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
-        dt1 = yr+aa.substr(3,2)+aa.substr(0,2);
-    }
-    if (bb.length == 10) {
-        dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);
-    } else {
-        yr = bb.substr(6,2);
-        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }
-        dt2 = yr+bb.substr(3,2)+bb.substr(0,2);
-    }
-    if (dt1==dt2) return 0;
-    if (dt1<dt2) return -1;
-    return 1;
-}
-
-function ts_sort_currency(a,b) { 
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');
-    return parseFloat(aa) - parseFloat(bb);
-}
-
-function ts_sort_numeric(a,b) { 
-    aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));
-    if (isNaN(aa)) aa = 0;
-    bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); 
-    if (isNaN(bb)) bb = 0;
-    return aa-bb;
-}
-
-function ts_sort_caseinsensitive(a,b) {
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();
-    if (aa==bb) return 0;
-    if (aa<bb) return -1;
-    return 1;
-}
-
-function ts_sort_default(a,b) {
-    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);
-    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);
-    if (aa==bb) return 0;
-    if (aa<bb) return -1;
-    return 1;
-}
-
-
-function addEvent(elm, evType, fn, useCapture)
-// addEvent and removeEvent
-// cross-browser event handling for IE5+,  NS6 and Mozilla
-// By Scott Andrew
-{
-  if (elm.addEventListener){
-    elm.addEventListener(evType, fn, useCapture);
-    return true;
-  } else if (elm.attachEvent){
-    var r = elm.attachEvent("on"+evType, fn);
-    return r;
-  } else {
-    alert("Handler could not be removed");
-  }
-} 
diff --git a/nightly-test-server/style.css b/nightly-test-server/style.css
deleted file mode 100644
index 2d137c6..0000000
--- a/nightly-test-server/style.css
+++ /dev/null
@@ -1,38 +0,0 @@
-.hideable {
-	border-width:thin;
-	border-color:blackground;
-	border-style:solid;
-	background: #F8F8FF
-}
-
-.popup
-{
-   position:absolute; left:10; bottom:10; width:400;
-   border-style:solid;
-   border-width:2;
-   border-color:blue;
-   background-color:white;
-   padding:5px;
-   color:black;
-   font-family:Arial;
-   font-weight:bold;
-   font-size:10pt;
-   z-index:2;
-   visibility:hidden;
-}
-
-.popup2
-{
-   position:absolute; left:10; top:10; width:400;
-   border-style:solid;
-   border-width:2;
-   border-color:blue;
-   background-color:white;
-   padding:5px;
-   color:black;
-   font-family:Arial;
-   font-weight:bold;
-   font-size:10pt;
-   z-index:2;
-   visibility:hidden;
-}
\ No newline at end of file
diff --git a/nightly-test-server/test.php b/nightly-test-server/test.php
deleted file mode 100644
index eb3fa60..0000000
--- a/nightly-test-server/test.php
+++ /dev/null
@@ -1,739 +0,0 @@
-<?php
-/******************************
- *
- * Checking input variables
- *
- ******************************/
-if(!isset($HTTP_GET_VARS['machine']) || !is_numeric($HTTP_GET_VARS['machine'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$machine_id = $HTTP_GET_VARS['machine'];
-
-if(!isset($HTTP_GET_VARS['night']) || !is_numeric($HTTP_GET_VARS['night'])){
-        print "Error: Incorrect URL!\n";
-        die();
-}
-$night_id = $HTTP_GET_VARS['night'];
-
-
-if(!(include "NightlyTester.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-if(!(include"ProgramResults.php")){
-        print "Error: could not load necessary files!\n";
-        die();
-}
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm") or die("Error: could not connect to database!\n");
-mysql_select_db("nightlytestresults");
-
-$row = getMachineInfo($machine_id);
-$today_row = getNightInfo($night_id);
-$cur_date=$today_row['added'];
-
-$today_query = getSuccessfulNightsHistory($machine_id,$night_id);
-$today_row = mysql_fetch_array($today_query);
-$yesterday_row = mysql_fetch_array($today_query);
-$oldday_row = mysql_fetch_array($today_query);
-mysql_free_result($today_query);
-$previous_succesful_id = $yesterday_row['id'];
-?>
-
-<html>
-<head>
-<title>LLVM Nightly Test Results For <?php print $cur_date; ?></title>
-<STYLE TYPE="text/css">
-<!--
-  @import url(style.css);
--->
-</STYLE>
-<script type="text/javascript" src="sorttable.js"></script>
-<script type="text/javascript" src="popup.js"></script>
-</head>
-<body>
-
-<center><font size=+3 face=Verdana><b>LLVM Nightly Test Results For <?php print $cur_date; ?></b></font></center><br>
-
-<table cellspacing=0 cellpadding=0 border=0>
-  <tr>
-    <td valign=top width="180">
-      <? 
-      $machine = $HTTP_GET_VARS['machine'];
-      $night = $HTTP_GET_VARS['night'];
-      include 'sidebar.php'; 
-      ?>      
-    </td>
-    <td>
-<?php
-
-/*****************************************************
- *
- * Printing machine information
- *
- ******************************************************/
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "<tr>\n";
-print "<td><b>Nickname:</b></td>";
-print "<td>{$row['nickname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>uname:</b></td>";
-print "<td>{$row['uname']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hardware:</b></td>";
-print "<td>{$row['hardware']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>OS:</b></td>";
-print "<td>{$row['os']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Hostname:</b></td>";
-print "<td>{$row['name']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>GCC:</b></td>";
-print "<td>{$row['gcc']}</td>\n";
-print "</tr>\n";
-print "<tr>\n";
-print "<td><b>Machine ID:</b></td>";
-print "<td>{$row['id']}</td>\n";
-print "</tr>\n";
-print "</table>\n<br>\n";
-
-/*****************************************************
- *
- * Printing link to build log
- *
- ******************************************************/
-print"<h4><a href=\"fulltest.php?machine=$machine_id&night=$night_id\">See Full Test Results</a></h4>\n";
-
-$buildfile=str_replace(" ", "_", $cur_date);
-if(file_exists("machines/$machine_id/$buildfile-Build-Log.txt")){
-  print "<h4><a href=\"machines/$machine_id/$buildfile-Build-Log.txt\">".
-      "View Build Log</a></h4>\n";
-}
-
-/*****************************************************
- *
- * Printing the build status
- *
- ******************************************************/
-if(strpos($today_row['buildstatus'], "OK")===FALSE){
-  $disp="";
-  $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer".
-    "('buildStatus');\", id=\"buildStatus_\">$sign Build Status</a></font>\n";
-print "<div id=\"buildStatus\" style=\"display: $disp;\" class=\"hideable\">\n";
-print "<h3><u>Build Status </u></h3></p>";
-print "<font color=red>{$today_row['buildstatus']}</font><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing changes in test suite
- *
- ******************************************************/
-$new_tests=htmlifyTestResults(getNewTests($night_id, $previous_succesful_id));
-if(strcmp($new_tests,"")===0){
-  $new_tests="None";
-}
-$removed_tests=htmlifyTestResults(getRemovedTests($night_id, $previous_succesful_id));
-if(strcmp($removed_tests,"")===0){
-  $removed_tests="None";
-}
-$newly_passing_tests=htmlifyTestResults(getFixedTests($night_id, $previous_succesful_id));
-if(strcmp($newly_passing_tests,"")===0){
-  $newly_passing_tests="None";
-}
-$newly_failing_tests=htmlifyTestResults(getBrokenTests($night_id, $previous_succesful_id));
-if(strcmp($newly_failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-
-if(strpos($new_tests, "None")!==FALSE &&
-   strpos($removed_tests, "None")!==FALSE &&
-   strpos($newly_passing_tests, "None")!==FALSE &&
-   strpos($newly_failing_tests, "None")!==FALSE ){
-  $disp="none";
-  $sign="(-)";
-}
-else{
-  $disp="";
-  $sign="(+)";
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuite');\", id=\"testSuite_\">$sign Test Suite Changes</a></font>\n";
-print "<div id=\"testSuite\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite changes:</u></h3>\n";
-print"<b>New tests:</b><br>\n";
-print "$new_tests<br><br>\n";
-print"<b>Removed tests:</b><br>\n";
-print "$removed_tests<br><br>\n";
-print"<b>Newly passing tests:</b><br>\n";
-print "$newly_passing_tests<br><br>\n";
-print"<b>Newly failing tests:</b><br>\n";
-print "$newly_failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing failures in test suite
- *
- ******************************************************/
-$failing_tests=htmlifyTestResults(getFailures($night_id));
-if(strcmp($failing_tests,"")===0){
-  $newly_failing_tests="None";
-}
-$disp="none";
-$sign="(-)";
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('testSuiteFailures');\", id=\"testSuite_\">$sign Test Suite Failures</a></font>\n";
-print "<div id=\"testSuiteFailures\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Test suite failures:</u></h3>\n";
-print"<b>Failing tests:</b><br>\n";
-print "$failing_tests<br><br>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Dejagnu result go here
- *
- ******************************************************/
-$delta_exppass = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-$delta_expfail = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-$delta_unexpfail = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-$unexpected_failures = htmlifyTestResults(getUnexpectedFailures($night_id));
-
-if($delta_exppass==0 && $delta_expfail==0 && 
-   $delta_unexpfail==0 && strcmp($unexpected_failures,"")===0){
-  $disp="none";
-  $sign="(-)";
-}
-else{
-  $disp="";
-  $sign="(+)";
-}
-
-
-if(isset($today_row['teststats_exppass'])){
-  $exp_pass=$today_row['teststats_exppass'];
-}
-else{
-  $exp_pass=0;
-}
-if(isset($today_row['teststats_unexpfail'])){
-  $unexp_fail=$today_row['teststats_unexpfail'];
-}
-else{
-  $unexp_fail=0;
-}
-if(isset($today_row['teststats_expfail'])){
-  $exp_fail=$today_row['teststats_expfail'];  
-}
-else{
-  $exp_fail=0;
-
-}
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('dejagnuTests');\", id=\"dejagnuTests_\">$sign Dejagnu Tests</a></font>\n";
-print "<div id=\"dejagnuTests\" style=\"display: $disp;\" class=\"hideable\">\n";
-
-print"<h3><u>Dejagnu tests:</u></h3><br>\n";
-
-print "<table>\n";
-print "\t<tr>\n";
-print "\t\t<td></td><td># of tests</td><td>Change from yesterday</td>\n";
-print "\t</tr>\n";
-$delta = $today_row['teststats_exppass']-$yesterday_row['teststats_exppass'];
-print "\t\t<td>Expected Passes:</td><td align=center>$exp_pass</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_unexpfail']-$yesterday_row['teststats_unexpfail'];
-print "\t\t<td>Unexpected Failures:</td><td align=center>$unexp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-$delta = $today_row['teststats_expfail']-$yesterday_row['teststats_expfail'];
-print "\t\t<td>Expected Failures:</td><td align=center>$exp_fail</td><td align=center>$delta</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<a name=\"unexpfail_tests\"><b>Unexpected test failures:</b></a><br>\n";
-print "$unexpected_failures<br><br>\n";
-
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing warning information
- *
- ******************************************************/
-if((strpos($today_row['warnings_added'], "none")===FALSE &&
-   strpos($today_row['warnings_removed'], "none")===FALSE) &&
-   (strcmp($today_row['warnings_added'], "")!=0 &&
-   strcmp($today_row['warnings_removed'], "")!=0)){
-  $disp=" ";
-  $sign="(+)";
-}
-else{
-  $disp="none";
-  $sign="(-)";
-}
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('warningsChanges');\", id=\"warningsChanges_\">$sign Warnings Information</a></font>\n";
-print "<div id=\"warningsChanges\" style=\"display: $disp;\" class=\"hideable\">\n";
-print"<h3><u>Changes to warnings during the build:</u></h3>\n";
-print"<b>New Warnings:</b><br>\n";
-print "{$today_row['warnings_added']}<br><br>\n";
-print"<b>Removed Warnings:</b><br>\n";
-print "{$today_row['warnings_removed']}<br>\n";
-print"<a name=\"warnings\"><h3><u>Warnings during the build:</u></h3></a><tt>{$today_row['warnings']}</tt><br>\n";
-print "</div><br><br>\n";
-
-
-/*****************************************************
- *
- * Printing execution
- *
- ******************************************************/
-
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('executionTimes');\", id=\"executionTimes_\">(-) Execution Times</a></font>\n";
-print "<div id=\"executionTimes\" style=\"display: none;\" class=\"hideable\">\n";
-print"<h3><u>Execution times in seconds:</u></h3><br>\n";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-
-print "\t<tr>\n";
-print "\t\t<td></td>\n";
-print "\t\t<td>CVS cpu</td>\n";
-print "\t\t<td>CVS wall</td>\n";
-print "\t\t<td>Configure cpu</td>\n";
-print "\t\t<td>Configure wall</td>\n";
-print "\t\t<td>Build cpu</td>\n";
-print "\t\t<td>Build wall</td>\n";
-print "\t\t<td>Dejagnu cpu</td>\n";
-print "\t\t<td>Dejagnu wall</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "\t\t<td>$cur_date</td>\n";
-print "\t\t<td>{$today_row['getcvstime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['getcvstime_wall']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['configuretime_wall']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['buildtime_wall']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_cpu']}</td>\n";
-print "\t\t<td>{$today_row['dejagnutime_wall']}</td>\n";
-print "\t</tr>\n";
-
-if( isset($yesterday_row) ){
-  print "\t<tr>\n";
-  print "\t\t<td>Previous nightly test ({$yesterday_row['added']})</td>\n";
-  print "\t\t<td>{$yesterday_row['getcvstime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['getcvstime_wall']}</td>\n";
-  print "\t\t<td>{$yesterday_row['configuretime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['configuretime_wall']}</td>\n";
-  print "\t\t<td>{$yesterday_row['buildtime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['buildtime_wall']}</td>\n";
-  print "\t\t<td>{$yesterday_row['dejagnutime_cpu']}</td>\n";
-  print "\t\t<td>{$yesterday_row['dejagnutime_wall']}</td>\n";
-  print "\t</tr>\n";
-
-
-  print "\t<tr>\n";
-  print "\t\t<td>% change</td>\n";
-  
-  if($yesterday_row['getcvstime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_cpu'] - $yesterday_row['getcvstime_cpu'])/$yesterday_row['getcvstime_cpu']) * 100,2);  
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }  
-
-  $color="white";
-  if($yesterday_row['getcvstime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['getcvstime_wall'] - $yesterday_row['getcvstime_wall'])/$yesterday_row['getcvstime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($yesterday_row['configuretime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_cpu'] - $yesterday_row['configuretime_cpu'])/$yesterday_row['configuretime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-
-  if($yesterday_row['configuretime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['configuretime_wall'] - $yesterday_row['configuretime_wall'])/$yesterday_row['configuretime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($yesterday_row['buildtime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_cpu'] - $yesterday_row['buildtime_cpu'])/$yesterday_row['buildtime_cpu']) * 100,2);
-          $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($yesterday_row['buildtime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['buildtime_wall'] - $yesterday_row['buildtime_wall'])/$yesterday_row['buildtime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  $color="white";
-  if($yesterday_row['dejagnutime_cpu']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_cpu'] - $yesterday_row['dejagnutime_cpu'])/$yesterday_row['dejagnutime_cpu']) * 100,2);
-    $color=DetermineColor($delta, "white");
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-
-  $color="white";
-  if($yesterday_row['dejagnutime_wall']==0){
-    print "\t\t<td>-</td>\n";
-  }
-  else{
-    $delta = round((($today_row['dejagnutime_wall'] - $yesterday_row['dejagnutime_wall'])/$yesterday_row['dejagnutime_wall']) * 100,2);
-    print "\t\t<td bgcolor=$color>$delta</td>\n";
-  }
-  
-  print "\t</tr>\n";
-}
-
-print "</table><br>\n";
-
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Printing CVS information
- *
- ******************************************************/
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('CVSInformation');\", id=\"CVSInformation_\">(-) CVS Information</a></font>\n";
-print "<div id=\"CVSInformation\" style=\"display: none;\" class=\"hideable\">\n";
-
-print"<h3><u>CVS information:</u></h3><br>\n";
-
-$row = getNightInfo($night_id);
-$com_users = $row['cvs_usersadd'];
-$co_users  = $row['cvs_usersco'];
-$com_users = str_replace("\n","<br>",$com_users);
-$co_users = str_replace("\n","<br>",$co_users);
-print "<table border=1 cellspacing=0 cellpadding=0>\n";
-print "\t<tr>\n";
-print "\t\t<td>Users who commited</td><td>Users who checked out</td>\n";
-print "\t</tr>\n";
-print "\t<tr>\n";
-print "\t\t<td valign=top>$com_users</td><td valign=top>$co_users</td>\n";
-print "\t</tr>\n";
-print "</table><br><br>\n";
-
-print"<b>Added files:</b><br>\n";
-$added_files  = $row['cvs_added'];
-if(strcmp($added_files,"")!=0){
-  $added_files = str_replace("\n","<br>",$added_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$added_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Removed files:</b><br>\n";
-$removed_files  = $row['cvs_removed'];
-if(strcmp($removed_files,"")!=0){
-  $removed_files = str_replace("\n","<br>",$removed_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$removed_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br><br>\n";
-}
-else{
-  print "No removed files<br><br>\n";
-}
-
-print"<b>Modified files:</b><br>\n";
-$modified_files  = $row['cvs_modified'];
-if(strcmp($modified_files,"")!=0){
-  $modified_files = str_replace("\n","<br>",$modified_files);
-  print "<table>\n";
-  print "\t<tr>\n";
-  print "\t\t<td>$modified_files</td>\n";
-  print "\t</tr>\n";
-  print "</table><br>\n";
-}
-else{
-  print "No removed files<br>\n";
-}
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * ending sidebar table here
- *
- ******************************************************/
-print "</td></tr></table>\n";
-
-/*****************************************************
- *
- * Printing file size information
- *
- ******************************************************/
-$all_data=buildFileSizeTable($machine_id, $night_id);
-
-$num_sig_changes=0;
-foreach (array_keys($all_data) as $d){
-  if( ($all_data["$d"][1]>$medium_change && $all_data["$d"][2]>$byte_threshold) ||
-      ($all_data["$d"][1]<($medium_change*-1) && $all_data["$d"][2]<($byte_threshold*-1)) ) {
-    $num_sig_changes++;
-  }
-}
-if($num_sig_changes==0){
-    $disp="none";
-    $sign="(-)";
-  }
-  else{
-    $disp="";
-    $sign="(+)";
-  }
-print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('file_sizes_layer');\", id=\"file_sizes_layer_\">$sign $num_sig_changes Significant Changes in File Size</a></font>\n";
-print "<div id=\"file_sizes_layer\" style=\"display: $disp;\" class=\"hideable\">\n";
-
-print "<form method=GET action=\"individualfilesizegraph.php\">\n";
-print "<input type=hidden name=machine value=\"$machine_id\">\n";
-print "<input type=hidden name=night value=\"$night_id\">\n";
-print "<input type=hidden name=end value=\"$cur_date\">\n";
-
-
-$unformatted_num=number_format($all_data['Total Sum'][0],0,".",",");
-print "<b>Total size</b>: $unformatted_num bytes<br>\n";
-print "<b>Percent difference from previous test</b>: {$all_data['Total Sum'][1]}<br>\n";
-print "<b>Percent difference from five tests ago</b>: {$all_data['Total Sum'][2]}<br><br>\n";
-
-print "<b>Significant Changes in File Size<br></b>";
-print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black border
-print "<table class=\"sortable\" id=\"file_sizes\" border='1' cellspacing='0' cellpadding='0'>\n";
-print "\t<tr bgcolor=#FFCC99>\n";
-print "\t\t<td>File</td>\n";
-print "\t\t<td>File Size in Bytes</td>\n";
-print "\t\t<td>% difference from previous test</td>\n";
-print "\t\t<td>Byte difference from previous test</td>\n";
-print "\t\t<td>% difference from five tests ago</td>\n";
-print "\t\t<td>Byte difference from five tests ago</td>\n";
-print "\t</tr>\n";
-
-print "\t<tr>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "<td></td>\n";
-print "\t</tr>\n";
-
-$row_color=0;
-foreach (array_keys($all_data) as $d){
-  if( ($all_data["$d"][1]>$medium_change && $all_data["$d"][2]>$byte_threshold) || 
-      ($all_data["$d"][1]<($medium_change*-1) && $all_data["$d"][2]<($byte_threshold*-1)) ) {
-   
-    if($row_color % 2 == 0){
-      $def_color="white";
-    } else{
-      $def_color="#DDDDDD";
-    }
-    $row_color++;
-
-    print "\t<tr bgcolor=\"$def_color\">\n";
-    if(strcmp($d, "Total Sum")!=0){
-      print "\t\t<td><input type=checkbox name=files[] multiple=\"multiple\" value=\"$d\" >\n";
-    }
-    else{
-      print "\t\t<td>\n";
-    }
-    print "\t\t$d</td>\n";
-    print "\t\t<td>{$all_data["$d"][0]}</td>\n";
-
-    $color="bgcolor=\"".DetermineColor($all_data["$d"][1], "$def_color")."\"";
-    print "\t\t<td $color>{$all_data["$d"][1]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][2]}</td>\n";
-
-    $color="bgcolor=\"".DetermineColor($all_data["$d"][3], "$def_color")."\"";
-    print "\t\t<td $color>{$all_data["$d"][3]}</td>\n";
-    print "\t\t<td $color>{$all_data["$d"][4]}</td>\n";
-
-    print "\t</tr>\n";
-  }
-}
-
-print "</table>\n";
-print "</td></tr></table><br>\n"; #ending black border around table  
-print "<input type=submit name=action value=\"Compare values\"> | ";
-print "<input type=button value=\"Check all\" onClick=\"this.value=check(this.form.elements)\"> | \n"; 
-print "<input type=reset>\n";
-print "</form>\n";
-print "</div><br><br>\n";
-
-/*****************************************************
- *
- * Finding big changes in results table
- *
- ******************************************************/
-
-$today_results = GetDayResults($today_row['id'], $category_array);
-if(isset($yesterday_row['id'])){
-  $yesterday_results = GetDayResults($yesterday_row['id'], $category_array);
-  $percent_difference = CalculateChangeBetweenDays($yesterday_results, $today_results, .2);
-}
-if(isset($oldday_row['id'])){
-  $oldday_results = GetDayResults($oldday_row['id'], $category_array);
-  $twoday_difference = CalculateChangeBetweenDays($oldday_results, $today_results, .01);
-}
-
-
-if(isset($percent_difference) && isset($twoday_difference)){
-  $big_changes = getThreeDaySignifigantChanges($today_results, $yesterday_results, $oldday_results, $percent_difference, $twoday_difference, $category_print_array);
-  sortSignifigantChangeArray($big_changes, 3);
-}
-else if(isset($percent_difference) && !isset($twoday_difference)){
-  $big_changes = getTwoDaySignifigantChanges($today_results, $yesterday_results, $percent_difference, $category_print_array);
-        sortSignifigantChangeArray($big_changes, 3);
-}
-
-/********************** Regressions table **********************/
-
-if(!isset($big_changes)){
-  print "Cannot compare today's results to previous results. Reason: there are no previous results!<br>\n";
-}
-else{
-
-$row_color=1;
-$count=0;
-for($y=0; $y<sizeof($category_print_array_ordered); $y++){
-  print "<form method=GET action=\"resultsgraph.php\">\n";
-  print "<input type=hidden name=machine value=\"$machine_id\">\n";
-  print "<input type=hidden name=night value=\"$night_id\">\n";
-  print "<input type=hidden name=end value=\"$cur_date\">\n";
-  print "<input type=hidden name=measure[] value=\"{$category_print_array_ordered[$y]}\">\n";
-  
-
-  /* testing to see if we should show this table */
-  $measure_number=0;
-  for($pdj = 0; $pdj < sizeof($category_print_array); $pdj++){
-    if(strcmp($category_print_array[$pdj],$category_print_array_ordered[$y])==0){
-      $measure_number=$pdj;
-    }
-  }
-  $num_changes = CountSignifigantDifferences($percent_difference, $measure_number, $medium_change);
-  if($num_changes==0){
-    $disp="none";
-    $sign="(-)";
-  }
-  else{
-    $disp="";
-    $sign="(+)";
-  }
-
-  print "<font size=\"-1\"><a href=\"javascript://\"onclick=\"toggleLayer('{$category_print_array_ordered[$y]}');\", id=\"{$category_print_array_ordered[$y]}_\">$sign $num_changes Tests Significantly Changed for {$category_print_array_ordered[$y]}</a></font>\n";
-  print "<div id=\"{$category_print_array_ordered[$y]}\" style=\"display: $disp;\" class=\"hideable\">\n";
-  print "<b>Significant Changes for {$category_print_array_ordered[$y]}</b>";
-  print "<span style=\"position:relative;\">\n";
-  print "<span id=\"$y\" class=\"popup2\">\n";
-  print "<pre>$category_print_array_ordered_description[$y]</pre>\n";
-  print "</span><a href=\"javascript:void(0);\" onClick=\"TogglePop('$y');\">?</a></span>\n";
-  print "<br>\n";
-  print "<table border='0' cellspacing='0' cellpadding='2'><tr><td bgcolor=#000000>\n"; #creating the black borde
-  print "<table class=\"sortable\" id=\"multisource_tests\" border='1' cellspacing='0' cellpadding='0'>\n";
-  print "\t<tr bgcolor=#FFCC99>\n";
-  print "\t\t<th>Program</th>\n";
-  print "\t\t<th>% Change from yesterday</th>\n";
-  print "\t\t<th>% Change from two days ago</th>\n";
-  print "\t\t<th>Previous day's test value</th>\n";
-  print "\t\t<th>Current day's test value</th>\n";
-  print "\t</tr>\n";
-  print "\t<tr><td></td><td></td><td></td><td></td><td></td><td></td></tr>\n";
-
-  foreach (array_keys($big_changes) as $x){
-    if(strcmp($big_changes[$x][1],$category_print_array_ordered[$y])==0){
-      if($row_color % 2 == 0){
-        $def_color="white";
-      } else{
-        $def_color="#DDDDDD";
-      }
-      print "\t<tr bgcolor='$def_color'>\n";
-      print "\t\t<td><input type=checkbox name=program[] multiple=\"multiple\" value=\"{$big_changes[$x][0]}\">{$big_changes[$x][2]}/{$big_changes[$x][0]}</td>\n";
-      $color=DetermineColor($big_changes[$x][3], "#FFFFFF");
-      print "\t\t<td bgcolor=\"$color\">{$big_changes[$x][3]}</td>\n";
-      $color=DetermineColor($big_changes[$x][4], "#FFFFFF");
-      print "\t\t<td bgcolor=\"$color\">{$big_changes[$x][4]}</td>\n";
-      print "\t\t<td>{$big_changes[$x][5]}</td>\n";
-      print "\t\t<td>{$big_changes[$x][6]}</td>\n";
-                       
-  
-      /*for($y=0; $y<sizeof($big_changes[$x]); $y++){
-                          print "\t\t<td>{$big_changes[$x][$y]}</td>\n";
-                   }*/
-                  print "\t</tr>\n";
-                  $row_color++;
-                  if($row_color > 4){
-      $row_color=1;
-                  }
-                   $count++;
-          }//end if strcmp
-  }
-  print "</table>\n";
-  print "</td></tr></table><br>\n"; #ending black border around table  
-  print "<input type=submit name=action value=\"Examine Longterm Results\"> | ";
-  print "<input type=button value=\"Check all\" onClick=\"this.value=check(this.form.elements)\"> | \n"; 
-  print "<input type=reset>\n";
-  print "</form>\n";
-  print "</div><br><br>\n";
-}
-
-
-}//end foreach
-
-
-mysql_close($mysql_link);
-?>
-
-
-
-</body>
-</html>
-
-
diff --git a/nightly-test-server/testers.php b/nightly-test-server/testers.php
deleted file mode 100644
index 3b19273..0000000
--- a/nightly-test-server/testers.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-include("NightlyTester.php");
-
-$mysql_link=mysql_connect("127.0.0.1","llvm","ll2002vm"); 
-if(!$mysql_link){
-	die("$mysql_link,Could not connect to database ". mysql_error()."\n");
-}
-mysql_select_db("nightlytestresults");
-
-
-
-?>
-<html>
-<head><title>List of LLVM Nightly Test Machines</title></head>
-<body>
-<center><font size=+3 face=Verdana><b>List of LLVM Nightly Test Machines</b></font></center><br>
-<table cellspacing=5 cellpadding=3 border=0>
-        <tr>
-                <td valign=top>
-                        <?
-                        $machine = -1;
-                        $night = -1;
-                        include "sidebar.php";
-                        ?>
-                </td>
-                <td>
-
-<?php
-/*
- * the following lists all the machines
- */
-
-print "<br>List of all machines:<br>\n";
-print "<table border=1 cellpadding=0 cellspacing=0>\n";
-print "\t<tr bgcolor=#FFCC99>\n";
-        print "\t\t<td>ID</td>\n";
-        print "\t\t<td>Nickname</td>\n";
-        print "\t\t<td>Machine name</td>\n";
-        print "\t\t<td>Operating system</td>\n";
-        print "\t\t<td>Hardware</td>\n";
-        print "\t\t<td>GCC version</td>\n";
-        print "\t\t<td>Time of last test</td>\n";
-        print "\t\t<td>Build status of last test</td>\n";
-print "\t</tr>\n";
-
-$result = getMachineResource();
-$line=1;
-while($row = mysql_fetch_array($result)){
-	$query = getNightsResource($row['id']);
-	$latest_test = mysql_fetch_array($query);
-	mysql_free_result($query);      
-
-	if($line %2 == 0){
-		print "\t<tr bgcolor=#DDDDDD>\n";
-	}
-	else{
-		print "\t<tr bgcolor='white'>\n";        
-	}
-	$line++;
-	print "\t\t<td>{$row['id']}</td>\n";
-        print "\t\t<td><a href=\"machine.php?machine={$row['id']}\">{$row['nickname']}</a></td>\n";
-	print "\t\t<td><a href=\"machine.php?machine={$row['id']}\">{$row['name']}</a></td>\n";
-        print "\t\t<td>{$row['os']}</td>\n";
-        print "\t\t<td>{$row['hardware']}</td>\n";
-        print "\t\t<td>{$row['gcc']}</td>\n";
-        print "\t\t<td>{$latest_test['added']}</td>\n";
-        print "\t\t<td>{$latest_test['buildstatus']}</td>\n";
-        print "\t</tr>\n";
-}
-print "</table>\n";
-
-mysql_free_result($result);
-mysql_close($mysql_link);
-?>
-
-</td></tr></table>
-
-</body>
-</html>
diff --git a/nightly-test-server/try.php b/nightly-test-server/try.php
deleted file mode 100755
index 2394d33..0000000
--- a/nightly-test-server/try.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<html>
-<body>
-<?php
-/*
- foreach ($_ENV as $key => $value) {
-  print "_ENV $key => $value<br>\n";
- }
- 
- foreach ($_SERVER as $key => $value) {
-  print "_SERVER $key => $value<br>\n";
- }
- 
- foreach ($_GET as $key => $value) {
-  print "_GET $key => $value<br>\n";
- }
- 
- foreach ($_POST as $key => $value) {
-  print "_POST $key => $value<br>\n";
- }
- 
- foreach ($_COOKIE as $key => $value) {
-  print "_COOKIE $key => $value<br>\n";
- }
- 
- foreach ($_FILES as $key => $value) {
-  print "_FILES $key => $value<br>\n";
- }
- 
- foreach ($_REQUEST as $key => $value) {
-  print "_REQUEST $key => $value<br>\n";
- }
-*/
-
-$info = "PASS: /Users/sabre/buildtest/llvm/test/Feature/alignment.ll\n";
-$subpatterns = array();
-preg_match("/^(XPASS|PASS|XFAIL|FAIL):\s(.+):?/", $info, $subpatterns);
-
-foreach ($subpatterns as $key => $value) {
-  print "$key => $value<br>\n";
-}
-
-?>
-</body>
-</html>
diff --git a/poolalloc/autoconf/AutoRegen.sh b/poolalloc/autoconf/AutoRegen.sh
new file mode 100755
index 0000000..2f921a5
--- /dev/null
+++ b/poolalloc/autoconf/AutoRegen.sh
@@ -0,0 +1,52 @@
+#!/bin/sh
+die () {
+	echo "$@" 1>&2
+	exit 1
+}
+test -d autoconf && test -f autoconf/configure.ac && cd autoconf
+test -f configure.ac || die "Can't find 'autoconf' dir; please cd into it first"
+autoconf --version | egrep '2\.5[0-9]' > /dev/null
+if test $? -ne 0 ; then
+  die "Your autoconf was not detected as being 2.5x"
+fi
+cwd=`pwd`
+if test -d ../../../autoconf/m4 ; then
+  cd ../../../autoconf/m4
+  llvm_m4=`pwd`
+  llvm_src_root='`(cd ../..; pwd)`'
+  llvm_obj_root='`(cd ../..; pwd)`'
+  cd $cwd
+elif test -d ../../llvm/autoconf/m4 ; then
+  cd ../../llvm/autoconf/m4
+  llvm_m4=`pwd`
+  llvm_src_root='`(cd ../..; pwd)`'
+  llvm_obj_root='`(cd ../..; pwd)`'
+  cd $cwd
+else
+  while true ; do
+    echo "LLVM source root not found." 
+    read -p "Enter full path to LLVM source:"
+    if test -d "$REPLY/autoconf/m4" ; then
+      llvm_src_root="$REPLY"
+      llvm_m4="$REPLY/autoconf/m4"
+      read -p "Enter full path to LLVM objects (empty for same as source):"
+      if test -d "$REPLY" ; then
+        llvm_obj_root="$REPLY"
+      else
+        llvm_obj_root="$llvm_src_root"
+      fi
+      break
+    fi
+  done
+fi
+# Patch the LLVM_ROOT in configure.ac, if it needs it
+cp configure.ac configure.bak
+#sed -e "s#^LLVM_SRC_ROOT=.*#LLVM_SRC_ROOT=\"$llvm_src_root\"#" \
+#    -e "s#^LLVM_OBJ_ROOT=.*#LLVM_OBJ_ROOT=\"$llvm_obj_root\"#" configure.bak > configure.ac
+echo "Regenerating aclocal.m4 with aclocal"
+rm -f aclocal.m4
+aclocal -I $llvm_m4 -I "$llvm_m4/.." || die "aclocal failed"
+echo "Regenerating configure with autoconf 2.5x"
+autoconf --warnings=all -o ../configure configure.ac || die "autoconf failed"
+cd ..
+exit 0
diff --git a/poolalloc/autoconf/aclocal.m4 b/poolalloc/autoconf/aclocal.m4
index 1fb7210..d3959fc 100644
--- a/poolalloc/autoconf/aclocal.m4
+++ b/poolalloc/autoconf/aclocal.m4
@@ -1,6136 +1,64 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
+# generated automatically by aclocal 1.9.2 -*- Autoconf -*-
 
-# serial 47 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-	         [m4_ifdef([AC_PROVIDE_$1],
-		           [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-	[AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-	     [define([LT_AC_PROG_GCJ],
-		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/mklib'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=mklib
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AC_HELP_STRING([--with-pic],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "[$]0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-     else
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  testring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
-	       = "XX$testring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$testring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      testring=$testring$testring
-    done
-    testring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# --------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# -------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-    
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-    	  lt_cv_dlopen_self_static, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-   # that will create temporary files in the current directory regardless of
-   # the output directory.  Thus, making CWD read-only will cause this test
-   # to fail, enabling locking or at least warning the user not to do parallel
-   # builds.
-   chmod -w .
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest* out/*
-   rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac  
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/lib /lib/w32api /usr/lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  # FIXME: Relying on posixy $() will cause problems for
-  #        cross-compilation, but unfortunately the echo tests do not
-  #        yet detect zsh echo's removal of \ escapes.
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-  sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
-        [include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && test "X$CXX" != "Xno"; then
-	  AC_LIBTOOL_LANG_CXX_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-	  AC_LIBTOOL_LANG_F77_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-	  AC_LIBTOOL_LANG_GCJ_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-	AC_LIBTOOL_LANG_RC_CONFIG
-	;;
-
-      *)
-	AC_MSG_ERROR([Unsupported tag name: $tagname])
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 dll's
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-#- set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the path to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [AC_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `"$LD" -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin* | mingw* | pw32*)
-  # win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='win32_libid'
-  ;;
-
-darwin* | rhapsody*)
-  # this will be overwritten by pass_all, but leave it in just in case
-  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  case "$host_os" in
-  rhapsody* | darwin1.[[012]])
-    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
-    ;;
-  *) # Darwin 1.3 on
-    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
-    ;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-  irix5* | nonstopux*)
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
-    ;;
-  *)
-    case $LD in
-    *-32|*"-32 ") libmagic=32-bit;;
-    *-n32|*"-n32 ") libmagic=N32;;
-    *-64|*"-64 ") libmagic=64-bit;;
-    *) libmagic=never-match;;
-    esac
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
-    ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  # this will be overridden with pass_all, but let us keep it just in case
-  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  lt_cv_file_magic_test_file=/lib/libc.so
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the path to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
-	  break
-	  ;;
-	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
-	  ;;
-	esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided and an installed libltdl is not found, it is
-# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
-# quotes!).  If your package is not flat and you're not using automake,
-# define top_builddir and top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,CXX" | sed 's/^,//'`])
-])# _LT_AC_LANG_CXX
-
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,F77" | sed 's/^,//'`])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,GCJ" | sed 's/^,//'`])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# --------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,RC" | sed 's/^,//'`])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
-    ;;
-  esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ 	]]" >/dev/null; then :
-  else
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-# Report which librarie types wil actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    # FIXME: Relying on posixy $() will cause problems for
-    #        cross-compilation, but unfortunately the echo tests do not
-    #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
-    #	       `"' quotes if we put them in here... so don't!
-		output_verbose_link_cmd='echo'
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-		  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-		  _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    fi
-    ;;  
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-	grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-	for ld_flag in $LDFLAGS; do
-	  case $ld_flag in
-	  *-brtl*)
-	    aix_use_runtimelinking=yes
-	    break
-	    ;;
-	  esac
-	done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    _LT_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	else
-	  # We have old collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	shared_flag='-G'
-      else
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag='${wl}-G'
-	else
-	  shared_flag='${wl}-bM:SRE'
-	fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-	# Determine the default libpath from the value encoded in an empty executable.
-	_LT_AC_SYS_LIBPATH_AIX
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	# Warning - without using the other run time loading flags,
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	# Exported symbols can be pulled into shared objects from archives
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	# This is similar to how AIX traditionally builds it's shared libraries.
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	cp $export_symbols $output_objdir/$soname.def;
-      else
-	echo EXPORTS > $output_objdir/$soname.def;
-	cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-   if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle ${wl}-bind_at_load $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      else
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      fi
-        _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-   fi 
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      ghcx)
-	# Green Hills C++ Compiler
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  freebsd[12]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd*)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				# but as the default
-				# location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-        ;;
-      ia64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        ;;
-      *)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      aCC)
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	esac
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test $with_gnu_ld = no; then
-	    case "$host_cpu" in
-	    ia64*|hppa*64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-	# SGI C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	# Archives containing C++ object files must be created using
-	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test "$with_gnu_ld" = no; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-	  else
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-	  fi
-	fi
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-	;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	;;
-      icpc)
-	# Intel C++
-	with_gnu_ld=yes
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	;;
-      cxx)
-	# Compaq C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	runpath_var=LD_RUN_PATH
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	  echo "-hidden">> $lib.exp~
-	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
-	  $rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sco*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.x
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      lcc)
-	# Lucid
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.2, 5.x and Centerline C++
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	case $host_os in
-	  solaris2.[0-5] | solaris2.[0-5].*) ;;
-	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	;;
-      gcx)
-	# Green Hills C++ Compiler
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	# The C++ compiler must be used to create the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	;;
-      *)
-	# GNU C++ compiler with Solaris linker
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	  if $CC --version | grep -v '^2\.7' > /dev/null; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  fi
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	fi
-	;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-	# NonStop-UX NCC 3.20
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi  
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \   
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
 
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext='$shrext'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  test -f Makefile && make "$ltmain"
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris* | sysv5*)
-  symcode='[[BDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGISTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68)
-	  # Green Hills C++ Compiler
-	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    if test "$host_cpu" != ia64; then
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    case "$host_cpu" in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux*)
-	case $cc_basename in
-	  KCC)
-	    # KAI C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  icpc)
-	    # Intel C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;; 
-	  cxx)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC)
-	    # Rational C++ 2.4.1
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx)
-	    # Digital/Compaq C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      sco*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.x
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc)
-	    # Lucid
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC)
-	    # NonStop-UX NCC 3.20
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      unixware*)
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc|ecc)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      ccc)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
 
 #
-# Check to make sure the PIC flag actually works.
+# Configure a Makefile without clobbering it if it exists and is not out of
+# date.  This macro is unique to LLVM.
 #
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=  
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
-      runpath_var=LD_RUN_PATH
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-	  for ld_flag in $LDFLAGS; do
-  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-  	    aix_use_runtimelinking=yes
-  	    break
-  	  fi
-	  done
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  else
-  	  # We have old collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 _LT_AC_SYS_LIBPATH_AIX
-	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi4*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      case "$host_os" in
-      rhapsody* | darwin1.[[012]])
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-	test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-	;;
-      esac
-      # FIXME: Relying on posixy $() will cause problems for
-      #        cross-compilation, but unfortunately the echo tests do not
-      #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
-      #	       `"' quotes if we put them in here... so don't!
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle ${wl}-bind_at_load $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    fi  
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	   ;;
-	 *)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv5*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-  
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-])
-AC_MSG_RESULT([$SED])
-])
-#############################################################################
-# Additional Macros
-#############################################################################
-
-#
-# Check for C++ namespace support.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_CXX_NAMESPACES],
-[AC_CACHE_CHECK(whether the compiler implements namespaces,
-ac_cv_cxx_namespaces,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}],
-                [using namespace Outer::Inner; return i;],
- ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_namespaces" = yes; then
-  AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces])
-fi
+AC_DEFUN([AC_CONFIG_MAKEFILE],
+[AC_CONFIG_COMMANDS($1,
+  [${llvm_src}/autoconf/mkinstalldirs `dirname $1`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/$1 $1])
 ])
 
 #
-# Check for hash_map extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_map.html
+# Provide the arguments and other processing needed for an LLVM project
 #
-AC_DEFUN([AC_CXX_HAVE_EXT_HASH_MAP],
-[AC_CACHE_CHECK(whether the compiler has ext/hash_map,
-ac_cv_cxx_have_ext_hash_map,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[hash_map<int, int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_map=std, ac_cv_cxx_have_ext_hash_map=no)
-  AC_TRY_COMPILE([#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[hash_map<int, int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_map=gnu, ac_cv_cxx_have_ext_hash_map=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_hash_map" = std; then
-   AC_DEFINE(HAVE_STD_EXT_HASH_MAP,,[define if the compiler has ext/hash_map])
-fi
-if test "$ac_cv_cxx_have_ext_hash_map" = gnu; then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_MAP,,[define if the compiler has ext/hash_map])
-fi
+AC_DEFUN([LLVM_CONFIG_PROJECT],
+  [AC_ARG_WITH([llvmsrc],
+    AS_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),
+    [llvm_src="$withval"],[llvm_src="]$1["])
+  AC_SUBST(LLVM_SRC,$llvm_src)
+  AC_ARG_WITH([llvmobj],
+    AS_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),
+    [llvm_obj="$withval"],[llvm_obj="]$2["])
+  AC_SUBST(LLVM_OBJ,$llvm_obj)
+  AC_CONFIG_COMMANDS([setup],,[llvm_src="${LLVM_SRC}"])
 ])
 
 #
-# Check for hash_set extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_HASH_SET],
-[AC_CACHE_CHECK(whether the compiler has ext/hash_set,
-ac_cv_cxx_have_ext_hash_set,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[hash_set<int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_set=std, ac_cv_cxx_have_ext_hash_set=no)
-  AC_TRY_COMPILE([#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[hash_set<int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_set=gnu, ac_cv_cxx_have_ext_hash_set=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_hash_set" = std; then
-   AC_DEFINE(HAVE_STD_EXT_HASH_SET,,[define if the compiler has ext/hash_set in std])
-fi
-if test "$ac_cv_cxx_have_ext_hash_set" = gnu; then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_SET,,[define if the compiler has ext/hash_set in __gnu_cc])
-fi
-])
-
-#
-# Check for standard iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_STD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the standard iterator,
-ac_cv_cxx_have_std_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[iterator<int,int,int> t; return 0;],
-  ac_cv_cxx_have_std_iterator=yes, ac_cv_cxx_have_std_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_std_iterator" = yes; then
-   AC_DEFINE(HAVE_STD_ITERATOR,,[define if the compiler has STL iterators])
-fi
-])
-
-#
-# Check for bidirectional iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_BI_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the bidirectional iterator,
-ac_cv_cxx_have_bi_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[bidirectional_iterator<int,int> t; return 0;],
-  ac_cv_cxx_have_bi_iterator=yes, ac_cv_cxx_have_bi_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_bi_iterator" = yes; then
-   AC_DEFINE(HAVE_BI_ITERATOR,,[define if the compiler has bidirectional iterator])
-fi
-])
-
-#
-# Check for forward iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_FWD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has forward iterators,
-ac_cv_cxx_have_fwd_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[forward_iterator<int,int> t; return 0;],
-  ac_cv_cxx_have_fwd_iterator=yes, ac_cv_cxx_have_fwd_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_fwd_iterator" = yes; then
-   AC_DEFINE(HAVE_FWD_ITERATOR,,[define if the compiler has STL iterators])
-fi
-])
-
-#
-# Check for slist extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_SLIST],
-[AC_CACHE_CHECK(whether the compiler has ext/slist,
-ac_cv_cxx_have_ext_slist,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/slist>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[slist<int> s; return 0;],
-  ac_cv_cxx_have_ext_slist=std, ac_cv_cxx_have_ext_slist=no)
-  AC_TRY_COMPILE([#include <ext/slist>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[slist<int> s; return 0;],
-  ac_cv_cxx_have_ext_slist=gnu, ac_cv_cxx_have_ext_slist=no)
-
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_slist" = std; then
-   AC_DEFINE(HAVE_EXT_SLIST,std,[define if the compiler has ext/slist])
-fi
-if test "$ac_cv_cxx_have_ext_slist" = gnu; then
-   AC_DEFINE(HAVE_EXT_SLIST,gnu,[define if the compiler has ext/slist])
-fi
-])
-
-#
-# Check for FLEX.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_PROG_FLEX],
-[AC_CACHE_CHECK(,
-ac_cv_has_flex,
-[AC_PROG_LEX()
-])
-if test "$LEX" != "flex"; then
-  AC_MSG_ERROR([flex not found but required])
-fi
-])
-
-#
-# Check for Bison.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_PROG_BISON],
-[AC_CACHE_CHECK(,
-ac_cv_has_bison,
-[AC_PROG_YACC()
-])
-if test "$YACC" != "bison -y"; then
-  AC_MSG_ERROR([bison not found but required])
-else
-  AC_SUBST(YACC,[bison],[location of bison])
-fi
-])
-
-#
-# Check for GNU Make.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/check_gnu_make.html
-#
-AC_DEFUN(
-        [CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
-                _cv_gnu_make_command='' ;
-dnl Search all the common names for GNU make
-                for a in "$MAKE" make gmake gnumake ; do
-                        if test -z "$a" ; then continue ; fi ;
-                        if  ( sh -c "$a --version" 2> /dev/null | grep GNU  2>&1 > /dev/null ) ;  then
-                                _cv_gnu_make_command=$a ;
-                                break;
-                        fi
-                done ;
-        ) ;
-dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
-        if test  "x$_cv_gnu_make_command" != "x"  ; then
-                ifGNUmake='' ;
-        else
-                ifGNUmake='#' ;
-                AC_MSG_RESULT("Not found");
-        fi
-        AC_SUBST(ifGNUmake)
-] )
-
-#
-# Check for the ability to mmap a file.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
+# Check for the ability to mmap a file.  
 #
 AC_DEFUN([AC_FUNC_MMAP_FILE],
 [AC_CACHE_CHECK(for mmap of files,
 ac_cv_func_mmap_file,
-[AC_LANG_SAVE
-  AC_LANG_C
-  AC_TRY_RUN([
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
+[ AC_LANG_PUSH([C])
+  AC_RUN_IFELSE([
+    AC_LANG_PROGRAM([[
 #include <sys/types.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
+#include <sys/mman.h>
 #include <fcntl.h>
-#endif
-
+]],[[
   int fd;
-  int main () {
-  fd = creat ("foo",0777); fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0); unlink ("foo"); return (fd != MAP_FAILED);}],
-  ac_cv_func_mmap_file=yes, ac_cv_func_mmap_file=no)
-  AC_LANG_RESTORE
+  fd = creat ("foo",0777); 
+  fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
+  unlink ("foo"); 
+  return (fd != (int) MAP_FAILED);]])],
+  [ac_cv_func_mmap_file=yes],[ac_cv_func_mmap_file=no],[ac_cv_func_mmap_file=no])
+  AC_LANG_POP([C])
 ])
 if test "$ac_cv_func_mmap_file" = yes; then
-   AC_DEFINE(HAVE_MMAP_FILE)
+   AC_DEFINE([HAVE_MMAP_FILE],[],[Define if mmap() can map files into memory])
    AC_SUBST(MMAP_FILE,[yes])
 fi
 ])
@@ -6142,37 +70,25 @@
 AC_DEFUN([AC_HEADER_MMAP_ANONYMOUS],
 [AC_CACHE_CHECK(for MAP_ANONYMOUS vs. MAP_ANON,
 ac_cv_header_mmap_anon,
-[AC_LANG_SAVE
-  AC_LANG_C
-  AC_TRY_COMPILE([#include <sys/mman.h>
-  #include <unistd.h>
-  #include <fcntl.h>],
-  [mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);],
-  ac_cv_header_mmap_anon=yes, ac_cv_header_mmap_anon=no)
-  AC_LANG_RESTORE
+[ AC_LANG_PUSH([C])
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
+    [[#include <sys/mman.h>
+#include <unistd.h>
+#include <fcntl.h>]],
+  [[mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);]])],
+  ac_cv_header_mmap_anon=yes, 
+  ac_cv_header_mmap_anon=no)
+  AC_LANG_POP([C])
 ])
 if test "$ac_cv_header_mmap_anon" = yes; then
-   AC_DEFINE(HAVE_MMAP_ANONYMOUS)
+   AC_DEFINE([HAVE_MMAP_ANONYMOUS],[1],[Define if mmap() uses MAP_ANONYMOUS to map anonymous pages, or undefine if it uses MAP_ANON])
 fi
 ])
 
 #
-# Configure a Makefile without clobbering it if it exists and is not out of
-# date.  This is modified from:
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_CONFIG_MAKEFILE],
-[AC_CONFIG_COMMANDS($1,${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/$1 $1,${srcdir}/autoconf/mkinstalldirs `dirname $1`)
-])
-
-#
 # When allocating RWX memory, check whether we need to use /dev/zero
 # as the file descriptor or not.
 #
-# Note:
-#   Originally from llvm/autoconf/m4/need_dev_zero_for_mmap.m4, written by
-#   Reid Spencer.
-#
 AC_DEFUN([AC_NEED_DEV_ZERO_FOR_MMAP],
 [AC_CACHE_CHECK([if /dev/zero is needed for mmap],
 ac_cv_need_dev_zero_for_mmap,
diff --git a/poolalloc/autoconf/configure.ac b/poolalloc/autoconf/configure.ac
index 1ac6d8e..08a310f 100644
--- a/poolalloc/autoconf/configure.ac
+++ b/poolalloc/autoconf/configure.ac
@@ -1,26 +1,28 @@
-dnl Autoconf requirements
-dnl AC_INIT(package, version, bug-report-address)
-dnl information on the package
-dnl checks for programs
-dnl checks for libraries
-dnl checks for header files
-dnl checks for types
-dnl checks for structures
-dnl checks for compiler characteristics
-dnl checks for library functions
-dnl checks for system services
-dnl AC_CONFIG_FILES([file...])
-dnl AC_OUTPUT
-
 dnl **************************************************************************
 dnl * Initialize
 dnl **************************************************************************
 AC_INIT([[[Pool Allocation]]],[[[1.0]]],[llvmbugs@cs.uiuc.edu])
 
-dnl Place all of the extra autoconf files into the config subdirectory
-AC_CONFIG_AUX_DIR([autoconf])
+dnl Identify where LLVM source tree is
+LLVM_SRC_ROOT="`(cd $srcdir/../..; pwd)`"
+LLVM_OBJ_ROOT="`(cd ../..; pwd)`"
 
-dnl Configure Makefiles
+dnl Tell autoconf that the auxilliary files are actually located in
+dnl the LLVM autoconf directory, not here.
+AC_CONFIG_AUX_DIR($LLVM_SRC_ROOT/autoconf)
+
+dnl Tell autoconf that this is an LLVM project being configured
+dnl This provides the --with-llvmsrc and --with-llvmobj options
+LLVM_CONFIG_PROJECT($LLVM_SRC_ROOT,$LLVM_OBJ_ROOT)
+
+dnl Verify that the source directory is valid
+AC_CONFIG_SRCDIR(["Makefile.common.in"])
+
+dnl Configure a common Makefile
+AC_CONFIG_FILES(Makefile.common)
+
+dnl Configure project makefiles
+dnl List every Makefile that exists within your source tree
 AC_CONFIG_MAKEFILE(Makefile)
 AC_CONFIG_MAKEFILE(lib/Makefile)
 AC_CONFIG_MAKEFILE(lib/PoolAllocate/Makefile)
@@ -37,22 +39,12 @@
 dnl * Check for programs.
 dnl **************************************************************************
 
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(["Makefile.common.in"])
-
 dnl **************************************************************************
 dnl * Check for libraries.
 dnl **************************************************************************
 
 dnl **************************************************************************
 dnl * Checks for header files.
-dnl *	Chances are, if the standard C or POSIX type header files are missing,
-dnl *	then LLVM just isn't going to compile.  However, it is possible that
-dnl *	the necessary functions/macros will be included from other
-dnl *	(non-standard and non-obvious) header files.
-dnl *
-dnl *	So, we'll be gracious, give it a chance, and try to go on without
-dnl *	them.
 dnl **************************************************************************
 AC_HEADER_MMAP_ANONYMOUS
 AC_HEADER_STAT
@@ -73,18 +65,38 @@
 dnl * Enable various compile-time options
 dnl **************************************************************************
 
+dnl --enable-safecode: Enable SAFECode functionality
+AC_ARG_ENABLE(safecode,
+  AS_HELP_STRING(--enable-safecode,
+                 [Enable SAFECode functionality (default is NO)]),
+                  AC_DEFINE(SAFECODE,[[1]]),
+                  )
+
+dnl --enable-boundscheck: Enable SAFECode Bounds Check functionality
+AC_ARG_ENABLE(boundscheck,
+  AS_HELP_STRING(--enable-boundschecks,
+                 [Enable SAFECode bounds checking (default is NO)]),
+                  AC_DEFINE(BOUNDS_CHECK,[[1]]),
+                  )
+
+dnl --enable-llva-kernel: Compile DSA for pool inference
+AC_ARG_ENABLE(kernel,
+  AS_HELP_STRING(--enable-kernel,
+                 [Use SAFECode for use with Linux Kernel (default is NO)]),
+                  AC_DEFINE(LLVA_KERNEL,[[1]]),
+                  )
+
 dnl **************************************************************************
 dnl * Set the location of various third-party software packages
 dnl **************************************************************************
 
-dnl Location of LLVM source code
-AC_ARG_WITH(llvmsrc,AC_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[`cd ${srcdir}/../..; pwd`]))
-
-dnl Location of LLVM object code
-AC_ARG_WITH(llvmobj,AC_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[`cd ../..; pwd`]))
+dnl Location of SAFECode
+AC_ARG_WITH(safecodesrc,AS_HELP_STRING(--with-safecode,Location of SAFECode Source Code),AC_SUBST(SAFECODESRC,[$withval]),AC_SUBST(SAFECODESRC,[`cd ../safecode; pwd`]))
 
 dnl **************************************************************************
 dnl * Create the output files
 dnl **************************************************************************
 AC_CONFIG_HEADERS(include/poolalloc/Config/config.h)
-AC_OUTPUT(Makefile.common)
+
+dnl This must be last
+AC_OUTPUT
diff --git a/poolalloc/configure b/poolalloc/configure
index ae64413..fefb036 100755
--- a/poolalloc/configure
+++ b/poolalloc/configure
@@ -1,11 +1,10 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57 for [Pool Allocation] [1.0].
+# Generated by GNU Autoconf 2.59 for [Pool Allocation] [1.0].
 #
 # Report bugs to <llvmbugs@cs.uiuc.edu>.
 #
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 2003 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -22,9 +21,10 @@
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
+DUALCASE=1; export DUALCASE # for MKS sh
 
 # Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
 else
   as_unset=false
@@ -43,7 +43,7 @@
   LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
   LC_TELEPHONE LC_TIME
 do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
     $as_unset $as_var
@@ -220,16 +220,17 @@
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
 else
+  test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 # IFS
@@ -310,7 +311,7 @@
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP MMAP_FILE LLVM_SRC LLVM_OBJ LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP EGREP MMAP_FILE SAFECODESRC LIBOBJS LTLIBOBJS'
 ac_subst_files=''
 
 # Initialize some variables set by options.
@@ -669,7 +670,7 @@
 
 # Be sure to have absolute paths.
 for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-              localstatedir libdir includedir oldincludedir infodir mandir
+	      localstatedir libdir includedir oldincludedir infodir mandir
 do
   eval ac_val=$`echo $ac_var`
   case $ac_val in
@@ -709,10 +710,10 @@
   # Try the directory containing this script, then its parent.
   ac_confdir=`(dirname "$0") 2>/dev/null ||
 $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$0" : 'X\(//\)[^/]' \| \
-         X"$0" : 'X\(//\)$' \| \
-         X"$0" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(//\)[^/]' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$0" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -804,9 +805,9 @@
   cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
+			  [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
+			  [PREFIX]
 
 By default, \`make install' will install all the files in
 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
@@ -840,11 +841,20 @@
    esac
   cat <<\_ACEOF
 
+Optional Features:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --enable-safecode       Enable SAFECode functionality (default is NO)
+  --enable-boundschecks   Enable SAFECode bounds checking (default is NO)
+  --enable-kernel         Use SAFECode for use with Linux Kernel (default is
+                          NO)
+
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
   --with-llvmsrc          Location of LLVM Source Code
   --with-llvmobj          Location of LLVM Object Code
+  --with-safecode         Location of SAFECode Source Code
 
 Some influential environment variables:
   CC          C compiler command
@@ -892,12 +902,45 @@
     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
     ac_top_srcdir=$ac_top_builddir$srcdir ;;
 esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
     cd $ac_dir
     # Check for guested configure; otherwise get Cygnus style configure.
@@ -908,7 +951,7 @@
       echo
       $SHELL $ac_srcdir/configure  --help=recursive
     elif test -f $ac_srcdir/configure.ac ||
-           test -f $ac_srcdir/configure.in; then
+	   test -f $ac_srcdir/configure.in; then
       echo
       $ac_configure --help
     else
@@ -922,10 +965,9 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 [Pool Allocation] configure [1.0]
-generated by GNU Autoconf 2.57
+generated by GNU Autoconf 2.59
 
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -937,7 +979,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by [Pool Allocation] $as_me [1.0], which was
-generated by GNU Autoconf 2.57.  Invocation command line was
+generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
 
@@ -1014,19 +1056,19 @@
     2)
       ac_configure_args1="$ac_configure_args1 '$ac_arg'"
       if test $ac_must_keep_next = true; then
-        ac_must_keep_next=false # Got value, back to normal.
+	ac_must_keep_next=false # Got value, back to normal.
       else
-        case $ac_arg in
-          *=* | --config-cache | -C | -disable-* | --disable-* \
-          | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-          | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-          | -with-* | --with-* | -without-* | --without-* | --x)
-            case "$ac_configure_args0 " in
-              "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-            esac
-            ;;
-          -* ) ac_must_keep_next=true ;;
-        esac
+	case $ac_arg in
+	  *=* | --config-cache | -C | -disable-* | --disable-* \
+	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+	  | -with-* | --with-* | -without-* | --without-* | --x)
+	    case "$ac_configure_args0 " in
+	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+	    esac
+	    ;;
+	  -* ) ac_must_keep_next=true ;;
+	esac
       fi
       ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
       # Get rid of the leading space.
@@ -1060,12 +1102,12 @@
     case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
     *ac_space=\ *)
       sed -n \
-        "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
       ;;
     *)
       sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
       ;;
     esac;
 }
@@ -1094,7 +1136,7 @@
       for ac_var in $ac_subst_files
       do
 	eval ac_val=$`echo $ac_var`
-        echo "$ac_var='"'"'$ac_val'"'"'"
+	echo "$ac_var='"'"'$ac_val'"'"'"
       done | sort
       echo
     fi
@@ -1113,7 +1155,7 @@
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
-  rm -f core core.* *.core &&
+  rm -f core *.core &&
   rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
      ' 0
@@ -1193,7 +1235,7 @@
 # value.
 ac_cache_corrupted=false
 for ac_var in `(set) 2>&1 |
-               sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
   eval ac_old_set=\$ac_cv_env_${ac_var}_set
   eval ac_new_set=\$ac_env_${ac_var}_set
   eval ac_old_val="\$ac_cv_env_${ac_var}_value"
@@ -1210,13 +1252,13 @@
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-        { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
 echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-        { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
 echo "$as_me:   former value:  $ac_old_val" >&2;}
-        { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
 echo "$as_me:   current value: $ac_new_val" >&2;}
-        ac_cache_corrupted=:
+	ac_cache_corrupted=:
       fi;;
   esac
   # Pass precious variables to config.status.
@@ -1273,8 +1315,11 @@
 
 
 
+LLVM_SRC_ROOT="`(cd $srcdir/../..; pwd)`"
+LLVM_OBJ_ROOT="`(cd ../..; pwd)`"
+
 ac_aux_dir=
-for ac_dir in autoconf $srcdir/autoconf; do
+for ac_dir in $LLVM_SRC_ROOT/autoconf $srcdir/$LLVM_SRC_ROOT/autoconf; do
   if test -f $ac_dir/install-sh; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -1290,8 +1335,8 @@
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&2;}
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $LLVM_SRC_ROOT/autoconf $srcdir/$LLVM_SRC_ROOT/autoconf" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in $LLVM_SRC_ROOT/autoconf $srcdir/$LLVM_SRC_ROOT/autoconf" >&2;}
    { (exit 1); exit 1; }; }
 fi
 ac_config_guess="$SHELL $ac_aux_dir/config.guess"
@@ -1299,6 +1344,35 @@
 ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 
 
+
+# Check whether --with-llvmsrc or --without-llvmsrc was given.
+if test "${with_llvmsrc+set}" = set; then
+  withval="$with_llvmsrc"
+  llvm_src="$withval"
+else
+  llvm_src="$LLVM_SRC_ROOT"
+fi;
+  LLVM_SRC=$llvm_src
+
+
+# Check whether --with-llvmobj or --without-llvmobj was given.
+if test "${with_llvmobj+set}" = set; then
+  withval="$with_llvmobj"
+  llvm_obj="$withval"
+else
+  llvm_obj="$LLVM_OBJ_ROOT"
+fi;
+  LLVM_OBJ=$llvm_obj
+
+            ac_config_commands="$ac_config_commands setup"
+
+
+
+
+
+          ac_config_files="$ac_config_files Makefile.common"
+
+
           ac_config_commands="$ac_config_commands Makefile"
 
 
@@ -1324,8 +1398,6 @@
 
 
 
-
-
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -1662,7 +1734,6 @@
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -1682,8 +1753,8 @@
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output" >&5
-echo $ECHO_N "checking for C compiler default output... $ECHO_C" >&6
+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
   (eval $ac_link_default) 2>&5
@@ -1703,23 +1774,23 @@
   test -f "$ac_file" || continue
   case $ac_file in
     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-        ;;
+	;;
     conftest.$ac_ext )
-        # This is the source file.
-        ;;
+	# This is the source file.
+	;;
     [ab].out )
-        # We found the default executable, but exeext='' is most
-        # certainly right.
-        break;;
+	# We found the default executable, but exeext='' is most
+	# certainly right.
+	break;;
     *.* )
-        ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-        # FIXME: I believe we export ac_cv_exeext for Libtool,
-        # but it would be cool to find out if it's true.  Does anybody
-        # maintain Libtool? --akim.
-        export ac_cv_exeext
-        break;;
+	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	# FIXME: I believe we export ac_cv_exeext for Libtool,
+	# but it would be cool to find out if it's true.  Does anybody
+	# maintain Libtool? --akim.
+	export ac_cv_exeext
+	break;;
     * )
-        break;;
+	break;;
   esac
 done
 else
@@ -1793,8 +1864,8 @@
   case $ac_file in
     *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-          export ac_cv_exeext
-          break;;
+	  export ac_cv_exeext
+	  break;;
     * ) break;;
   esac
 done
@@ -1819,7 +1890,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -1870,7 +1940,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -1890,11 +1959,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -1907,7 +1986,7 @@
 
 ac_compiler_gnu=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
@@ -1923,7 +2002,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -1940,11 +2018,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -1957,7 +2045,7 @@
 
 ac_cv_prog_cc_g=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
 echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
@@ -1984,7 +2072,6 @@
   ac_cv_prog_cc_stdc=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2012,6 +2099,16 @@
   va_end (v);
   return s;
 }
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+   function prototypes and stuff, but not '\xHH' hex character constants.
+   These don't provoke an error unfortunately, instead are silently treated
+   as 'x'.  The following induces an error, until -std1 is added to get
+   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+   array size at least.  It's necessary to write '\x00'==0 to get something
+   that's true only with -std1.  */
+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -2038,11 +2135,21 @@
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2055,7 +2162,7 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext
+rm -f conftest.err conftest.$ac_objext
 done
 rm -f conftest.$ac_ext conftest.$ac_objext
 CC=$ac_save_CC
@@ -2083,19 +2190,28 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   for ac_declaration in \
-   ''\
-   '#include <stdlib.h>' \
+   '' \
    'extern "C" void std::exit (int) throw (); using std::exit;' \
    'extern "C" void std::exit (int); using std::exit;' \
    'extern "C" void exit (int) throw ();' \
@@ -2103,14 +2219,13 @@
    'void exit (int);'
 do
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
-#include <stdlib.h>
 $ac_declaration
+#include <stdlib.h>
 int
 main ()
 {
@@ -2121,11 +2236,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2138,9 +2263,8 @@
 
 continue
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2157,11 +2281,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2173,7 +2307,7 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 done
 rm -f conftest*
 if test -n "$ac_declaration"; then
@@ -2187,7 +2321,7 @@
 sed 's/^/| /' conftest.$ac_ext >&5
 
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2200,24 +2334,21 @@
 if test "${ac_cv_header_mmap_anon+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-
-
-  ac_ext=c
+   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 #include <sys/mman.h>
-  #include <unistd.h>
-  #include <fcntl.h>
+#include <unistd.h>
+#include <fcntl.h>
 int
 main ()
 {
@@ -2228,11 +2359,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2245,7 +2386,7 @@
 
 ac_cv_header_mmap_anon=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2257,7 +2398,8 @@
 echo "$as_me:$LINENO: result: $ac_cv_header_mmap_anon" >&5
 echo "${ECHO_T}$ac_cv_header_mmap_anon" >&6
 if test "$ac_cv_header_mmap_anon" = yes; then
-   cat >>confdefs.h <<\_ACEOF
+
+cat >>confdefs.h <<\_ACEOF
 #define HAVE_MMAP_ANONYMOUS 1
 _ACEOF
 
@@ -2291,7 +2433,6 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2302,7 +2443,7 @@
 #else
 # include <assert.h>
 #endif
-                     Syntax error
+		     Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -2314,6 +2455,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2334,7 +2476,6 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2352,6 +2493,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2398,7 +2540,6 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2409,7 +2550,7 @@
 #else
 # include <assert.h>
 #endif
-                     Syntax error
+		     Syntax error
 _ACEOF
 if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
   (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
@@ -2421,6 +2562,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2441,7 +2583,6 @@
   # OK, works on sane cases.  Now check whether non-existent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2459,6 +2600,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2519,7 +2661,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2578,7 +2719,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2599,11 +2739,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2616,12 +2766,11 @@
 
 ac_cv_header_stdc=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2643,7 +2792,6 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2668,7 +2816,6 @@
   :
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2680,9 +2827,9 @@
 # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
 #else
 # define ISLOWER(c) \
-                   (('a' <= (c) && (c) <= 'i') \
-                     || ('j' <= (c) && (c) <= 'r') \
-                     || ('s' <= (c) && (c) <= 'z'))
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
 # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
 #endif
 
@@ -2693,7 +2840,7 @@
   int i;
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
-        || toupper (i) != TOUPPER (i))
+	|| toupper (i) != TOUPPER (i))
       exit(2);
   exit (0);
 }
@@ -2718,7 +2865,7 @@
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 fi
@@ -2743,7 +2890,7 @@
 
 
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-                  inttypes.h stdint.h unistd.h
+		  inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
 echo "$as_me:$LINENO: checking for $ac_header" >&5
@@ -2752,7 +2899,6 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2764,11 +2910,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2781,7 +2937,7 @@
 
 eval "$as_ac_Header=no"
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -2813,7 +2969,6 @@
 echo "$as_me:$LINENO: checking $ac_header usability" >&5
 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2824,11 +2979,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2841,7 +3006,7 @@
 
 ac_header_compiler=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
 echo "${ECHO_T}$ac_header_compiler" >&6
 
@@ -2849,7 +3014,6 @@
 echo "$as_me:$LINENO: checking $ac_header presence" >&5
 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2867,6 +3031,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -2886,33 +3051,32 @@
 echo "${ECHO_T}$ac_header_preproc" >&6
 
 # So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
     { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
     ;;
-  no:yes )
+  no:yes:* )
     { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ----------------------------------- ##
+## Report this to llvmbugs@cs.uiuc.edu ##
+## ----------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -2923,7 +3087,7 @@
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  eval "$as_ac_Header=$ac_header_preproc"
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -2958,7 +3122,6 @@
 echo "$as_me:$LINENO: checking $ac_header usability" >&5
 echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2969,11 +3132,21 @@
 _ACEOF
 rm -f conftest.$ac_objext
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+  (eval $ac_compile) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest.$ac_objext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -2986,7 +3159,7 @@
 
 ac_header_compiler=no
 fi
-rm -f conftest.$ac_objext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
 echo "${ECHO_T}$ac_header_compiler" >&6
 
@@ -2994,7 +3167,6 @@
 echo "$as_me:$LINENO: checking $ac_header presence" >&5
 echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
 cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3012,6 +3184,7 @@
   (exit $ac_status); } >/dev/null; then
   if test -s conftest.err; then
     ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
   else
     ac_cpp_err=
   fi
@@ -3031,33 +3204,32 @@
 echo "${ECHO_T}$ac_header_preproc" >&6
 
 # So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc in
-  yes:no )
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
     { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
 echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
     ;;
-  no:yes )
+  no:yes:* )
     { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
 echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     (
       cat <<\_ASBOX
-## ------------------------------------ ##
-## Report this to bug-autoconf@gnu.org. ##
-## ------------------------------------ ##
+## ----------------------------------- ##
+## Report this to llvmbugs@cs.uiuc.edu ##
+## ----------------------------------- ##
 _ASBOX
     ) |
       sed "s/^/$as_me: WARNING:     /" >&2
@@ -3068,7 +3240,7 @@
 if eval "test \"\${$as_ac_Header+set}\" = set"; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  eval "$as_ac_Header=$ac_header_preproc"
+  eval "$as_ac_Header=\$ac_header_preproc"
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
@@ -3093,21 +3265,28 @@
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $ac_func innocuous_$ac_func
+
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func (); below.
     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
     <limits.h> exists even on freestanding compilers.  */
+
 #ifdef __STDC__
 # include <limits.h>
 #else
 # include <assert.h>
 #endif
+
+#undef $ac_func
+
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
 extern "C"
@@ -3138,11 +3317,21 @@
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+  (eval $ac_link) 2>conftest.er1
   ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-         { ac_try='test -s conftest$ac_exeext'
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest$ac_exeext'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
@@ -3155,7 +3344,8 @@
 
 eval "$as_ac_var=no"
 fi
-rm -f conftest.$ac_objext conftest$ac_exeext conftest.$ac_ext
+rm -f conftest.err conftest.$ac_objext \
+      conftest$ac_exeext conftest.$ac_ext
 fi
 echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
 echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
@@ -3176,7 +3366,6 @@
   ac_cv_func_mmap_fixed_mapped=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3284,9 +3473,9 @@
   data2 = (char *) malloc (2 * pagesize);
   if (!data2)
     exit (1);
-  data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+  data2 += (pagesize - ((long) data2 & (pagesize - 1))) & (pagesize - 1);
   if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-                     MAP_PRIVATE | MAP_FIXED, fd, 0L))
+		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
     exit (1);
   for (i = 0; i < pagesize; ++i)
     if (*(data + i) != *(data2 + i))
@@ -3329,7 +3518,7 @@
 ( exit $ac_status )
 ac_cv_func_mmap_fixed_mapped=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 fi
 echo "$as_me:$LINENO: result: $ac_cv_func_mmap_fixed_mapped" >&5
@@ -3348,44 +3537,39 @@
 if test "${ac_cv_func_mmap_file+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-
-
-  ac_ext=c
+   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
   if test "$cross_compiling" = yes; then
-  { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+  ac_cv_func_mmap_file=no
 else
   cat >conftest.$ac_ext <<_ACEOF
-#line $LINENO "configure"
-/* confdefs.h.  */
+
+    /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
+#include <sys/mman.h>
 #include <fcntl.h>
-#endif
+
+int
+main ()
+{
 
   int fd;
-  int main () {
-  fd = creat ("foo",0777); fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0); unlink ("foo"); return (fd != MAP_FAILED);}
+  fd = creat ("foo",0777);
+  fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0);
+  unlink ("foo");
+  return (fd != (int) MAP_FAILED);
+  ;
+  return 0;
+}
 _ACEOF
 rm -f conftest$ac_exeext
 if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
@@ -3407,7 +3591,7 @@
 ( exit $ac_status )
 ac_cv_func_mmap_file=no
 fi
-rm -f core core.* *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -3420,8 +3604,9 @@
 echo "$as_me:$LINENO: result: $ac_cv_func_mmap_file" >&5
 echo "${ECHO_T}$ac_cv_func_mmap_file" >&6
 if test "$ac_cv_func_mmap_file" = yes; then
-   cat >>confdefs.h <<\_ACEOF
-#define HAVE_MMAP_FILE 1
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_MMAP_FILE
 _ACEOF
 
    MMAP_FILE=yes
@@ -3451,32 +3636,48 @@
 fi
 
 
+# Check whether --enable-safecode or --disable-safecode was given.
+if test "${enable_safecode+set}" = set; then
+  enableval="$enable_safecode"
+  cat >>confdefs.h <<\_ACEOF
+#define SAFECODE 1
+_ACEOF
 
+fi;
 
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  LLVM_SRC=$withval
+# Check whether --enable-boundscheck or --disable-boundscheck was given.
+if test "${enable_boundscheck+set}" = set; then
+  enableval="$enable_boundscheck"
+  cat >>confdefs.h <<\_ACEOF
+#define BOUNDS_CHECK 1
+_ACEOF
 
-else
-  LLVM_SRC=`cd ${srcdir}/../..; pwd`
+fi;
+
+# Check whether --enable-kernel or --disable-kernel was given.
+if test "${enable_kernel+set}" = set; then
+  enableval="$enable_kernel"
+  cat >>confdefs.h <<\_ACEOF
+#define LLVA_KERNEL 1
+_ACEOF
 
 fi;
 
 
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  LLVM_OBJ=$withval
+
+# Check whether --with-safecodesrc or --without-safecodesrc was given.
+if test "${with_safecodesrc+set}" = set; then
+  withval="$with_safecodesrc"
+  SAFECODESRC=$withval
 
 else
-  LLVM_OBJ=`cd ../..; pwd`
+  SAFECODESRC=`cd ../safecode; pwd`
 
 fi;
 
           ac_config_headers="$ac_config_headers include/poolalloc/Config/config.h"
 
-          ac_config_files="$ac_config_files Makefile.common"
+
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -3505,13 +3706,13 @@
       # `set' does not quote correctly, so add quotes (double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \).
       sed -n \
-        "s/'/'\\\\''/g;
-    	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+	"s/'/'\\\\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
       ;;
     *)
       # `set' quotes correctly as required by POSIX, so do not add quotes.
       sed -n \
-        "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
       ;;
     esac;
 } |
@@ -3541,13 +3742,13 @@
 # trailing colons and then remove the whole line if VPATH becomes empty
 # (actually we leave an empty line to preserve line numbers).
 if test "x$srcdir" = x.; then
-  ac_vpsub='/^[ 	]*VPATH[ 	]*=/{
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
 s/:*\$(srcdir):*/:/;
 s/:*\${srcdir}:*/:/;
 s/:*@srcdir@:*/:/;
-s/^\([^=]*=[ 	]*\):*/\1/;
+s/^\([^=]*=[	 ]*\):*/\1/;
 s/:*$//;
-s/^[^=]*=[ 	]*$//;
+s/^[^=]*=[	 ]*$//;
 }'
 fi
 
@@ -3558,7 +3759,7 @@
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_i=`echo "$ac_i" |
-         sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
   # 2. Add them.
   ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
   ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
@@ -3602,9 +3803,10 @@
 elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
   set -o posix
 fi
+DUALCASE=1; export DUALCASE # for MKS sh
 
 # Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
 else
   as_unset=false
@@ -3623,7 +3825,7 @@
   LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
   LC_TELEPHONE LC_TIME
 do
-  if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
+  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
     $as_unset $as_var
@@ -3802,16 +4004,17 @@
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
 else
+  test -d ./-p && rmdir ./-p
   as_mkdir_p=false
 fi
 
 as_executable_p="test -f"
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="sed y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 # IFS
@@ -3838,7 +4041,7 @@
 cat >&5 <<_CSEOF
 
 This file was extended by [Pool Allocation] $as_me [1.0], which was
-generated by GNU Autoconf 2.57.  Invocation command line was
+generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -3882,9 +4085,9 @@
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
   --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
+		   instantiate the configuration file FILE
   --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
+		   instantiate the configuration header FILE
 
 Configuration files:
 $config_files
@@ -3901,11 +4104,10 @@
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 [Pool Allocation] config.status [1.0]
-configured by $0, generated by GNU Autoconf 2.57,
+configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
+Copyright (C) 2003 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 srcdir=$srcdir
@@ -3999,13 +4201,7 @@
 # INIT-COMMANDS section.
 #
 
-${srcdir}/autoconf/mkinstalldirs `dirname Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname lib/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname lib/PoolAllocate/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname runtime/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname runtime/PoolAllocator/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname runtime/FreeListAllocator/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname test/Makefile`
+llvm_src="${LLVM_SRC}"
 
 _ACEOF
 
@@ -4017,6 +4213,7 @@
   case "$ac_config_target" in
   # Handling of arguments.
   "Makefile.common" ) CONFIG_FILES="$CONFIG_FILES Makefile.common" ;;
+  "setup" ) CONFIG_COMMANDS="$CONFIG_COMMANDS setup" ;;
   "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
   "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
   "lib/PoolAllocate/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/PoolAllocate/Makefile" ;;
@@ -4110,6 +4307,8 @@
 s,@ECHO_N@,$ECHO_N,;t t
 s,@ECHO_T@,$ECHO_T,;t t
 s,@LIBS@,$LIBS,;t t
+s,@LLVM_SRC@,$LLVM_SRC,;t t
+s,@LLVM_OBJ@,$LLVM_OBJ,;t t
 s,@CC@,$CC,;t t
 s,@CFLAGS@,$CFLAGS,;t t
 s,@LDFLAGS@,$LDFLAGS,;t t
@@ -4120,8 +4319,7 @@
 s,@CPP@,$CPP,;t t
 s,@EGREP@,$EGREP,;t t
 s,@MMAP_FILE@,$MMAP_FILE,;t t
-s,@LLVM_SRC@,$LLVM_SRC,;t t
-s,@LLVM_OBJ@,$LLVM_OBJ,;t t
+s,@SAFECODESRC@,$SAFECODESRC,;t t
 s,@LIBOBJS@,$LIBOBJS,;t t
 s,@LTLIBOBJS@,$LTLIBOBJS,;t t
 CEOF
@@ -4153,9 +4351,9 @@
       (echo ':t
   /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
       if test -z "$ac_sed_cmds"; then
-  	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
       else
-  	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
       fi
       ac_sed_frag=`expr $ac_sed_frag + 1`
       ac_beg=$ac_end
@@ -4173,21 +4371,21 @@
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case $ac_file in
   - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   * )   ac_file_in=$ac_file.in ;;
   esac
 
   # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
   ac_dir=`(dirname "$ac_file") 2>/dev/null ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -4203,10 +4401,10 @@
       as_dirs="$as_dir $as_dirs"
       as_dir=`(dirname "$as_dir") 2>/dev/null ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -4244,12 +4442,45 @@
     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
     ac_top_srcdir=$ac_top_builddir$srcdir ;;
 esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
 
 
@@ -4267,7 +4498,7 @@
     configure_input="$ac_file.  "
   fi
   configure_input=$configure_input"Generated from `echo $ac_file_in |
-                                     sed 's,.*/,,'` by configure."
+				     sed 's,.*/,,'` by configure."
 
   # First look for the input files in the build tree, otherwise in the
   # src tree.
@@ -4276,24 +4507,24 @@
       case $f in
       -) echo $tmp/stdin ;;
       [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         echo $f;;
+	 echo "$f";;
       *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         fi;;
+	 fi;;
       esac
     done` || { (exit 1); exit 1; }
 _ACEOF
@@ -4334,12 +4565,12 @@
 # NAME is the cpp macro being defined and VALUE is the value it is being given.
 #
 # ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
-ac_dB='[ 	].*$,\1#\2'
+ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
+ac_dB='[	 ].*$,\1#\2'
 ac_dC=' '
 ac_dD=',;t'
 # ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
 ac_uB='$,\1#\2define\3'
 ac_uC=' '
 ac_uD=',;t'
@@ -4348,11 +4579,11 @@
   # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
   case $ac_file in
   - | *:- | *:-:* ) # input from stdin
-        cat >$tmp/stdin
-        ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	cat >$tmp/stdin
+	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-        ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
   * )   ac_file_in=$ac_file.in ;;
   esac
 
@@ -4366,28 +4597,29 @@
       case $f in
       -) echo $tmp/stdin ;;
       [\\/$]*)
-         # Absolute (can't be DOS-style, as IFS=:)
-         test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 # Absolute (can't be DOS-style, as IFS=:)
+	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         echo $f;;
+	 # Do quote $f, to prevent DOS paths from being IFS'd.
+	 echo "$f";;
       *) # Relative
-         if test -f "$f"; then
-           # Build tree
-           echo $f
-         elif test -f "$srcdir/$f"; then
-           # Source tree
-           echo $srcdir/$f
-         else
-           # /dev/null tree
-           { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+	 if test -f "$f"; then
+	   # Build tree
+	   echo "$f"
+	 elif test -f "$srcdir/$f"; then
+	   # Source tree
+	   echo "$srcdir/$f"
+	 else
+	   # /dev/null tree
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
 echo "$as_me: error: cannot find input file: $f" >&2;}
    { (exit 1); exit 1; }; }
-         fi;;
+	 fi;;
       esac
     done` || { (exit 1); exit 1; }
   # Remove the trailing spaces.
-  sed 's/[ 	]*$//' $ac_file_inputs >$tmp/in
+  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
 
 _ACEOF
 
@@ -4410,9 +4642,9 @@
 s,[\\$`],\\&,g
 t clear
 : clear
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	(][^ 	(]*\)\(([^)]*)\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
 t end
-s,^[ 	]*#[ 	]*define[ 	][ 	]*\([^ 	][^ 	]*\)[ 	]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
 : end
 _ACEOF
 # If some macros were called several times there might be several times
@@ -4426,13 +4658,13 @@
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
 cat >>conftest.undefs <<\_ACEOF
-s,^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
 _ACEOF
 
 # Break up conftest.defines because some shells have a limit on the size
 # of here documents, and old seds have small limits too (100 cmds).
 echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[ 	]*#[ 	]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
 echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
 echo '  :' >>$CONFIG_STATUS
 rm -f conftest.tail
@@ -4441,7 +4673,7 @@
   # Write a limited-size here document to $tmp/defines.sed.
   echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
   # Speed up: don't consider the non `#define' lines.
-  echo '/^[ 	]*#[ 	]*define/!b' >>$CONFIG_STATUS
+  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
   # Work around the forget-to-reset-the-flag bug.
   echo 't clr' >>$CONFIG_STATUS
   echo ': clr' >>$CONFIG_STATUS
@@ -4468,7 +4700,7 @@
   # Write a limited-size here document to $tmp/undefs.sed.
   echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
   # Speed up: don't consider the non `#undef'
-  echo '/^[ 	]*#[ 	]*undef/!b' >>$CONFIG_STATUS
+  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
   # Work around the forget-to-reset-the-flag bug.
   echo 't clr' >>$CONFIG_STATUS
   echo ': clr' >>$CONFIG_STATUS
@@ -4502,10 +4734,10 @@
     else
       ac_dir=`(dirname "$ac_file") 2>/dev/null ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_file" : 'X\(//\)[^/]' \| \
-         X"$ac_file" : 'X\(//\)$' \| \
-         X"$ac_file" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_file" : 'X\(//\)[^/]' \| \
+	 X"$ac_file" : 'X\(//\)$' \| \
+	 X"$ac_file" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -4521,10 +4753,10 @@
       as_dirs="$as_dir $as_dirs"
       as_dir=`(dirname "$as_dir") 2>/dev/null ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$as_dir" : 'X\(//\)[^/]' \| \
-         X"$as_dir" : 'X\(//\)$' \| \
-         X"$as_dir" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
@@ -4556,16 +4788,41 @@
   ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
   ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
 $as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-         X"$ac_dest" : 'X\(//\)[^/]' \| \
-         X"$ac_dest" : 'X\(//\)$' \| \
-         X"$ac_dest" : 'X\(/\)' \| \
-         .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_dest" : 'X\(//\)[^/]' \| \
+	 X"$ac_dest" : 'X\(//\)$' \| \
+	 X"$ac_dest" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
 echo X"$ac_dest" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
   	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
   	  /^X\(\/\/\)$/{ s//\1/; q; }
   	  /^X\(\/\).*/{ s//\1/; q; }
   	  s/.*/./; q'`
+  { if $as_mkdir_p; then
+    mkdir -p "$ac_dir"
+  else
+    as_dir="$ac_dir"
+    as_dirs=
+    while test ! -d "$as_dir"; do
+      as_dirs="$as_dir $as_dirs"
+      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| \
+	 .     : '\(.\)' 2>/dev/null ||
+echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+  	  /^X\(\/\/\)$/{ s//\1/; q; }
+  	  /^X\(\/\).*/{ s//\1/; q; }
+  	  s/.*/./; q'`
+    done
+    test ! -n "$as_dirs" || mkdir $as_dirs
+  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+   { (exit 1); exit 1; }; }; }
+
   ac_builddir=.
 
 if test "$ac_dir" != .; then
@@ -4591,24 +4848,64 @@
     ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
     ac_top_srcdir=$ac_top_builddir$srcdir ;;
 esac
-# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be
-# absolute.
-ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd`
-ac_abs_top_builddir=`cd "$ac_dir" && cd ${ac_top_builddir}. && pwd`
-ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd`
-ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd`
+
+# Do not use `cd foo && pwd` to compute absolute paths, because
+# the directories may not exist.
+case `pwd` in
+.) ac_abs_builddir="$ac_dir";;
+*)
+  case "$ac_dir" in
+  .) ac_abs_builddir=`pwd`;;
+  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_builddir=${ac_top_builddir}.;;
+*)
+  case ${ac_top_builddir}. in
+  .) ac_abs_top_builddir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_srcdir=$ac_srcdir;;
+*)
+  case $ac_srcdir in
+  .) ac_abs_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+  esac;;
+esac
+case $ac_abs_builddir in
+.) ac_abs_top_srcdir=$ac_top_srcdir;;
+*)
+  case $ac_top_srcdir in
+  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+  esac;;
+esac
 
 
   { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
 echo "$as_me: executing $ac_dest commands" >&6;}
   case $ac_dest in
-    Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/PoolAllocate/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/PoolAllocate/Makefile lib/PoolAllocate/Makefile ;;
-    runtime/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/Makefile runtime/Makefile ;;
-    runtime/PoolAllocator/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/PoolAllocator/Makefile runtime/PoolAllocator/Makefile ;;
-    runtime/FreeListAllocator/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/runtime/FreeListAllocator/Makefile runtime/FreeListAllocator/Makefile ;;
-    test/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
+    Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
+    lib/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
+    lib/PoolAllocate/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname lib/PoolAllocate/Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/lib/PoolAllocate/Makefile lib/PoolAllocate/Makefile ;;
+    runtime/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname runtime/Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/runtime/Makefile runtime/Makefile ;;
+    runtime/PoolAllocator/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname runtime/PoolAllocator/Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/runtime/PoolAllocator/Makefile runtime/PoolAllocator/Makefile ;;
+    runtime/FreeListAllocator/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname runtime/FreeListAllocator/Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/runtime/FreeListAllocator/Makefile runtime/FreeListAllocator/Makefile ;;
+    test/Makefile ) ${llvm_src}/autoconf/mkinstalldirs `dirname test/Makefile`
+   ${SHELL} ${llvm_src}/autoconf/install-sh -c ${srcdir}/test/Makefile test/Makefile ;;
   esac
 done
 _ACEOF
diff --git a/poolalloc/include/dsa/DSGraph.h b/poolalloc/include/dsa/DSGraph.h
index eb4388b..da4eac2 100644
--- a/poolalloc/include/dsa/DSGraph.h
+++ b/poolalloc/include/dsa/DSGraph.h
@@ -15,13 +15,18 @@
 #ifndef LLVM_ANALYSIS_DSGRAPH_H
 #define LLVM_ANALYSIS_DSGRAPH_H
 
-#include "llvm/Analysis/DataStructure/DSNode.h"
+#include "dsa/DSNode.h"
 #include "llvm/ADT/hash_map"
 #include "llvm/ADT/EquivalenceClasses.h"
-#include <list>
+#include "poolalloc/Config/config.h"
 
+#include <list>
+#include <map>
+#include <iostream>
 namespace llvm {
 
+  //typedef map<const DSNode *, Value*> PoolDescriptorMapType;
+
 class GlobalValue;
 
 //===----------------------------------------------------------------------===//
@@ -170,6 +175,62 @@
 };
 
 
+#ifdef LLVA_KERNEL
+class MetaPool;
+class MetaPoolHandle {
+  MetaPool *Rep;
+  Instruction * Creator;
+public:
+  MetaPoolHandle(MetaPool *mp, Instruction * Maker = 0);
+  
+  MetaPool *getMetaPool() {
+    return Rep;
+  }
+  void setMetaPool(MetaPool *v) {
+    Rep = v;
+  }
+  ~MetaPoolHandle() {
+    //do nothing for now
+  }
+  const std::string &getName();
+  Value *getMetaPoolValue();
+  void merge(MetaPoolHandle *other);
+};
+
+  class MetaPool {
+    Value *MPD;
+    hash_set<MetaPoolHandle *> HandleSet;
+    
+  public:
+    MetaPool(Value *mpd) : MPD(mpd) {
+    }
+    void addMetaPoolHandles(hash_set<MetaPoolHandle *> & mpHS) {
+      HandleSet.insert(mpHS.begin(), mpHS.end());
+    }
+    hash_set<MetaPoolHandle *>& getHandleSet() {
+      return HandleSet;
+    }
+    Value * getMetaPoolValue() {
+      return MPD;
+    }
+    void setMetaPoolValue(Value *V) {
+      MPD = V;
+    }
+    void insert(MetaPoolHandle *mph) {
+      HandleSet.insert(mph);
+    }
+    const std::string& getName() {
+      return MPD->getName();
+    }
+    ~MetaPool() {
+      HandleSet.clear();
+    }
+  };
+
+#endif
+  
+
+  
 //===----------------------------------------------------------------------===//
 /// DSGraph - The graph that represents a function.
 ///
@@ -219,13 +280,18 @@
   /// constructed for.
   const TargetData &TD;
 
+#ifdef LLVA_KERNEL
+  hash_map<const DSNode*, MetaPoolHandle*> PoolDescriptors;
+#endif  
+
+  
+
   void operator=(const DSGraph &); // DO NOT IMPLEMENT
   DSGraph(const DSGraph&);         // DO NOT IMPLEMENT
 public:
   // Create a new, empty, DSGraph.
   DSGraph(EquivalenceClasses<GlobalValue*> &ECs, const TargetData &td)
-    : GlobalsGraph(0), PrintAuxCalls(false), ScalarMap(ECs), TD(td) {}
-
+    : GlobalsGraph(0), PrintAuxCalls(false), ScalarMap(ECs), TD(td) { }
   // Compute the local DSGraph
   DSGraph(EquivalenceClasses<GlobalValue*> &ECs, const TargetData &TD,
           Function &F, DSGraph *GlobalsGraph);
@@ -238,13 +304,38 @@
   // source.  You need to set a new GlobalsGraph with the setGlobalsGraph
   // method.
   //
-  DSGraph(const DSGraph &DSG, EquivalenceClasses<GlobalValue*> &ECs,
+  DSGraph( DSGraph &DSG, EquivalenceClasses<GlobalValue*> &ECs,
           unsigned CloneFlags = 0);
   ~DSGraph();
 
   DSGraph *getGlobalsGraph() const { return GlobalsGraph; }
   void setGlobalsGraph(DSGraph *G) { GlobalsGraph = G; }
 
+#ifdef LLVA_KERNEL
+#if 1
+  hash_map<const DSNode *, MetaPoolHandle*>& getPoolDescriptorsMap() {
+    return PoolDescriptors;
+  }
+  MetaPoolHandle *getPoolForNode(const DSNode *N) {
+    if (PoolDescriptors.count(N) > 0) {
+      return PoolDescriptors[N];
+    }
+    return 0;
+  }
+#else
+  hash_map<const DSNodeHandle *, MetaPoolHandle*>& getPoolDescriptorsMap() {
+    return PoolDescriptors;
+  }
+  MetaPoolHandle *getPoolForNode(const DSNodeHandle *N) {
+    if (PoolDescriptors.count(N) > 0) {
+      return PoolDescriptors[N];
+    }
+    return 0;
+  }
+#endif
+
+#endif  
+
   /// getGlobalECs - Return the set of equivalence classes that the global
   /// variables in the program form.
   EquivalenceClasses<GlobalValue*> &getGlobalECs() const {
@@ -469,7 +560,7 @@
   ///
   /// The CloneFlags member controls various aspects of the cloning process.
   ///
-  void cloneInto(const DSGraph &G, unsigned CloneFlags = 0);
+  void cloneInto(DSGraph &G, unsigned CloneFlags = 0);
 
   /// getFunctionArgumentsForCall - Given a function that is currently in this
   /// graph, return the DSNodeHandles that correspond to the pointer-compatible
diff --git a/poolalloc/include/dsa/DSGraphTraits.h b/poolalloc/include/dsa/DSGraphTraits.h
index 789cf97..9278dd3 100644
--- a/poolalloc/include/dsa/DSGraphTraits.h
+++ b/poolalloc/include/dsa/DSGraphTraits.h
@@ -16,7 +16,7 @@
 #ifndef LLVM_ANALYSIS_DSGRAPHTRAITS_H
 #define LLVM_ANALYSIS_DSGRAPHTRAITS_H
 
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DSGraph.h"
 #include "llvm/ADT/GraphTraits.h"
 #include "llvm/ADT/iterator"
 #include "llvm/ADT/STLExtras.h"
diff --git a/poolalloc/include/dsa/DSNode.h b/poolalloc/include/dsa/DSNode.h
index 45937a4..a4b87e2 100644
--- a/poolalloc/include/dsa/DSNode.h
+++ b/poolalloc/include/dsa/DSNode.h
@@ -14,7 +14,7 @@
 #ifndef LLVM_ANALYSIS_DSNODE_H
 #define LLVM_ANALYSIS_DSNODE_H
 
-#include "llvm/Analysis/DataStructure/DSSupport.h"
+#include "dsa/DSSupport.h"
 #include "llvm/ADT/hash_map"
 
 namespace llvm {
@@ -91,8 +91,9 @@
     Read        = 1 << 6,   // This node is read in this context
 
     Array       = 1 << 7,   // This node is treated like an array
+    External    = 1 << 8,   // This node comes from an external source
     //#ifndef NDEBUG
-    DEAD        = 1 << 8,   // This node is dead and should not be pointed to
+    DEAD        = 1 << 9,   // This node is dead and should not be pointed to
     //#endif
 
     Composition = AllocaNode | HeapNode | GlobalNode | UnknownNode
@@ -118,10 +119,14 @@
   ///
   DSNode(const DSNode &, DSGraph *G, bool NullLinks = false);
 
+#if 0
   ~DSNode() {
     dropAllReferences();
     assert(hasNoReferrers() && "Referrers to dead node exist!");
   }
+#else
+  ~DSNode();
+#endif
 
   // Iterator for graph interface... Defined in DSGraphTraits.h
   typedef DSNodeIterator<DSNode> iterator;
@@ -340,12 +345,14 @@
   bool isIncomplete() const { return NodeType & Incomplete; }
   bool isComplete() const   { return !isIncomplete(); }
   bool isDeadNode() const   { return NodeType & DEAD; }
+  bool isExternalNode() const { return NodeType & External; }
 
   DSNode *setAllocaNodeMarker()  { NodeType |= AllocaNode;  return this; }
   DSNode *setHeapNodeMarker()    { NodeType |= HeapNode;    return this; }
   DSNode *setGlobalNodeMarker()  { NodeType |= GlobalNode;  return this; }
   DSNode *setUnknownNodeMarker() { NodeType |= UnknownNode; return this; }
 
+  DSNode *setExternalMarker() { NodeType |= External; return this; }
   DSNode *setIncompleteMarker() { NodeType |= Incomplete; return this; }
   DSNode *setModifiedMarker()   { NodeType |= Modified;   return this; }
   DSNode *setReadMarker()       { NodeType |= Read;       return this; }
diff --git a/poolalloc/include/dsa/DataStructure.h b/poolalloc/include/dsa/DataStructure.h
index dccb62e..ff2851f 100644
--- a/poolalloc/include/dsa/DataStructure.h
+++ b/poolalloc/include/dsa/DataStructure.h
@@ -20,6 +20,7 @@
 #include "llvm/ADT/hash_map"
 #include "llvm/ADT/hash_set"
 #include "llvm/ADT/EquivalenceClasses.h"
+#include "poolalloc/Config/config.h"
 
 namespace llvm {
 
@@ -30,11 +31,11 @@
 class DSCallSite;
 class DSNode;
 class DSNodeHandle;
+typedef std::map<const DSNode *, Value*> PoolDescriptorMapType;
 
 FunctionPass *createDataStructureStatsPass();
 FunctionPass *createDataStructureGraphCheckerPass();
 
-
 // FIXME: move this stuff to a private header
 namespace DataStructureAnalysis {
   /// isPointerType - Return true if this first class type is big enough to hold
@@ -43,7 +44,6 @@
   bool isPointerType(const Type *Ty);
 }
 
-
 // LocalDataStructures - The analysis that computes the local data structure
 // graphs for all of the functions in the program.
 //
@@ -55,6 +55,10 @@
   hash_map<Function*, DSGraph*> DSInfo;
   DSGraph *GlobalsGraph;
 
+#ifdef LLVA_KERNEL
+  Function *AddPoolDescToMetaPool;
+#endif  
+
   /// GlobalECs - The equivalence classes for each global value that is merged
   /// with other global values in the DSGraphs.
   EquivalenceClasses<GlobalValue*> GlobalECs;
diff --git a/poolalloc/include/poolalloc/Config/config.h.in b/poolalloc/include/poolalloc/Config/config.h.in
index 123cb75..3ef6780 100644
--- a/poolalloc/include/poolalloc/Config/config.h.in
+++ b/poolalloc/include/poolalloc/Config/config.h.in
@@ -463,3 +463,13 @@
 
 /* Define to `unsigned' if <sys/types.h> does not define. */
 #undef size_t
+
+/* Define to 1 if enabling SAFECode */
+#undef SAFECODE
+
+/* Define to 1 if enabling SAFECode bounds checking */
+#undef BOUNDS_CHECK
+
+/* Define to 1 if compiling for pool inference */
+#undef LLVA_KERNEL
+
diff --git a/poolalloc/include/poolalloc/PoolAllocate.h b/poolalloc/include/poolalloc/PoolAllocate.h
index 2c3a990..496cdf2 100644
--- a/poolalloc/include/poolalloc/PoolAllocate.h
+++ b/poolalloc/include/poolalloc/PoolAllocate.h
@@ -16,15 +16,14 @@
 
 #ifndef POOLALLOCATE_H
 #define POOLALLOCATE_H
-//#define SAFECODE 1
-//#define BOUNDS_CHECK 1
-//comment the above two for normal poolallocation
+
 #include "llvm/Pass.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Support/CallSite.h"
 #include "llvm/ADT/EquivalenceClasses.h"
 #include "llvm/ADT/VectorExtras.h"
 #include "llvm/ADT/hash_set"
+#include "poolalloc/Config/config.h"
 
 #ifdef SAFECODE
 //FIXME : make this use some configuration options
diff --git a/poolalloc/lib/DSA/BottomUpClosure.cpp b/poolalloc/lib/DSA/BottomUpClosure.cpp
index 0f48850..7241e41 100644
--- a/poolalloc/lib/DSA/BottomUpClosure.cpp
+++ b/poolalloc/lib/DSA/BottomUpClosure.cpp
@@ -14,8 +14,8 @@
 //
 //===----------------------------------------------------------------------===//
 #define DEBUG_TYPE "bu_dsa"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Module.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/ADT/Statistic.h"
@@ -138,8 +138,8 @@
         DSNode *N = new DSNode(F->getType()->getElementType(), GI);   // Create the node
         N->addGlobal(F);
         NHF.setTo(N,0);
-        DOUT << "Adding " << F->getName() << " to a call node in "
-             << D.getCaller().getName() << "\n";
+        DEBUG(std::cerr << "Adding " << F->getName() << " to a call node in "
+             << D.getCaller().getName() << "\n");
       }
       DL.getCalleeNode()->mergeWith(NHF, 0);
     }
@@ -171,8 +171,8 @@
   for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
     if (!I->isExternal() && !DSInfo.count(I)) {
       if (MainFunc)
-        DOUT << "*** BU: Function unreachable from main: "
-             << I->getName() << "\n";
+        DEBUG(std::cerr << "*** BU: Function unreachable from main: "
+              << I->getName() << "\n");
       calculateGraphs(I, Stack, NextID, ValMap);     // Calculate all graphs.
     }
 
@@ -203,7 +203,7 @@
   BuildGlobalECs(*GlobalsGraph, ECGlobals);
   if (!ECGlobals.empty()) {
     NamedRegionTimer X("Bottom-UP EC Cleanup");
-    DOUT << "Eliminating " << ECGlobals.size() << " EC Globals!\n";
+    DEBUG(std::cerr << "Eliminating " << ECGlobals.size() << " EC Globals!\n");
     for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
            E = DSInfo.end(); I != E; ++I)
       EliminateUsesOfECGlobals(*I->second, ECGlobals);
@@ -235,12 +235,12 @@
           ee = MainGraph.afc_end(); ii != ee; ++ii) {
       std::vector<Function*> Funcs;
       GetAllCalleesN(*ii, Funcs);
-      DOUT << "Lost site\n";
+      DEBUG(std::cerr << "Lost site\n");
       DEBUG(ii->getCallSite().getInstruction()->dump());
       for (std::vector<Function*>::iterator iif = Funcs.begin(), eef = Funcs.end();
            iif != eef; ++iif) {
         AddGlobalToNode(this, *ii, *iif);
-        DOUT << "Adding\n";
+        DEBUG(std::cerr << "Adding\n");
         ActualCallees.insert(std::make_pair(ii->getCallSite().getInstruction(), *iif));
       }
     }
@@ -383,15 +383,15 @@
 
   // If this is a new SCC, process it now.
   if (Stack.back() == F) {           // Special case the single "SCC" case here.
-    DOUT << "Visiting single node SCC #: " << MyID << " fn: "
-         << F->getName() << "\n";
+    DEBUG(std::cerr << "Visiting single node SCC #: " << MyID << " fn: "
+                    << F->getName() << "\n");
     Stack.pop_back();
     DSGraph &G = getDSGraph(*F);
-    DOUT << "  [BU] Calculating graph for: " << F->getName()<< "\n";
+    DEBUG(std::cerr << "  [BU] Calculating graph for: " << F->getName()<< "\n");
     calculateGraph(G);
-    DOUT << "  [BU] Done inlining: " << F->getName() << " ["
-         << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
-         << "]\n";
+    DEBUG(std::cerr << "  [BU] Done inlining: " << F->getName() << " ["
+                    << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
+                    << "]\n");
 
     if (MaxSCC < 1) MaxSCC = 1;
 
@@ -399,7 +399,7 @@
     // callees.
     GetAllAuxCallees(Graph, CalleeFunctions);
     if (!CalleeFunctions.empty()) {
-      DOUT << "Recalculating " << F->getName() << " due to new knowledge\n";
+      DEBUG(std::cerr << "Recalculating " << F->getName() << " due to new knowledge\n");
       ValMap.erase(F);
       return calculateGraphs(F, Stack, NextID, ValMap);
     } else {
@@ -440,8 +440,8 @@
     }
     Stack.pop_back();
 
-    DOUT << "Calculating graph for SCC #: " << MyID << " of size: "
-         << SCCSize << "\n";
+    DEBUG(std::cerr << "Calculating graph for SCC #: " << MyID << " of size: "
+                    << SCCSize << "\n");
 
     // Compute the Max SCC Size.
     if (MaxSCC < SCCSize)
@@ -453,9 +453,10 @@
     // Now that we have one big happy family, resolve all of the call sites in
     // the graph...
     calculateGraph(SCCGraph);
-    DOUT << "  [BU] Done inlining SCC  [" << SCCGraph.getGraphSize()
-         << "+" << SCCGraph.getAuxFunctionCalls().size() << "]\n"
-         << "DONE with SCC #: " << MyID << "\n";
+    DEBUG(std::cerr << "  [BU] Done inlining SCC  [" << SCCGraph.getGraphSize()
+                    << "+" << SCCGraph.getAuxFunctionCalls().size() << "]\n");
+
+    DEBUG(std::cerr << "DONE with SCC #: " << MyID << "\n");
 
     // We never have to revisit "SCC" processed functions...
     return MyID;
@@ -578,21 +579,22 @@
 
         // Get the data structure graph for the called function.
         GI = &getDSGraph(*Callee);  // Graph to inline
-        DOUT << "    Inlining graph for " << Callee->getName()
-             << "[" << GI->getGraphSize() << "+"
-             << GI->getAuxFunctionCalls().size() << "] into '"
-             << Graph.getFunctionNames() << "' [" << Graph.getGraphSize() <<"+"
-             << Graph.getAuxFunctionCalls().size() << "]\n";
+        DEBUG(std::cerr << "    Inlining graph for " << Callee->getName());
+
+        DEBUG(std::cerr << "[" << GI->getGraphSize() << "+"
+              << GI->getAuxFunctionCalls().size() << "] into '"
+              << Graph.getFunctionNames() << "' [" << Graph.getGraphSize() <<"+"
+              << Graph.getAuxFunctionCalls().size() << "]\n");
         Graph.mergeInGraph(CS, *Callee, *GI,
                            DSGraph::StripAllocaBit|DSGraph::DontCloneCallNodes);
         ++NumBUInlines;
       } else {
         if (!Printed)
-          std::cerr << "In Fns: " << Graph.getFunctionNames() << "\n";
-        std::cerr << "  calls " << CalledFuncs.size()
+          DEBUG(std::cerr << "In Fns: " << Graph.getFunctionNames() << "\n");
+          DEBUG(std::cerr << "  calls " << CalledFuncs.size()
                   << " fns from site: " << CS.getCallSite().getInstruction()
-                  << "  " << *CS.getCallSite().getInstruction();
-        std::cerr << "   Fns =";
+                  << "  " << *CS.getCallSite().getInstruction());
+        DEBUG(std::cerr << "   Fns =");
         unsigned NumPrinted = 0;
 
         for (std::vector<Function*>::iterator I = CalledFuncs.begin(),
@@ -651,11 +653,11 @@
         GI = IndCallGraph.first;
 
         // Merge the unified graph into this graph now.
-        DOUT << "    Inlining multi callee graph "
-             << "[" << GI->getGraphSize() << "+"
-             << GI->getAuxFunctionCalls().size() << "] into '"
-             << Graph.getFunctionNames() << "' [" << Graph.getGraphSize() <<"+"
-             << Graph.getAuxFunctionCalls().size() << "]\n";
+        DEBUG(std::cerr << "    Inlining multi callee graph "
+              << "[" << GI->getGraphSize() << "+"
+              << GI->getAuxFunctionCalls().size() << "] into '"
+              << Graph.getFunctionNames() << "' [" << Graph.getGraphSize() <<"+"
+              << Graph.getAuxFunctionCalls().size() << "]\n");
 
         Graph.mergeInGraph(CS, IndCallGraph.second, *GI,
                            DSGraph::StripAllocaBit |
diff --git a/poolalloc/lib/DSA/CallTargets.cpp b/poolalloc/lib/DSA/CallTargets.cpp
index 8b33cb0..cdd3c34 100644
--- a/poolalloc/lib/DSA/CallTargets.cpp
+++ b/poolalloc/lib/DSA/CallTargets.cpp
@@ -19,9 +19,9 @@
 
 #include "llvm/Module.h"
 #include "llvm/Instructions.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Analysis/DataStructure/CallTargets.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
+#include "dsa/CallTargets.h"
 #include "llvm/ADT/Statistic.h"
 #include <iostream>
 #include "llvm/Constants.h"
diff --git a/poolalloc/lib/DSA/CompleteBottomUp.cpp b/poolalloc/lib/DSA/CompleteBottomUp.cpp
index aea113d..e3e40c2 100644
--- a/poolalloc/lib/DSA/CompleteBottomUp.cpp
+++ b/poolalloc/lib/DSA/CompleteBottomUp.cpp
@@ -14,13 +14,14 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "cbudatastructure"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
+#include "dsa/DataStructure.h"
 #include "llvm/Module.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/ADT/SCCIterator.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/ADT/STLExtras.h"
+#include <iostream>
 using namespace llvm;
 
 namespace {
@@ -51,14 +52,14 @@
     if (!MainFunc->isExternal())
       calculateSCCGraphs(getOrCreateGraph(*MainFunc), Stack, NextID, ValMap);
   } else {
-    DOUT << "CBU-DSA: No 'main' function found!\n";
+    DEBUG(std::cerr << "CBU-DSA: No 'main' function found!\n");
   }
 
   for (Module::iterator I = M.begin(), E = M.end(); I != E; ++I)
     if (!I->isExternal() && !DSInfo.count(I)) {
       if (MainFunc) {
-        DOUT << "*** CBU: Function unreachable from main: "
-             << I->getName() << "\n";
+        DEBUG(std::cerr << "*** CBU: Function unreachable from main: "
+              << I->getName() << "\n");
       }
       calculateSCCGraphs(getOrCreateGraph(*I), Stack, NextID, ValMap);
     }
@@ -217,14 +218,14 @@
         G.mergeInGraph(CS, *CalleeFunc, GI,
                        DSGraph::StripAllocaBit | DSGraph::DontCloneCallNodes |
                        DSGraph::DontCloneAuxCallNodes);
-        DOUT << "    Inlining graph [" << i << "/"
-             << G.getFunctionCalls().size()-1
-             << ":" << TNum << "/" << Num-1 << "] for "
-             << CalleeFunc->getName() << "["
-             << GI.getGraphSize() << "+" << GI.getAuxFunctionCalls().size()
-             << "] into '" /*<< G.getFunctionNames()*/ << "' ["
-             << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
-             << "]\n";
+        DEBUG(std::cerr << "    Inlining graph [" << i << "/"
+              << G.getFunctionCalls().size()-1
+              << ":" << TNum << "/" << Num-1 << "] for "
+              << CalleeFunc->getName() << "["
+              << GI.getGraphSize() << "+" << GI.getAuxFunctionCalls().size()
+              << "] into '" /*<< G.getFunctionNames()*/ << "' ["
+              << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
+              << "]\n");
       }
     }
   }
diff --git a/poolalloc/lib/DSA/DataStructure.cpp b/poolalloc/lib/DSA/DataStructure.cpp
index 505fe91..103426f 100644
--- a/poolalloc/lib/DSA/DataStructure.cpp
+++ b/poolalloc/lib/DSA/DataStructure.cpp
@@ -1,3 +1,4 @@
+#define JTC 0
 //===- DataStructure.cpp - Implement the core data structure analysis -----===//
 //
 //                     The LLVM Compiler Infrastructure
@@ -11,7 +12,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DSGraphTraits.h"
+#include "dsa/DSGraphTraits.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Constants.h"
 #include "llvm/Function.h"
 #include "llvm/GlobalVariable.h"
@@ -26,12 +29,13 @@
 #include "llvm/ADT/SCCIterator.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/Support/Timer.h"
+#include "llvm/ADT/hash_map"
+#include "poolalloc/Config/config.h"
 #include <iostream>
 #include <algorithm>
 using namespace llvm;
 
 #define COLLAPSE_ARRAYS_AGGRESSIVELY 0
-
 namespace {
   Statistic<> NumFolds          ("dsa", "Number of nodes completely folded");
   Statistic<> NumCallNodesMerged("dsa", "Number of call nodes merged");
@@ -39,6 +43,9 @@
   Statistic<> NumDNE            ("dsa", "Number of nodes removed by reachability");
   Statistic<> NumTrivialDNE     ("dsa", "Number of nodes trivially removed");
   Statistic<> NumTrivialGlobalDNE("dsa", "Number of globals trivially removed");
+#ifdef LLVA_KERNEL
+  Statistic<> LostPools         ("dsa", "Number of pools lost to DSNode Merge");
+#endif
   static cl::opt<unsigned>
   DSAFieldLimit("dsa-field-limit", cl::Hidden,
                 cl::desc("Number of fields to track before collapsing a node"),
@@ -62,17 +69,7 @@
 
 DSNode *DSNodeHandle::HandleForwarding() const {
   assert(N->isForwarding() && "Can only be invoked if forwarding!");
-  DEBUG(
-        { //assert not looping
-          DSNode* NH = N;
-          std::set<DSNode*> seen;
-          while(NH && NH->isForwarding()) {
-            assert(seen.find(NH) == seen.end() && "Loop detected");
-            seen.insert(NH);
-            NH = NH->ForwardNH.N;
-          }
-        }
-        );
+
   // Handle node forwarding here!
   DSNode *Next = N->ForwardNH.getNode();  // Cause recursive shrinkage
   Offset += N->ForwardNH.getOffset();
@@ -129,6 +126,9 @@
   if (T) mergeTypeInfo(T, 0);
   if (G) G->addNode(this);
   ++NumNodeAllocated;
+#if JTC
+std::cerr << "LLVA: Creating (1) DSNode " << this << "\n";
+#endif
 }
 
 // DSNode copy constructor... do not copy over the referrers list!
@@ -141,6 +141,27 @@
     Links.resize(N.Links.size()); // Create the appropriate number of null links
   G->addNode(this);
   ++NumNodeAllocated;
+#if JTC
+std::cerr << "LLVA: Creating (2) DSNode " << this << "\n";
+#endif
+}
+
+DSNode::~DSNode() {
+  dropAllReferences();
+  assert(hasNoReferrers() && "Referrers to dead node exist!");
+
+#ifdef LLVA_KERNEL
+  //
+  // Remove all references to this node from the Pool Descriptor Map.
+  //
+#if JTC
+  std::cerr << "LLVA: Removing " << this << "\n";
+#endif
+  if (ParentGraph) {
+    hash_map<const DSNode *, MetaPoolHandle*> &pdm=ParentGraph->getPoolDescriptorsMap();
+    pdm.erase (this);
+  }
+#endif
 }
 
 /// getTargetData - Get the target data object used to construct this node.
@@ -236,10 +257,26 @@
     DestNode->Ty = Type::VoidTy;
     DestNode->Size = 1;
     DestNode->Globals.swap(Globals);
+    
+#if JTC
+    std::cerr << "LLVA: foldNode: " << this << " becomes " << DestNode << "\n";
+#endif
+#ifdef LLVA_KERNEL
+    //Again we have created a new DSNode, we need to fill in the
+    // pool desc map appropriately
+    assert(ParentGraph && "parent graph is not null \n"); 
+    hash_map<const DSNode *, MetaPoolHandle*> &pdm = ParentGraph->getPoolDescriptorsMap();
+    if (pdm.count(this) > 0) {
+      pdm[DestNode] = pdm[this];
+    } else {
+      //do nothing 
+    }
+#endif    
 
     // Start forwarding to the destination node...
     forwardNode(DestNode, 0);
 
+
     if (!Links.empty()) {
       DestNode->Links.reserve(1);
 
@@ -431,7 +468,6 @@
 ///
 bool DSNode::mergeTypeInfo(const Type *NewTy, unsigned Offset,
                            bool FoldIfIncompatible) {
-  DOUT << "merging " << *NewTy << " at " << Offset << " with " << *Ty << "\n";
   const TargetData &TD = getTargetData();
   // Check to make sure the Size member is up-to-date.  Size can be one of the
   // following:
@@ -520,10 +556,9 @@
       //handle some common cases:
       // Ty:    struct { t1, t2, t3, t4, ..., tn}
       // NewTy: struct { offset, stuff...}
-      // try merge with NewTy: struct {t1, t2, stuff...} if offset lands exactly
-      // on a field in Ty
+      // try merge with NewTy: struct {t1, t2, stuff...} if offset lands exactly on a field in Ty
       if (isa<StructType>(NewTy) && isa<StructType>(Ty)) {
-        DOUT << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n";
+        DEBUG(std::cerr << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n");
         const StructType *STy = cast<StructType>(Ty);
         const StructLayout &SL = *TD.getStructLayout(STy);
         unsigned i = SL.getElementContainingOffset(Offset);
@@ -539,16 +574,15 @@
         nt.insert(nt.end(), STy->element_begin(), STy->element_end());
         //and merge
         STy = StructType::get(nt);
-        DOUT << "Trying with: " << *STy << "\n";
+        DEBUG(std::cerr << "Trying with: " << *STy << "\n");
         return mergeTypeInfo(STy, 0);
       }
 
       //Ty: struct { t1, t2, t3 ... tn}
       //NewTy T offset x
-      //try merge with NewTy: struct : {t1, t2, T} if offset lands on a field
-      //in Ty
+      //try merge with NewTy: struct : {t1, t2, T} if offset lands on a field in Ty
       if (isa<StructType>(Ty)) {
-        DOUT << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n";
+        DEBUG(std::cerr << "Ty: " << *Ty << "\nNewTy: " << *NewTy << "@" << Offset << "\n");
         const StructType *STy = cast<StructType>(Ty);
         const StructLayout &SL = *TD.getStructLayout(STy);
         unsigned i = SL.getElementContainingOffset(Offset);
@@ -563,13 +597,12 @@
         nt.push_back(NewTy);
         //and merge
         STy = StructType::get(nt);
-        DOUT << "Trying with: " << *STy << "\n";
+        DEBUG(std::cerr << "Trying with: " << *STy << "\n");
         return mergeTypeInfo(STy, 0);
       }
 
-      assert(0 &&
-             "UNIMP: Trying to merge a growth type into "
-             "offset != 0: Collapsing!");
+      std::cerr << "UNIMP: Trying to merge a growth type into "
+                << "offset != 0: Collapsing!\n";
       abort();
       if (FoldIfIncompatible) foldNodeCompletely();
       return true;
@@ -719,11 +752,10 @@
   Module *M = 0;
   if (getParentGraph()->retnodes_begin() != getParentGraph()->retnodes_end())
     M = getParentGraph()->retnodes_begin()->first->getParent();
-
-  DOUT << "MergeTypeInfo Folding OrigTy: ";
-  DEBUG(WriteTypeSymbolic(std::cerr, Ty, M) << "\n due to:";
+  DEBUG(std::cerr << "MergeTypeInfo Folding OrigTy: ";
+        WriteTypeSymbolic(std::cerr, Ty, M) << "\n due to:";
         WriteTypeSymbolic(std::cerr, NewTy, M) << " @ " << Offset << "!\n"
-                                               << "SubType: ";
+                  << "SubType: ";
         WriteTypeSymbolic(std::cerr, SubType, M) << "\n\n");
 
   if (FoldIfIncompatible) foldNodeCompletely();
@@ -834,7 +866,62 @@
     }
 #endif
   }
-
+#ifdef LLVA_KERNEL
+  DSNode *currNode  = CurNodeH.getNode();
+  DSNode *NNode  = NH.getNode();
+  DSGraph *pGraph =  currNode->getParentGraph();
+  assert((pGraph == NNode->getParentGraph()) && "LLVA_KERNEL : merging nodes in two different graphs?");
+  //get the pooldescriptor map
+  hash_map<const DSNode *, MetaPoolHandle*> &pdm = pGraph->getPoolDescriptorsMap();
+  if (pdm.count(currNode) == 0) {
+    if (pdm.count(NNode) == 0) {
+      //do nothing  (common case)
+    } else {
+      if (pdm[NNode]) {
+#if JTC
+	std::cerr << "LLVA: 1: currNode (" << currNode << ") becomes " << pdm[NNode]->getName() << "(" << NNode << ")\n";
+#endif
+	pdm[currNode] = pdm[NNode];
+      }
+    }
+  } else {
+    if (pdm.count(NNode) == 0) {
+#if 1
+      //
+      // FIXME:
+      //  Verify that this is correct.  I believe it is; it seems to make sense
+      //  since either node can be used after the merge.
+      //
+#if JTC
+std::cerr << "LLVA: MergeNodes: currnode has something, newnode has nothing\n";
+	std::cerr << "LLVA: 2: currNode (" << currNode << ") becomes <no name>" << "(" << NNode << ")\n";
+#endif
+      pdm[NNode] = pdm[currNode];
+#endif
+      //do nothing 
+    } else {
+      if (pdm[currNode] != pdm[NNode]) {
+	//The following is commented because pdm[..] could be null!
+	//std::cerr << "LLVA: OldPool: " << pdm[currNode]->getName() << "("
+        //                       << pdm[currNode] << ") "
+	//          << " NewPool: "      << pdm[NNode]->getName() << "("
+	//                               << pdm[NNode] << ")" << std::endl;
+        pdm[NNode]->merge(pdm[currNode]);
+        /*
+        Value *currN = pdm[currNode]->getMetaPoolValue();
+        Value *NN = pdm[NNode]->getMetaPoolValue();
+        if (currN != NN) {
+          std::cerr << "LLVA: Two Pools for one DSNode\n";
+          currN->replaceAllUsesWith(NN);
+          pdm[currNode]->merge(pdm[NNode]);
+        } else {
+          //The nodes are same
+        }
+        */
+      }
+    }
+  }
+#endif  
   // Merge the type entries of the two nodes together...
   if (NH.getNode()->Ty != Type::VoidTy)
     CurNodeH.getNode()->mergeTypeInfo(NH.getNode()->Ty, NOffset);
@@ -913,6 +1000,9 @@
 /// point to this node).
 ///
 void DSNode::mergeWith(const DSNodeHandle &NH, unsigned Offset) {
+#if JTC
+std::cerr << "LLVA: mergeWith: " << this << " becomes " << NH.getNode() << "\n";
+#endif
   DSNode *N = NH.getNode();
   if (N == this && NH.getOffset() == Offset)
     return;  // Noop
@@ -929,7 +1019,8 @@
   if (N == this) {
     // We cannot merge two pieces of the same node together, collapse the node
     // completely.
-    DOUT << "Attempting to merge two chunks of the same node together!\n";
+    DEBUG(std::cerr << "Attempting to merge two chunks of"
+                    << " the same node together!\n");
     foldNodeCompletely();
     return;
   }
@@ -992,6 +1083,21 @@
   DSNode *DN = new DSNode(*SN, &Dest, true /* Null out all links */);
   DN->maskNodeTypes(BitsToKeep);
   NH = DN;
+#if JTC
+std::cerr << "LLVA: getClonedNH: " << SN << " becomes " << DN << "\n";
+#endif
+#if 1
+#ifdef LLVA_KERNEL
+    //Again we have created a new DSNode, we need to fill in the
+    // pool desc map appropriately
+    hash_map<const DSNode *, MetaPoolHandle*> &pdm = Dest.getPoolDescriptorsMap();
+    if (pdm.count(SN) > 0) {
+      pdm[DN] = pdm[SN];
+    } else {
+      //do nothing 
+    }
+#endif    
+#endif
 
   // Next, recursively clone all outgoing links as necessary.  Note that
   // adding these links can cause the node to collapse itself at any time, and
@@ -1150,7 +1256,58 @@
     }
   }
 
+#if JTC
+std::cerr << "LLVA: mergeWith: " << SN << " becomes " << DN << "\n";
+#endif
 
+#ifdef LLVA_KERNEL
+  //Here some merge is going on just like in DSNode::merge
+  //I think because of the inplace merging we don't update the pool desc maps
+  //This is modification from DSNode::MergeNodes
+  //Here DN and SN may belong to different graphs
+ DN = NH.getNode(); 
+#if 0
+  DSGraph *destGraph =  DN->getParentGraph();
+  DSGraph *srcGraph =  SN->getParentGraph();
+#else
+  DSGraph *destGraph = NH.getNode()->getParentGraph();
+  DSGraph *srcGraph =  SN->getParentGraph();
+#endif
+  if (destGraph && srcGraph) {
+    //get the pooldescriptor map
+    hash_map<const DSNode *, MetaPoolHandle*> &destpdm = destGraph->getPoolDescriptorsMap();
+    hash_map<const DSNode *, MetaPoolHandle*> &srcpdm = srcGraph->getPoolDescriptorsMap();
+    if (destpdm.count(DN) == 0) {
+      if (srcpdm.count(SN) == 0) {
+        //do nothing  (common case)
+      } else {
+        if (srcpdm[SN]) {
+#if JTC
+          std::cerr << "LLVA: DN becomes " << srcpdm[SN]->getName() << std::endl;
+#endif
+          destpdm[DN] = srcpdm[SN];
+        }
+      }
+    } else {
+      if (srcpdm.count(SN) == 0) {
+        srcpdm[SN] = destpdm[DN];
+      } else {
+        if (destpdm[DN] != srcpdm[SN]) {
+          srcpdm[SN]->merge(destpdm[DN]);
+          /*
+          Value *dnv = destpdm[DN]->getMetaPoolValue();
+          Value *snv = srcpdm[SN]->getMetaPoolValue();
+          if (dnv != snv) {
+            DEBUG(std::cerr << "LLVA: Two Pools for one DSNode\n");
+            dnv->replaceAllUsesWith(snv);
+            destpdm[DN]->setMetaPoolValue(snv);
+          }
+          */
+        }
+      }
+    }
+  }
+#endif  
   // Next, recursively merge all outgoing links as necessary.  Note that
   // adding these links can cause the destination node to collapse itself at
   // any time, and the current node may be merged with arbitrary other nodes.
@@ -1219,6 +1376,53 @@
   NH = RC.getClonedNH(Src);
 }
 
+#ifdef LLVA_KERNEL
+// MetaPoolHandle Implementation
+  //The following should go in a cpp file later
+   MetaPoolHandle::MetaPoolHandle(MetaPool *mp, Instruction * Maker) {
+    Rep = mp;
+    Rep->insert(this);
+    Creator = Maker;
+  }
+  const std::string& MetaPoolHandle::getName() {
+    assert(Rep != 0 && "Null meta pool ??\n");
+    return Rep->getName();
+  }
+  Value *MetaPoolHandle::getMetaPoolValue() {
+    assert(Rep != 0 && "Null meta pool ??\n");
+    return Rep->getMetaPoolValue();
+  }
+  void MetaPoolHandle::merge(MetaPoolHandle *other) {
+    //after this operation other points to what this points to .
+    //first replace all uses 
+     Value *dest = getMetaPoolValue();
+     Value *curr = other->getMetaPoolValue();
+     if (dest != curr) {
+       std::cerr << "LLVA: Merging metapools: " << this->Creator->getParent()->getParent()->getName() << " : " << other->Creator->getParent()->getParent()->getName() << "\n"
+                 << "LLVA:   " << *(this->Creator) << "\n"
+                 << "LLVA:   " << *(other->Creator) << "\n";
+       curr->replaceAllUsesWith(dest);
+     }
+   
+     //merge the hash sets in to other
+     hash_set<MetaPoolHandle *> &otherHandleSet = other->getMetaPool()->getHandleSet();
+     hash_set<MetaPoolHandle *>::iterator ohsI = otherHandleSet.begin(), ohsE = otherHandleSet.end();
+     for (; ohsI != ohsE; ++ohsI) {
+     MetaPoolHandle *omph = *ohsI;
+     //now make sure that this omph points to what we point to
+     omph->setMetaPool(Rep);
+     Rep->insert(omph);
+     }
+
+     //now delete others MetaPool
+     //gd     delete other->getMetaPool(); 
+
+     //Assign our metapool to other 
+     other->setMetaPool(Rep);
+}
+
+#endif
+
 //===----------------------------------------------------------------------===//
 // DSGraph Implementation
 //===----------------------------------------------------------------------===//
@@ -1240,7 +1444,7 @@
 }
 
 
-DSGraph::DSGraph(const DSGraph &G, EquivalenceClasses<GlobalValue*> &ECs,
+DSGraph::DSGraph(DSGraph &G, EquivalenceClasses<GlobalValue*> &ECs,
                  unsigned CloneFlags)
   : GlobalsGraph(0), ScalarMap(ECs), TD(G.TD) {
   PrintAuxCalls = false;
@@ -1252,7 +1456,9 @@
   AuxFunctionCalls.clear();
   ScalarMap.clear();
   ReturnNodes.clear();
-
+#ifdef LLVA_KERNEL
+  PoolDescriptors.clear();
+#endif  
   // Drop all intra-node references, so that assertions don't fail...
   for (node_iterator NI = node_begin(), E = node_end(); NI != E; ++NI)
     NI->dropAllReferences();
@@ -1310,7 +1516,7 @@
 ///
 /// The CloneFlags member controls various aspects of the cloning process.
 ///
-void DSGraph::cloneInto(const DSGraph &G, unsigned CloneFlags) {
+void DSGraph::cloneInto( DSGraph &G, unsigned CloneFlags) {
   TIME_REGION(X, "cloneInto");
   assert(&G != this && "Cannot clone graph into itself!");
 
@@ -1328,6 +1534,10 @@
     DSNode *New = new DSNode(*I, this);
     New->maskNodeTypes(~BitsToClear);
     OldNodeMap[I] = New;
+#ifdef LLVA_KERNEL
+    if (G.getPoolForNode(&*I)) 
+      PoolDescriptors[New] = G.getPoolForNode(&*I);
+#endif    
   }
 
 #ifndef NDEBUG
@@ -1405,6 +1615,17 @@
 
   // Merge the scalar map in.
   ScalarMap.spliceFrom(RHS.ScalarMap);
+
+#ifdef LLVA_KERNEL
+  //Take all from the pooldescriptor map
+#if 0
+  PoolDescriptors.swap(RHS.getPoolDescriptorsMap());
+#else
+  hash_map<const DSNode *, MetaPoolHandle*>& rhsmap = RHS.getPoolDescriptorsMap();
+  PoolDescriptors.insert(rhsmap.begin(), rhsmap.end());
+#endif
+  RHS.getPoolDescriptorsMap().clear();
+#endif  
 }
 
 /// spliceFrom - Copy all entries from RHS, then clear RHS.
@@ -1609,13 +1830,13 @@
     for (afc_iterator I = Graph.afc_begin(), E = Graph.afc_end(); I!=E; ++I)
       if (SCCFinder.PathExistsToClonedNode(*I))
         AuxCallToCopy.push_back(&*I);
-//       else if (I->isIndirectCall()){
-//  	//If the call node doesn't have any callees, clone it
-//  	std::vector< Function *> List;
-//  	I->getCalleeNode()->addFullFunctionList(List);
-//  	if (!List.size())
-//  	  AuxCallToCopy.push_back(&*I);
-//        }
+      else if (I->isIndirectCall()){
+ 	//If the call node doesn't have any callees, clone it
+ 	std::vector< Function *> List;
+ 	I->getCalleeNode()->addFullFunctionList(List);
+ 	if (!List.size())
+ 	  AuxCallToCopy.push_back(&*I);
+       }
 
   const DSScalarMap &GSM = Graph.getScalarMap();
   for (DSScalarMap::global_iterator GI = GSM.global_begin(),
@@ -1810,7 +2031,9 @@
       // eliminate it.
       if (Callee->getNumReferrers() == 1 && Callee->isComplete() &&
           Callee->getGlobalsList().empty()) {  // No useful info?
-        DOUT << "WARNING: Useless call site found.\n";
+#ifndef NDEBUG
+        std::cerr << "WARNING: Useless call site found.\n";
+#endif
         Calls.erase(OldIt);
         ++NumDeleted;
         continue;
@@ -1930,8 +2153,8 @@
   // Track the number of call nodes merged away...
   NumCallNodesMerged += NumDeleted;
 
-  if (NumDeleted)
-    DOUT << "Merged " << NumDeleted << " call nodes.\n";
+  DEBUG(if (NumDeleted)
+          std::cerr << "Merged " << NumDeleted << " call nodes.\n";);
 }
 
 
@@ -2263,7 +2486,7 @@
 #if 0
     if (CS.getNumPtrArgs() && CS.getCalleeNode() == CS.getPtrArg(0).getNode() &&
         CS.getCalleeNode() && CS.getCalleeNode()->getGlobals().empty())
-      DOUT << "WARNING: WEIRD CALL SITE FOUND!\n";
+      std::cerr << "WARNING: WEIRD CALL SITE FOUND!\n";
 #endif
   }
   AssertNodeInGraph(CS.getRetVal().getNode());
diff --git a/poolalloc/lib/DSA/DataStructureAA.cpp b/poolalloc/lib/DSA/DataStructureAA.cpp
index 6e9f07b..7a6c079 100644
--- a/poolalloc/lib/DSA/DataStructureAA.cpp
+++ b/poolalloc/lib/DSA/DataStructureAA.cpp
@@ -17,8 +17,8 @@
 #include "llvm/Module.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/Passes.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 using namespace llvm;
 
 namespace {
diff --git a/poolalloc/lib/DSA/DataStructureOpt.cpp b/poolalloc/lib/DSA/DataStructureOpt.cpp
index 5674883..9300d8c 100644
--- a/poolalloc/lib/DSA/DataStructureOpt.cpp
+++ b/poolalloc/lib/DSA/DataStructureOpt.cpp
@@ -12,8 +12,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Analysis/Passes.h"
 #include "llvm/Module.h"
 #include "llvm/Constant.h"
diff --git a/poolalloc/lib/DSA/DataStructureStats.cpp b/poolalloc/lib/DSA/DataStructureStats.cpp
index a73fc96..de18c85 100644
--- a/poolalloc/lib/DSA/DataStructureStats.cpp
+++ b/poolalloc/lib/DSA/DataStructureStats.cpp
@@ -11,8 +11,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Function.h"
 #include "llvm/Instructions.h"
 #include "llvm/Pass.h"
diff --git a/poolalloc/lib/DSA/EquivClassGraphs.cpp b/poolalloc/lib/DSA/EquivClassGraphs.cpp
index 4b1eaa9..a60e64a 100644
--- a/poolalloc/lib/DSA/EquivClassGraphs.cpp
+++ b/poolalloc/lib/DSA/EquivClassGraphs.cpp
@@ -15,11 +15,11 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "ECGraphs"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
+#include "dsa/DataStructure.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Module.h"
 #include "llvm/Pass.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Support/CallSite.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/ADT/SCCIterator.h"
@@ -213,7 +213,7 @@
   // Now that all of the equivalences have been built, merge the graphs for
   // each equivalence class.
   //
-  DOUT << "\nIndirect Function Equivalence Sets:\n";
+  DEBUG(std::cerr << "\nIndirect Function Equivalence Sets:\n");
   for (EquivalenceClasses<Function*>::iterator EQSI = FuncECs.begin(), E =
          FuncECs.end(); EQSI != E; ++EQSI) {
     if (!EQSI->isLeader()) continue;
@@ -229,10 +229,10 @@
     Function* LF = *SI;
 
 #ifndef NDEBUG
-    DOUT <<"  Equivalence set for leader " << LF->getName() <<" = ";
+    DEBUG(std::cerr <<"  Equivalence set for leader " << LF->getName() <<" = ");
     for (SN = SI; SN != FuncECs.member_end(); ++SN)
-      DOUT << " " << (*SN)->getName() << "," ;
-    DOUT << "\n";
+      DEBUG(std::cerr << " " << (*SN)->getName() << "," );
+    DEBUG(std::cerr << "\n");
 #endif
 
     // This equiv class has multiple functions: merge their graphs.  First,
@@ -286,7 +286,7 @@
       DEBUG(MergedG.AssertGraphOK());
     }
   }
-  DOUT << "\n";
+  DEBUG(std::cerr << "\n");
 }
 
 
@@ -322,7 +322,8 @@
   if (It != ValMap.end() && It->first == &FG)
     return It->second;
 
-  DOUT << "    ProcessSCC for function " << FG.getFunctionNames() << "\n";
+  DEBUG(std::cerr << "    ProcessSCC for function " << FG.getFunctionNames()
+                  << "\n");
 
   unsigned Min = NextID++, MyID = Min;
   ValMap[&FG] = Min;
@@ -385,7 +386,8 @@
 /// processGraph - Process the CBU graphs for the program in bottom-up order on
 /// the SCC of the __ACTUAL__ call graph.  This builds final folded CBU graphs.
 void EquivClassGraphs::processGraph(DSGraph &G) {
-  DOUT << "    ProcessGraph for function " << G.getFunctionNames() << "\n";
+  DEBUG(std::cerr << "    ProcessGraph for function "
+                  << G.getFunctionNames() << "\n");
 
   hash_set<Instruction*> calls;
 
@@ -432,15 +434,15 @@
                        DSGraph::StripAllocaBit |
                        DSGraph::DontCloneCallNodes |
                        DSGraph::DontCloneAuxCallNodes);
-        DOUT << "    Inlining graph [" << i << "/"
-             << G.getFunctionCalls().size()-1
-             << ":" << TNum << "/" << Num-1 << "] for "
-             << CalleeFunc->getName() << "["
-             << CalleeGraph->getGraphSize() << "+"
-             << CalleeGraph->getAuxFunctionCalls().size()
-             << "] into '" /*<< G.getFunctionNames()*/ << "' ["
-             << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
-             << "]\n";
+        DEBUG(std::cerr << "    Inlining graph [" << i << "/"
+              << G.getFunctionCalls().size()-1
+              << ":" << TNum << "/" << Num-1 << "] for "
+              << CalleeFunc->getName() << "["
+              << CalleeGraph->getGraphSize() << "+"
+              << CalleeGraph->getAuxFunctionCalls().size()
+              << "] into '" /*<< G.getFunctionNames()*/ << "' ["
+              << G.getGraphSize() << "+" << G.getAuxFunctionCalls().size()
+              << "]\n");
       }
     }
 
@@ -474,5 +476,6 @@
          E = MainSM.global_end(); I != E; ++I)
     RC.getClonedNH(MainSM[*I]);
 
-  DOUT << "  -- DONE ProcessGraph for function " << G.getFunctionNames() <<"\n";
+  DEBUG(std::cerr << "  -- DONE ProcessGraph for function "
+                  << G.getFunctionNames() << "\n");
 }
diff --git a/poolalloc/lib/DSA/GraphChecker.cpp b/poolalloc/lib/DSA/GraphChecker.cpp
index 50a41f2..de5c77e 100644
--- a/poolalloc/lib/DSA/GraphChecker.cpp
+++ b/poolalloc/lib/DSA/GraphChecker.cpp
@@ -23,8 +23,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Value.h"
 #include <iostream>
diff --git a/poolalloc/lib/DSA/Local.cpp b/poolalloc/lib/DSA/Local.cpp
index c8880c1..63feb7b 100644
--- a/poolalloc/lib/DSA/Local.cpp
+++ b/poolalloc/lib/DSA/Local.cpp
@@ -1,3 +1,4 @@
+#define JTC 0
 //===- Local.cpp - Compute a local data structure graph for a function ----===//
 //
 //                     The LLVM Compiler Infrastructure
@@ -12,8 +13,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "llvm/ADT/Statistic.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Constants.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Instructions.h"
@@ -24,6 +26,7 @@
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Timer.h"
+#include "poolalloc/Config/config.h"
 #include <iostream>
 
 // FIXME: This should eventually be a FunctionPass that is automatically
@@ -33,6 +36,12 @@
 
 using namespace llvm;
 
+#ifdef LLVA_KERNEL
+static Statistic<> CacheAllocs ("dsa", "Number of kmem_cache_alloc calls");
+static Statistic<> KMallocs    ("dsa", "Number of kmalloc calls");
+static Statistic<> GlobalPools ("dsa", "Number of global pools");
+#endif
+
 static RegisterPass<LocalDataStructures>
 X("datastructure", "Local Data Structure Analysis");
 
@@ -40,10 +49,6 @@
 TrackIntegersAsPointers("dsa-track-integers", cl::Hidden,
          cl::desc("If this is set, track integers as potential pointers"));
 
-static cl::opt<bool>
-IgnoreSetCC("dsa-ignore-setcc", cl::Hidden,
-         cl::desc("If this is set, do nothing at pointer comparisons"));
-
 static cl::list<std::string>
 AllocList("dsa-alloc-list",
           cl::value_desc("list"),
@@ -91,27 +96,59 @@
     DSNodeHandle *RetNode;               // Node that gets returned...
     DSScalarMap &ScalarMap;
     std::list<DSCallSite> *FunctionCalls;
-
+    Value * KMallocPool;
   public:
     GraphBuilder(Function &f, DSGraph &g, DSNodeHandle &retNode,
                  std::list<DSCallSite> &fc)
       : G(g), RetNode(&retNode), ScalarMap(G.getScalarMap()),
         FunctionCalls(&fc) {
-
+      // Find the type unsafe pool in the program
+      KMallocPool = f.getParent()->getNamedGlobal ("KmallocPool");
+      
+#if 1
+      //
+      // Determine if the function somehow escapes
+      //
+      bool escapes = false;
+      if (!(f.hasInternalLinkage())) {
+        escapes = true;
+      }
+      Value::use_iterator U;
+      for (U=f.use_begin(); U != f.use_end(); ++U) {
+        if (isa<GlobalValue>(U)) {
+          std::cerr << "LLVA: isa: " << f.getName() << " " << *U << std::endl;
+          escapes = true;
+          break;
+        }
+      }
+#endif
       // Create scalar nodes for all pointer arguments...
       for (Function::arg_iterator I = f.arg_begin(), E = f.arg_end();
-           I != E; ++I)
-        if (isPointerType(I->getType()))
-          getValueDest(*I);
+           I != E; ++I) {
+        if (isPointerType(I->getType())) {
+          DSNode * Node = getValueDest(*I).getNode();
+          if (!(f.hasInternalLinkage())) {
+            Node->setExternalMarker();
+          }
+        }
+      }
 
       visit(f);  // Single pass over the function
+#if JTC
+std::cerr << "LLVA: Function " << f.getName() << "\n";
+      for (DSScalarMap::iterator I = ScalarMap.begin(), E=ScalarMap.end();
+           I != E;
+           ++I)
+      {
+        std::cerr << "LLVA:\t" << I->first->getName() << ": " << (void *)(I->second.getNode()) << "\n";
+      }
+#endif
     }
 
     // GraphBuilder ctor for working on the globals graph
     GraphBuilder(DSGraph &g)
       : G(g), RetNode(0), ScalarMap(G.getScalarMap()), FunctionCalls(0) {
     }
-
     void mergeInGlobalInitializer(GlobalVariable *GV);
 
   private:
@@ -188,7 +225,7 @@
   : GlobalsGraph(GG), ScalarMap(ECs), TD(td) {
   PrintAuxCalls = false;
 
-  DOUT << "  [Loc] Calculating graph for: " << F.getName() << "\n";
+  DEBUG(std::cerr << "  [Loc] Calculating graph for: " << F.getName() << "\n");
 
   // Use the graph builder to construct the local version of the graph
   GraphBuilder B(F, *this, ReturnNodes[&F], FunctionCalls);
@@ -340,12 +377,31 @@
 void GraphBuilder::visitSetCondInst(SetCondInst &SCI) {
   if (!isPointerType(SCI.getOperand(0)->getType()) ||
       isa<ConstantPointerNull>(SCI.getOperand(1))) return; // Only pointers
-  if(!IgnoreSetCC)
-    ScalarMap[SCI.getOperand(0)].mergeWith(getValueDest(*SCI.getOperand(1)));
+  ScalarMap[SCI.getOperand(0)].mergeWith(getValueDest(*SCI.getOperand(1)));
 }
 
 
 void GraphBuilder::visitGetElementPtrInst(User &GEP) {
+
+#ifdef LLVA_KERNEL
+#if 1
+  int debug = 0;
+  if (isa<Instruction>(GEP)) {
+    Instruction * IGEP = (Instruction *)(&GEP);
+    if (IGEP->getParent()->getParent()->getName() == "alloc_vfsmnt")
+    {
+#if 0
+      if (G.getPoolDescriptorsMap().count(N) != 0)
+        if (G.getPoolDescriptorsMap()[N])
+  std::cerr << "LLVA: GEP[" << count << "]: Pool for " << GEP.getName() << " is " << G.getPoolDescriptorsMap()[N]->getMetaPoolValue()->getName() << "\n";
+#else
+    debug = 1;
+#endif
+    }
+  }
+#endif
+#endif
+
   DSNodeHandle Value = getValueDest(*GEP.getOperand(0));
   if (Value.isNull())
     Value = createNode();
@@ -365,6 +421,11 @@
   if (AllZeros || (!Value.isNull() &&
                    Value.getNode()->isNodeCompletelyFolded())) {
     setDestTo(GEP, Value);
+#if 0
+if (debug) std::cerr << "LLVA: GEP: All Zeros\n";
+  if (G.getPoolDescriptorsMap()[Value.getNode()])
+    std::cerr << "LLVA: GEP: Pool for " << GEP.getName() << " is " << G.getPoolDescriptorsMap()[Value.getNode()]->getName() << "\n";
+#endif
     return;
   }
 
@@ -375,6 +436,7 @@
   if (Value.getNode()->mergeTypeInfo(CurTy, Value.getOffset())) {
     // If the node had to be folded... exit quickly
     setDestTo(GEP, Value);  // GEP result points to folded node
+
     return;
   }
 
@@ -473,9 +535,22 @@
       N->foldNodeCompletely();
     }
   }
-  
+
   // Value is now the pointer we want to GEP to be...  
   setDestTo(GEP, Value);
+#if 0
+  if (debug && (isa<Instruction>(GEP))) {
+    Instruction * IGEP = (Instruction *)(&GEP);
+    DSNode * N = Value.getNode();
+    if (IGEP->getParent()->getParent()->getName() == "alloc_vfsmnt")
+    {
+      if (G.getPoolDescriptorsMap().count(N) != 0)
+        if (G.getPoolDescriptorsMap()[N])
+  std::cerr << "LLVA: GEP[" << 0 << "]: Pool for " << GEP.getName() << " is " << G.getPoolDescriptorsMap()[N]->getName() << "\n";
+    }
+  }
+#endif
+
 }
 
 void GraphBuilder::visitLoadInst(LoadInst &LI) {
@@ -491,6 +566,10 @@
 
   if (isPointerType(LI.getType()))
     setDestTo(LI, getLink(Ptr));
+#if 0
+  if (G.getPoolDescriptorsMap()[getLink(Ptr).getNode()])
+    std::cerr << "LLVA: Load: Pool for " << LI.getName() << " is " << G.getPoolDescriptorsMap()[getLink(Ptr).getNode()]->getName() << "\n";
+#endif
 }
 
 void GraphBuilder::visitStoreInst(StoreInst &SI) {
@@ -507,6 +586,18 @@
   // Avoid adding edges from null, or processing non-"pointer" stores
   if (isPointerType(StoredTy))
     Dest.addEdgeTo(getValueDest(*SI.getOperand(0)));
+#ifdef LLVA_KERNEL
+#if 1
+  {
+    if (SI.getParent()->getParent()->getName() == "alloc_vfsmnt") {
+      DSNode * N = getValueDest(*SI.getOperand(1)).getNode();
+      if (G.getPoolDescriptorsMap().count(N) != 0)
+        if (G.getPoolDescriptorsMap()[N])
+          std::cerr << "LLVA: Store: Pool for " << SI.getName() << " is " << G.getPoolDescriptorsMap()[N]->getName() << "\n";
+    }
+  }
+#endif
+#endif
 }
 
 void GraphBuilder::visitReturnInst(ReturnInst &RI) {
@@ -573,7 +664,7 @@
       N->setModifiedMarker();
     return true;
   default:
-    DOUT << "[dsa:local] Unhandled intrinsic: " << F->getName() << "\n";
+    DEBUG(std::cerr << "[dsa:local] Unhandled intrinsic: " << F->getName() << "\n");
     return false;
   }
 }
@@ -1005,7 +1096,155 @@
     if (DSNode *N = getValueDest(**(CS.arg_begin() + 1)).getNode())
             N->setReadMarker();
     return true;
+#ifdef LLVA_KERNEL_0
+  } else if (F->getName() == "kmem_cache_alloc") {
+    DEBUG(std::cerr << "LLVA: kmem_cache_alloc" << std::endl);
+    // Update the statistics count
+    ++CacheAllocs;
+
+    // Create a new DSNode for this memory allocation
+    DSNode *N = createNode();
+    N->setHeapNodeMarker();
+    setDestTo(*CS.getInstruction(), N);
+
+    // Get the pool handle
+    if (CS.arg_begin() == CS.arg_end()) {
+      abort(); //Hanlde this later
+      // Treat it as  a kmalloc
+      N->foldNodeCompletely();
+      //This becomes a kmalloc pool
+      MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(KMallocPool));
+      G.getPoolDescriptorsMap()[N] = tmpvh;
+    } else {
+      Value *actualPD = *(CS.arg_begin());
+      if (!isa<GlobalValue>(actualPD)) {
+        std::cerr << "WARNING: Pool is not global.  Function = " << CS.getCaller()->getName() << "\n";
+      } else {
+        ++GlobalPools;
+      }
+      Value *TheMetaPool = actualPD;
+      if (G.getPoolDescriptorsMap().count(N)== 0) {
+        //Here we insert a global meta pool
+        //Get the Module first
+        Module * M = F->getParent();
+        //Now create a meta pool for this value, DSN Node
+        const Type * VoidPtrType = PointerType::get(Type::SByteTy);              
+        TheMetaPool = new GlobalVariable(
+                                 /*type=*/ VoidPtrType,
+                                 /*isConstant=*/ false,
+                                 /*Linkage=*/ GlobalValue::InternalLinkage,
+                                 /*initializer=*/ Constant::getNullValue(VoidPtrType),
+                                 /*name=*/ "_metaPool_",
+                                 /*parent=*/ M );
+        //Inserted a global meta pool 
+      }
+      //Now insert a function call that takes care of adding this pool to the global pool
+      
+      //First get the Insert point
+      Instruction *InsertPoint = CS.getInstruction();
+      
+      //Assumes AddPoolDescToMetaPool is in the module
+      CastInst *CastMetaPool = 
+        new CastInst(TheMetaPool, 
+                     PointerType::get(Type::SByteTy), "metapool.casted", InsertPoint);
+      CastInst *CastActualPD = 
+        new CastInst(actualPD, 
+                     PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint);
+      
+      // Create the call to AddPoolDescToMetaPool 
+      std::vector<Value *> args(1,CastMetaPool);
+      args.push_back(CastActualPD);
+      new CallInst(AddPoolDescToMetaPool,args,"", InsertPoint);
+      MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(TheMetaPool));
+      G.getPoolDescriptorsMap()[N] = tmpvh;
+    }
+  } else if (F->getName() == "poolalloc") {
+    if (CS.getCaller()->getName() == "kmem_cache_alloc")
+      return;
+    // Update the statistics
+    ++KMallocs;
+
+    // Create a DSNode for the memory allocated by this function call
+    DSNode *N = createNode();
+    N->setHeapNodeMarker();
+    setDestTo(*CS.getInstruction(), N);
+
+    // Get the pool handle, if possible
+    if (CS.arg_begin() == CS.arg_end()) {
+      abort(); //handle later
+      // Treat it as kmalloc
+      N->foldNodeCompletely();
+      //This becomes a kmalloc pool
+      //So get the kmalloc pool
+      MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(KMallocPool));
+      G.getPoolDescriptorsMap()[N] = tmpvh;
+    } else {
+      Value *actualPD = *(CS.arg_begin());
+      if (!isa<GlobalValue>(actualPD)) {
+        std::cerr << "WARNING: Pool is not global.  Function = " << CS.getCaller()->getName() << "\n";
+      } else {
+        ++GlobalPools;
+      }
+      Value *TheMetaPool = actualPD;
+      if (G.getPoolDescriptorsMap().count(N)== 0) {
+        //Here we insert a global meta pool
+        //Get the Module first
+        Module * M = F->getParent();
+        //Now create a meta pool for this value, DSN Node
+        const Type * VoidPtrType = PointerType::get(Type::SByteTy);              
+        TheMetaPool = new GlobalVariable(
+                                 /*type=*/ VoidPtrType,
+                                 /*isConstant=*/ false,
+                                 /*Linkage=*/ GlobalValue::InternalLinkage,
+                                 /*initializer=*/ Constant::getNullValue(VoidPtrType),
+                                 /*name=*/ "_metaPool_",
+                                 /*parent=*/ M );
+        //Inserted a global meta pool 
+      }
+      //Now insert a function call that takes care of adding this pool to the global pool
+      //First get the Insert point
+      Instruction *InsertPoint = CS.getInstruction();
+
+      //Assumes AddPoolDescToMetaPool is in the module
+      CastInst *CastMetaPool = 
+        new CastInst(TheMetaPool, 
+                     PointerType::get(Type::SByteTy), "metapool.casted", InsertPoint);
+      CastInst *CastActualPD = 
+        new CastInst(actualPD, 
+                     PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint);
+      
+      // Create the call to AddPoolDescToMetaPool 
+      std::vector<Value *> args(1,CastMetaPool);
+      args.push_back(CastActualPD);
+      new CallInst(AddPoolDescToMetaPool,args,"", InsertPoint);
+      MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(TheMetaPool));
+      G.getPoolDescriptorsMap()[N] = tmpvh;
+    }
+#endif
+#ifdef LLVA_KERNEL
+  } else if (F->getName() == "llva_memcpy") {
+    if (CS.getCaller()->getName() == "kmem_cache_alloc")
+        return false;
+    // Merge the first & second arguments, and mark the memory read and
+    // modified.
+    DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
+    RetNH.mergeWith(getValueDest(**(CS.arg_begin()+1)));
+    if (DSNode *N = RetNH.getNode())
+      N->setModifiedMarker()->setReadMarker();
+    return true;
+  } else if (F->getName() == "__generic_copy_from_user") {
+    if (CS.getCaller()->getName() == "kmem_cache_alloc")
+        return false;
+    // Merge the first & second arguments, and mark the memory read and
+    // modified.
+    DSNodeHandle RetNH = getValueDest(**CS.arg_begin());
+    RetNH.mergeWith(getValueDest(**(CS.arg_begin()+1)));
+    if (DSNode *N = RetNH.getNode())
+      N->setModifiedMarker()->setReadMarker();
+    return true;
+#endif
   }
+
   return false;
 }
 
@@ -1013,29 +1252,192 @@
   Value *Callee = CS.getCalledValue();
 
   // Special case handling of certain libc allocation functions here.
-  if (Function *F = dyn_cast<Function>(Callee))
+  if (Function *F = dyn_cast<Function>(Callee)) {
+#ifdef LLVA_KERNEL    
+    if (F->getName() == "kmem_cache_alloc") {
+      DEBUG(std::cerr << "LLVA: kmem_cache_alloc" << std::endl);
+      // Update the statistics count
+      ++CacheAllocs;
+      
+      // Create a new DSNode for this memory allocation
+      DSNode *N = createNode();
+      N->setHeapNodeMarker();
+      setDestTo(*CS.getInstruction(), N);
+
+      // Get the pool handle
+      if (CS.arg_begin() == CS.arg_end()) {
+        abort(); //Handle this later
+        // Treat it as  a kmalloc
+        N->foldNodeCompletely();
+        //This becomes a kmalloc pool
+        MetaPoolHandle* mpvh = new MetaPoolHandle(new MetaPool(KMallocPool));
+        G.getPoolDescriptorsMap()[N] = mpvh;
+      } else {
+        Value *actualPD = *(CS.arg_begin());
+        if (!isa<GlobalValue>(actualPD)) {
+          std::cerr << "WARNING: Pool is not global.  Function = " << CS.getCaller()->getName() << "\n";
+        } else {
+          ++GlobalPools;
+        }
+        Value *TheMetaPool = actualPD;
+        //Get the Module first
+        Module * M = F->getParent();
+        if (G.getPoolDescriptorsMap().count(N)== 0) {
+          //Here we insert a global meta pool
+          //Now create a meta pool for this value, DSN Node
+          const Type * VoidPtrType = PointerType::get(Type::SByteTy);              
+          TheMetaPool = new GlobalVariable(
+                                           /*type=*/ VoidPtrType,
+                                           /*isConstant=*/ false,
+                                           /*Linkage=*/ GlobalValue::InternalLinkage,
+                                           /*initializer=*/ Constant::getNullValue(VoidPtrType),
+                                           /*name=*/ "_metaPool_",
+                                           /*parent=*/ M );
+          //Inserted a global meta pool 
+        }
+#if 1
+        else {
+          // Lookup the meta pool
+          TheMetaPool = G.getPoolForNode(N)->getMetaPoolValue();
+        }
+#endif
+        //Now insert a function call that takes care of adding this pool to the global pool
+        
+        //First get the Insert point
+        Instruction *InsertPoint = CS.getInstruction();
+        
+        //Assumes AddPoolDescToMetaPool is in the module
+        const Type * VoidPtrType = PointerType::get(Type::SByteTy);
+        const Type * VoidPtrPtrType = PointerType::get(VoidPtrType);
+        CastInst *CastMetaPool = 
+          new CastInst(TheMetaPool, 
+                       VoidPtrPtrType, "metapool.casted", InsertPoint);
+        CastInst *CastActualPD = 
+          new CastInst(actualPD, 
+                       PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint);
+        
+        // Create the call to AddPoolDescToMetaPool 
+        std::vector<Value *> args(1,CastMetaPool);
+        args.push_back(CastActualPD);
+
+        //Get the AddPoolDescToMetaPool function from the module
+        //FIXME optimize it by getting it once per module 
+        std::vector<const Type *> Arg(1, VoidPtrPtrType);
+        Arg.push_back(VoidPtrType);
+        FunctionType *AddPoolDescToMetaPoolTy =
+          FunctionType::get(Type::VoidTy,Arg, false);
+        Function *AddPoolDescToMetaPool = M->getOrInsertFunction("AddPoolDescToMetaPool", AddPoolDescToMetaPoolTy);
+
+        
+        new CallInst(AddPoolDescToMetaPool,args,"", InsertPoint);
+#if 0
+        MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(TheMetaPool));
+#else
+        MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(TheMetaPool), CS.getInstruction());
+#endif
+        G.getPoolDescriptorsMap()[N] = tmpvh;
+      }
+      return;
+    } else if (F->getName() == "poolalloc") {
+      if (CS.getCaller()->getName() == "kmem_cache_alloc")
+        return;
+      // Update the statistics
+      ++KMallocs;
+      
+      // Create a DSNode for the memory allocated by this function call
+      DSNode *N = createNode();
+      N->setHeapNodeMarker();
+      setDestTo(*CS.getInstruction(), N);
+      
+      // Get the pool handle, if possible
+      if (CS.arg_begin() == CS.arg_end()) {
+        abort() ; //Handle this later
+        // Treat it as kmalloc
+        N->foldNodeCompletely();
+        //This becomes a kmalloc pool
+        //So get the kmalloc pool
+        MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(KMallocPool));
+        G.getPoolDescriptorsMap()[N] = tmpvh;
+      } else {
+        Value *actualPD = *(CS.arg_begin());
+        if (!isa<GlobalValue>(actualPD)) {
+          std::cerr << "WARNING: Pool is not global.  Function = " << CS.getCaller()->getName() << "\n";
+        } else {
+          ++GlobalPools;
+        }
+        Value *TheMetaPool = actualPD;
+        Module * M = F->getParent();
+        if (G.getPoolDescriptorsMap().count(N)== 0) {
+          //Here we insert a global meta pool
+          //Get the Module first
+          //Now create a meta pool for this value, DSN Node
+          const Type * VoidPtrType = PointerType::get(Type::SByteTy);              
+          TheMetaPool = new GlobalVariable(
+                                           /*type=*/ VoidPtrType,
+                                           /*isConstant=*/ false,
+                                           /*Linkage=*/ GlobalValue::InternalLinkage,
+                                           /*initializer=*/ Constant::getNullValue(VoidPtrType),
+                                           /*name=*/ "_metaPool_",
+                                           /*parent=*/ M );
+          //Inserted a global meta pool 
+        }
+        //Now insert a function call that takes care of adding this pool to the global pool
+        //First get the Insert point
+        Instruction *InsertPoint = CS.getInstruction();
+        
+        //Assumes AddPoolDescToMetaPool is in the module
+        const Type * VoidPtrType = PointerType::get(Type::SByteTy);
+        const Type * VoidPtrPtrType = PointerType::get(VoidPtrType);
+        CastInst *CastMetaPool = 
+          new CastInst(TheMetaPool, 
+                       VoidPtrPtrType, "metapool.casted", InsertPoint);
+        CastInst *CastActualPD = 
+          new CastInst(actualPD, 
+                       PointerType::get(Type::SByteTy), "poolhandle.lscasted", InsertPoint);
+        
+        // Create the call to AddPoolDescToMetaPool 
+        std::vector<Value *> args(1,CastMetaPool);
+        args.push_back(CastActualPD);
+
+        //FIXME optimize it by getting it once per module 
+        std::vector<const Type *> Arg(1, VoidPtrPtrType);
+        Arg.push_back(VoidPtrType);
+        FunctionType *AddPoolDescToMetaPoolTy =
+          FunctionType::get(Type::VoidTy,Arg, false);
+        Function *AddPoolDescToMetaPool = M->getOrInsertFunction("AddPoolDescToMetaPool", AddPoolDescToMetaPoolTy);
+        
+        new CallInst(AddPoolDescToMetaPool,args,"", InsertPoint);
+        MetaPoolHandle* tmpvh = new MetaPoolHandle(new MetaPool(TheMetaPool));
+        G.getPoolDescriptorsMap()[N] = tmpvh;
+      }
+      return;
+    }
+#endif
     if (F->isExternal())
       if (F->isIntrinsic() && visitIntrinsic(CS, F))
         return;
       else {
         // Determine if the called function is one of the specified heap
         // allocation functions
-	if (AllocList.end() != std::find(AllocList.begin(), AllocList.end(), F->getName())) {
-	  setDestTo(*CS.getInstruction(),
-		    createNode()->setHeapNodeMarker()->setModifiedMarker());
-	  return;
-	}
+        if (AllocList.end() != std::find(AllocList.begin(), AllocList.end(), F->getName())) {
+          setDestTo(*CS.getInstruction(),
+                    createNode()->setHeapNodeMarker()->setModifiedMarker());
+          return;
+        }
 
         // Determine if the called function is one of the specified heap
         // free functions
-	if (FreeList.end() != std::find(FreeList.begin(), FreeList.end(), F->getName())) {
-	  // Mark that the node is written to...
-	  if (DSNode *N = getValueDest(*(CS.getArgument(0))).getNode())
-	    N->setModifiedMarker()->setHeapNodeMarker();
-	  return;
-	}
-	if (visitExternal(CS,F))
-	  return;
+        if (FreeList.end() != std::find(FreeList.begin(), FreeList.end(),
+                                        F->getName())) {
+          // Mark that the node is written to...
+          if (DSNode *N = getValueDest(*(CS.getArgument(0))).getNode())
+            N->setModifiedMarker()->setHeapNodeMarker();
+          return;
+        }
+
+        if (visitExternal(CS,F))
+          return;
+
         // Unknown function, warn if it returns a pointer type or takes a
         // pointer argument.
         bool Warn = isPointerType(CS.getInstruction()->getType());
@@ -1047,10 +1449,11 @@
               break;
             }
         if (Warn) {
-          DOUT << "WARNING: Call to unknown external function '"
-               << F->getName() << "' will cause pessimistic results!\n";
+          DEBUG(std::cerr << "WARNING: Call to unknown external function '"
+                << F->getName() << "' will cause pessimistic results!\n");
         }
       }
+  }
 
   // Set up the return value...
   DSNodeHandle RetVal;
@@ -1158,7 +1561,7 @@
         DSNodeHandle NewNH(NHN, NH.getOffset()+(unsigned)SL->MemberOffsets[i]);
         MergeConstantInitIntoNode(NewNH, cast<Constant>(CS->getOperand(i)));
       } else if (SL->MemberOffsets[i] == SL->StructSize) {
-        DOUT << "Zero size element at end of struct\n";
+        DEBUG(std::cerr << "Zero size element at end of struct\n");
         NHN->foldNodeCompletely();
       } else {
         assert(0 && "type was smaller than offsets of of struct layout indicate");
@@ -1280,7 +1683,7 @@
   // together the globals into equivalence classes.
   std::set<GlobalValue*> ECGlobals;
   BuildGlobalECs(*GlobalsGraph, ECGlobals);
-  DOUT << "Eliminating " << ECGlobals.size() << " EC Globals!\n";
+  DEBUG(std::cerr << "Eliminating " << ECGlobals.size() << " EC Globals!\n");
   ECGlobals.clear();
 
   // Calculate all of the graphs...
@@ -1288,7 +1691,6 @@
     if (!I->isExternal())
       DSInfo.insert(std::make_pair(I, new DSGraph(GlobalECs, TD, *I,
                                                   GlobalsGraph)));
-
   GlobalsGraph->removeTriviallyDeadNodes();
   GlobalsGraph->markIncompleteNodes(DSGraph::MarkFormalArgs);
 
@@ -1298,7 +1700,7 @@
   // program.
   BuildGlobalECs(*GlobalsGraph, ECGlobals);
   if (!ECGlobals.empty()) {
-    DOUT << "Eliminating " << ECGlobals.size() << " EC Globals!\n";
+    DEBUG(std::cerr << "Eliminating " << ECGlobals.size() << " EC Globals!\n");
     for (hash_map<Function*, DSGraph*>::iterator I = DSInfo.begin(),
            E = DSInfo.end(); I != E; ++I)
       EliminateUsesOfECGlobals(*I->second, ECGlobals);
diff --git a/poolalloc/lib/DSA/Makefile b/poolalloc/lib/DSA/Makefile
index 0f1986f..2a9cc56 100644
--- a/poolalloc/lib/DSA/Makefile
+++ b/poolalloc/lib/DSA/Makefile
@@ -1,4 +1,4 @@
-##===- lib/Analysis/DataStructure/Makefile -----------------*- Makefile -*-===##
+##===- lib/DSA/Makefile ------------------------------------*- Makefile -*-===##
 # 
 #                     The LLVM Compiler Infrastructure
 #
@@ -7,7 +7,7 @@
 # 
 ##===----------------------------------------------------------------------===##
 
-LEVEL = ../../..
+LEVEL = ../..
 LIBRARYNAME = LLVMDataStructure
 
 include $(LEVEL)/Makefile.common
diff --git a/poolalloc/lib/DSA/Printer.cpp b/poolalloc/lib/DSA/Printer.cpp
index b425e4e..fd7f9f8 100644
--- a/poolalloc/lib/DSA/Printer.cpp
+++ b/poolalloc/lib/DSA/Printer.cpp
@@ -11,9 +11,9 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Analysis/DataStructure/DSGraphTraits.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
+#include "dsa/DSGraphTraits.h"
 #include "llvm/Module.h"
 #include "llvm/Constants.h"
 #include "llvm/Assembly/Writer.h"
@@ -21,7 +21,6 @@
 #include "llvm/Support/GraphWriter.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/Config/config.h"
-#include <iostream>
 #include <fstream>
 #include <sstream>
 using namespace llvm;
diff --git a/poolalloc/lib/DSA/Steensgaard.cpp b/poolalloc/lib/DSA/Steensgaard.cpp
index eb5b74c..9728829 100644
--- a/poolalloc/lib/DSA/Steensgaard.cpp
+++ b/poolalloc/lib/DSA/Steensgaard.cpp
@@ -14,8 +14,8 @@
 //
 //===----------------------------------------------------------------------===//
 
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Analysis/AliasAnalysis.h"
 #include "llvm/Analysis/Passes.h"
 #include "llvm/Module.h"
@@ -28,6 +28,7 @@
     DSGraph *ResultGraph;
 
     EquivalenceClasses<GlobalValue*> GlobalECs;  // Always empty
+    PoolDescriptorMapType PoolDescriptors; 
   public:
     Steens() : ResultGraph(0) {}
     ~Steens() {
diff --git a/poolalloc/lib/DSA/TopDownClosure.cpp b/poolalloc/lib/DSA/TopDownClosure.cpp
index 57a8924..5d961b1 100644
--- a/poolalloc/lib/DSA/TopDownClosure.cpp
+++ b/poolalloc/lib/DSA/TopDownClosure.cpp
@@ -13,14 +13,15 @@
 // like pointer analysis.
 //
 //===----------------------------------------------------------------------===//
-#define DEBUG_TYPE "td_dsa"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
+
+#include "dsa/DataStructure.h"
 #include "llvm/Module.h"
 #include "llvm/DerivedTypes.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
+#include "dsa/DSGraph.h"
 #include "llvm/Support/Debug.h"
 #include "llvm/Support/Timer.h"
 #include "llvm/ADT/Statistic.h"
+#include <iostream>
 using namespace llvm;
 
 #if 0
@@ -240,7 +241,8 @@
       RC.getClonedNH(GG.getNodeForValue(*GI));
   }
 
-  DOUT << "[TD] Inlining callers into '" << DSG.getFunctionNames() << "'\n";
+  DEBUG(std::cerr << "[TD] Inlining callers into '" << DSG.getFunctionNames()
+        << "'\n");
 
   // Iteratively inline caller graphs into this graph.
   while (!EdgesFromCaller.empty()) {
@@ -256,13 +258,16 @@
     do {
       const DSCallSite &CS = *EdgesFromCaller.back().CS;
       Function &CF = *EdgesFromCaller.back().CalledFunction;
-      DOUT << "   [TD] Inlining graph into Fn '" << CF.getName() << "' from ";
+      DEBUG(std::cerr << "   [TD] Inlining graph into Fn '"
+            << CF.getName() << "' from ");
       if (CallerGraph.getReturnNodes().empty())
-        DOUT << "SYNTHESIZED INDIRECT GRAPH";
+        DEBUG(std::cerr << "SYNTHESIZED INDIRECT GRAPH");
       else
-        DOUT << "Fn '" << CS.getCallSite().getInstruction()->
-                            getParent()->getParent()->getName() << "'";
-      DOUT << ": " << CF.getFunctionType()->getNumParams() << " args\n";
+        DEBUG (std::cerr << "Fn '"
+               << CS.getCallSite().getInstruction()->
+               getParent()->getParent()->getName() << "'");
+      DEBUG(std::cerr << ": " << CF.getFunctionType()->getNumParams()
+            << " args\n");
 
       // Get the formal argument and return nodes for the called function and
       // merge them with the cloned subgraph.
@@ -366,13 +371,12 @@
 
     // If we already have this graph, recycle it.
     if (IndCallRecI != IndCallMap.end() && IndCallRecI->first == Callees) {
-      DOUT << "  [TD] *** Reuse of indcall graph for " << Callees.size()
-           << " callees!\n";
+      DEBUG(std::cerr << "  [TD] *** Reuse of indcall graph for " << Callees.size()
+            << " callees!\n");
       IndCallGraph = IndCallRecI->second;
     } else {
       // Otherwise, create a new DSGraph to represent this.
       IndCallGraph = new DSGraph(DSG.getGlobalECs(), DSG.getTargetData());
-
       // Make a nullary dummy call site, which will eventually get some content
       // merged into it.  The actual callee function doesn't matter here, so we
       // just pass it something to keep the ctor happy.
@@ -459,8 +463,8 @@
     return;
   }
 
-  DOUT << *From;
-  DOUT << *To;
+  std::cerr << *From;
+  std::cerr << *To;
   assert(0 && "Do not know how to copy this yet!");
   abort();
 }
diff --git a/poolalloc/lib/Makefile b/poolalloc/lib/Makefile
index c8d2b81..3bd293d 100644
--- a/poolalloc/lib/Makefile
+++ b/poolalloc/lib/Makefile
@@ -6,6 +6,6 @@
 #
 # List all of the subdirectories that we will compile.
 #
-DIRS=PoolAllocate
+PARALLEL_DIRS=DSA PoolAllocate
 
 include $(LEVEL)/Makefile.common
diff --git a/poolalloc/lib/PoolAllocate/AccessTrace.cpp b/poolalloc/lib/PoolAllocate/AccessTrace.cpp
index dd08b80..d5c8d0e 100644
--- a/poolalloc/lib/PoolAllocate/AccessTrace.cpp
+++ b/poolalloc/lib/PoolAllocate/AccessTrace.cpp
@@ -12,9 +12,10 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "pointercompress"
+
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "poolalloc/PoolAllocate.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
 #include "llvm/Instructions.h"
 #include "llvm/Module.h"
 using namespace llvm;
diff --git a/poolalloc/lib/PoolAllocate/Heuristic.cpp b/poolalloc/lib/PoolAllocate/Heuristic.cpp
index 5b0b813..0fc2ca7 100644
--- a/poolalloc/lib/PoolAllocate/Heuristic.cpp
+++ b/poolalloc/lib/PoolAllocate/Heuristic.cpp
@@ -12,10 +12,11 @@
 //===----------------------------------------------------------------------===//
 
 #include "Heuristic.h"
+
+#include "dsa/DSGraphTraits.h"
 #include "poolalloc/PoolAllocate.h"
 #include "llvm/Instructions.h"
 #include "llvm/Module.h"
-#include "llvm/Analysis/DataStructure/DSGraphTraits.h"
 #include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/Support/CommandLine.h"
 #include "llvm/Target/TargetData.h"
diff --git a/poolalloc/lib/PoolAllocate/PointerCompress.cpp b/poolalloc/lib/PoolAllocate/PointerCompress.cpp
index cc409a8..3576b67 100644
--- a/poolalloc/lib/PoolAllocate/PointerCompress.cpp
+++ b/poolalloc/lib/PoolAllocate/PointerCompress.cpp
@@ -12,13 +12,14 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "pointercompress"
+
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
 #include "poolalloc/PoolAllocate.h"
 #include "Heuristic.h"
 #include "llvm/Constants.h"
 #include "llvm/Instructions.h"
 #include "llvm/Module.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Support/CommandLine.h"
diff --git a/poolalloc/lib/PoolAllocate/PoolAllocate.cpp b/poolalloc/lib/PoolAllocate/PoolAllocate.cpp
index da2a15e..4203fef 100644
--- a/poolalloc/lib/PoolAllocate/PoolAllocate.cpp
+++ b/poolalloc/lib/PoolAllocate/PoolAllocate.cpp
@@ -13,6 +13,10 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "poolalloc"
+
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
+#include "dsa/CallTargets.h"
 #include "poolalloc/PoolAllocate.h"
 #include "Heuristic.h"
 #include "llvm/Constants.h"
@@ -20,13 +24,10 @@
 #include "llvm/Instructions.h"
 #include "llvm/Module.h"
 #include "llvm/Constants.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
 #include "llvm/Support/CFG.h"
 #include "llvm/Target/TargetData.h"
 #include "llvm/Transforms/Utils/BasicBlockUtils.h"
 #include "llvm/Transforms/Utils/Cloning.h"
-#include "llvm/Analysis/DataStructure/CallTargets.h"
 #include "llvm/ADT/DepthFirstIterator.h"
 #include "llvm/ADT/Statistic.h"
 #include "llvm/ADT/STLExtras.h"
diff --git a/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp b/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp
index 1caa316..190ea9e 100644
--- a/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp
+++ b/poolalloc/lib/PoolAllocate/TransformFunctionBody.cpp
@@ -12,10 +12,11 @@
 //===----------------------------------------------------------------------===//
 
 #define DEBUG_TYPE "PoolAllocator"
+
+#include "dsa/DataStructure.h"
+#include "dsa/DSGraph.h"
+#include "dsa/CallTargets.h"
 #include "poolalloc/PoolAllocate.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Analysis/DataStructure/CallTargets.h"
 #include "llvm/Module.h"
 #include "llvm/DerivedTypes.h"
 #include "llvm/Constants.h"
diff --git a/television/LICENSE.TXT b/television/LICENSE.TXT
deleted file mode 100644
index 0e09035..0000000
--- a/television/LICENSE.TXT
+++ /dev/null
@@ -1,41 +0,0 @@
-==============================================================================
-LLVM-TV Release License
-==============================================================================
-University of Illinois/NCSA
-Open Source License
-
-Copyright (c) 2003, 2004 University of Illinois at Urbana-Champaign.
-All rights reserved.
-
-Developed by:
-
-    Misha Brukman, Tanya Brethour, and Brian Gaeke
-
-    University of Illinois at Urbana-Champaign
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal with
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-    * Redistributions of source code must retain the above copyright notice,
-      this list of conditions and the following disclaimers.
-
-    * Redistributions in binary form must reproduce the above copyright notice,
-      this list of conditions and the following disclaimers in the
-      documentation and/or other materials provided with the distribution.
-
-    * Neither the names of the LLVM Team, University of Illinois at
-      Urbana-Champaign, nor the names of its contributors may be used to
-      endorse or promote products derived from this Software without specific
-      prior written permission.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
-FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-CONTRIBUTORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS WITH THE
-SOFTWARE.
diff --git a/television/Makefile b/television/Makefile
deleted file mode 100755
index 90c9d9d..0000000
--- a/television/Makefile
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# This is a sample Makefile for a project that uses LLVM.
-#
-
-#
-# Indicates our relative path to the top of the project's root directory.
-#
-LEVEL = .
-
-#
-# Directories that needs to be built.
-#
-DIRS = lib tools
-
-#
-# This is needed since the tags generation code expects a tools directory
-# to exist.
-#
-#all::
-#	mkdir -p tools
-
-#
-# Include the Master Makefile that knows how to build all.
-#
-include $(LEVEL)/Makefile.common
-
-distclean:: clean
-	${RM} -f Makefile.common Makefile.config config.log config.status
-
diff --git a/television/Makefile.common b/television/Makefile.common
deleted file mode 100644
index 1e1e89e..0000000
--- a/television/Makefile.common
+++ /dev/null
@@ -1,19 +0,0 @@
-#===-- Makefile.common - Common make rules for LLVM-TV -----*- Makefile -*--===#
-# 
-#                     The LLVM Compiler Infrastructure
-#
-# This file was developed by the LLVM research group and is distributed under
-# the University of Illinois Open Source License. See LICENSE.TXT for details.
-# 
-#===------------------------------------------------------------------------===#
-
-#
-# Include the local config file
-#
-include $(LEVEL)/Makefile.config
-
-#
-# Include LLVM's Master Makefile.
-#
-include $(LLVM_SRC_ROOT)/Makefile.rules
-
diff --git a/television/Makefile.config.in b/television/Makefile.config.in
deleted file mode 100644
index 132290d..0000000
--- a/television/Makefile.config.in
+++ /dev/null
@@ -1,30 +0,0 @@
-PROJECT_NAME = @PACKAGE_NAME@
-PROJ_VERSION = @PACKAGE_VERSION@
-
-#
-# Set this variable to the top of the LLVM source tree.
-#
-LLVM_SRC_ROOT = @LLVM_SRC@
-
-#
-# Set this variable to the top level directory where LLVM was built
-# (this is *not* the same as OBJ_ROOT as defined in LLVM's Makefile.config).
-#
-LLVM_OBJ_ROOT = @LLVM_OBJ@
-
-# Set the directory root of this project's source files
-PROJ_SRC_ROOT := $(subst //,/,@abs_top_srcdir@)
-
-# Set the root directory of this project's object files
-PROJ_OBJ_ROOT := $(subst //,/,@abs_top_builddir@)
-
-# Set the root directory of this project's install prefix
-PROJ_INSTALL_ROOT := @prefix@
-
-# Include LLVM's Master Makefile.
-include $(LLVM_OBJ_ROOT)/Makefile.config
-
-#Set SourceDir for backwards compatbility.
-ifndef SourceDir
-SourceDir=$(PROJ_SRC_DIR)
-endif
diff --git a/television/README.txt b/television/README.txt
deleted file mode 100644
index e983cde..0000000
--- a/television/README.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-LLVM-TV: LLVM Transformation Visualizer
-Written by: Misha Brukman, Tanya Brethour, and Brian Gaeke
-
-LLVM-TV is a tool that can be used to visualize the effects of transformations
-written in the LLVM framework. Compilation units in LLVM have a simple,
-hierarchical structure: a Module contains Functions, which contain BasicBlocks,
-which contain Instructions. At the lowest level of this hierarchy, Instructions
-may reference other BasicBlocks (with branches) or Functions (with calls),
-making the control-flow graphs and call graphs explicit. Our first task is to
-develop an interactive browser for these graphs and hierarchies.
-
-Our target audience is compiler developers working within the LLVM framework,
-who are trying to understand and debug transformations.
-
-Currently, the visualization tool will not reflect dynamic updates
-to the code; rather, it reflects the state of a compilation unit at
-a single instant in time, between transformations. Future work should
-extend this tool to reflect a dynamically updating view of the program as
-a transformation is modifying the code.
-
-How to compile:
-
-1. You must have wxWindows installed on your system, and wx-config has to be
-   in your path.
-   
-   Make absolutely sure that wxwindows's configure picks up the same
-   C++ compiler that you're using for llvm. Otherwise, you may get
-   weird link errors when trying to link the llvm-tv tool.
-
-2. Configure and compile llvm-tv (you need an LLVM source and build trees):
-
-% cd path/to/llvm-tv
-% ./configure --with-llvmsrc=[path] --with-llvmobj=[path]
-   If you're building in llvm/projects/llvm-tv, then you don't need
-   to specify these --with options.
-% gmake
-
-Example of usage:
- 
-% llvm-tv.exe &
-   The .exe is not a typo; this command starts up the visualizer in
-   the background using its wrapper script.
-% opt-snap -debug -licm -snapshot -gcse -snapshot < bytecode-file.bc > /dev/null
-   This runs the llvm optimizer driver with the snapshot pass loaded, using
-   another wrapper script, and makes two snapshots, which should appear
-   in your visualizer.
-
diff --git a/television/autoconf/AutoRegen.sh b/television/autoconf/AutoRegen.sh
deleted file mode 100755
index 6976591..0000000
--- a/television/autoconf/AutoRegen.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/sh
-die () {
-	echo "$@" 1>&2
-	exit 1
-}
-outfile=configure
-configfile=configure.ac
-test -d autoconf && test -f autoconf/$configfile && cd autoconf
-test -f $configfile || die "Can't find 'autoconf' dir; please cd into it first"
-autoconf --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoconf was not detected as being 2.59"
-fi
-aclocal --version | egrep '1\.9\.2' > /dev/null
-if test $? -ne 0 ; then
-  die "Your aclocal was not detected as being 1.9.2"
-fi
-autoheader --version | egrep '2\.59' > /dev/null
-if test $? -ne 0 ; then
-  die "Your autoheader was not detected as being 2.59"
-fi
-libtool --version | grep '1\.5\.10' > /dev/null
-if test $? -ne 0 ; then
-  die "Your libtool was not detected as being 1.5.10"
-fi
-echo ""
-echo "### NOTE: ############################################################"
-echo "### If you get *any* warnings from autoconf below you MUST fix the"
-echo "### scripts in the m4 directory because there are future forward"
-echo "### compatibility or platform support issues at risk. Please do NOT"
-echo "### commit any configure script that was generated with warnings"
-echo "### present. You should get just three 'Regenerating..' lines."
-echo "######################################################################"
-echo ""
-#echo "Regenerating aclocal.m4 with aclocal 1.9.2"
-#cwd=`pwd`
-#aclocal --force -I $cwd/m4 || die "aclocal failed"
-echo "Regenerating configure with autoconf 2.59"
-autoconf --force --warnings=all -o ../$outfile $configfile || die "autoconf failed"
-cd ..
-echo "Regenerating config.h.in with autoheader 2.59"
-#autoheader --warnings=all -I autoconf -I autoconf/m4 autoconf/$configfile || die "autoheader failed"
-exit 0
diff --git a/television/autoconf/aclocal.m4 b/television/autoconf/aclocal.m4
deleted file mode 100644
index e9b9180..0000000
--- a/television/autoconf/aclocal.m4
+++ /dev/null
@@ -1,6168 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-## Copyright 1996, 1997, 1998, 1999, 2000, 2001
-## Free Software Foundation, Inc.
-## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-##
-## This program is free software; you can redistribute it and/or modify
-## it under the terms of the GNU General Public License as published by
-## the Free Software Foundation; either version 2 of the License, or
-## (at your option) any later version.
-##
-## This program is distributed in the hope that it will be useful, but
-## WITHOUT ANY WARRANTY; without even the implied warranty of
-## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-## General Public License for more details.
-##
-## You should have received a copy of the GNU General Public License
-## along with this program; if not, write to the Free Software
-## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-##
-## As a special exception to the GNU General Public License, if you
-## distribute this file as part of a program that contains a
-## configuration script generated by Autoconf, you may include it under
-## the same distribution terms that you use for the rest of that program.
-
-# serial 47 AC_PROG_LIBTOOL
-
-
-# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
-# -----------------------------------------------------------
-# If this macro is not defined by Autoconf, define it here.
-m4_ifdef([AC_PROVIDE_IFELSE],
-         [],
-         [m4_define([AC_PROVIDE_IFELSE],
-	         [m4_ifdef([AC_PROVIDE_$1],
-		           [$2], [$3])])])
-
-
-# AC_PROG_LIBTOOL
-# ---------------
-AC_DEFUN([AC_PROG_LIBTOOL],
-[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
-dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
-dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
-  AC_PROVIDE_IFELSE([AC_PROG_CXX],
-    [AC_LIBTOOL_CXX],
-    [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
-  ])])
-dnl And a similar setup for Fortran 77 support
-  AC_PROVIDE_IFELSE([AC_PROG_F77],
-    [AC_LIBTOOL_F77],
-    [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
-])])
-
-dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
-dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
-dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
-  AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-    [AC_LIBTOOL_GCJ],
-    [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-      [AC_LIBTOOL_GCJ],
-      [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
-	[AC_LIBTOOL_GCJ],
-      [ifdef([AC_PROG_GCJ],
-	     [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([A][M_PROG_GCJ],
-	     [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
-       ifdef([LT_AC_PROG_GCJ],
-	     [define([LT_AC_PROG_GCJ],
-		defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
-])])# AC_PROG_LIBTOOL
-
-
-# _AC_PROG_LIBTOOL
-# ----------------
-AC_DEFUN([_AC_PROG_LIBTOOL],
-[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
-AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/mklib'
-AC_SUBST(LIBTOOL)dnl
-
-# Prevent multiple expansion
-define([AC_PROG_LIBTOOL], [])
-])# _AC_PROG_LIBTOOL
-
-
-# AC_LIBTOOL_SETUP
-# ----------------
-AC_DEFUN([AC_LIBTOOL_SETUP],
-[AC_PREREQ(2.50)dnl
-AC_REQUIRE([AC_ENABLE_SHARED])dnl
-AC_REQUIRE([AC_ENABLE_STATIC])dnl
-AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_LD])dnl
-AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
-AC_REQUIRE([AC_PROG_NM])dnl
-
-AC_REQUIRE([AC_PROG_LN_S])dnl
-AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
-# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-AC_REQUIRE([AC_OBJEXT])dnl
-AC_REQUIRE([AC_EXEEXT])dnl
-dnl
-
-AC_LIBTOOL_SYS_MAX_CMD_LEN
-AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-AC_LIBTOOL_OBJDIR
-
-AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-_LT_AC_PROG_ECHO_BACKSLASH
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e s/^X//'
-[sed_quote_subst='s/\([\\"\\`$\\\\]\)/\\\1/g']
-
-# Same as above, but do not quote variable references.
-[double_quote_subst='s/\([\\"\\`\\\\]\)/\\\1/g']
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-# Constants:
-rm="rm -f"
-
-# Global variables:
-default_ofile=mklib
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except M$VC,
-# which needs '.lib').
-libext=a
-ltmain="$ac_aux_dir/ltmain.sh"
-ofile="$default_ofile"
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-AC_CHECK_TOOL(AR, ar, false)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip, :)
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$AR" && AR=ar
-test -z "$AR_FLAGS" && AR_FLAGS=cru
-test -z "$AS" && AS=as
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-test -z "$LD" && LD=ld
-test -z "$LN_S" && LN_S="ln -s"
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-test -z "$NM" && NM=nm
-test -z "$SED" && SED=sed
-test -z "$OBJDUMP" && OBJDUMP=objdump
-test -z "$RANLIB" && RANLIB=:
-test -z "$STRIP" && STRIP=:
-test -z "$ac_objext" && ac_objext=o
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="\$RANLIB -t \$oldlib~$old_postinstall_cmds"
-    ;;
-  *)
-    old_postinstall_cmds="\$RANLIB \$oldlib~$old_postinstall_cmds"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib"
-fi
-
-# Only perform the check for file, if the check method requires it
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    AC_PATH_MAGIC
-  fi
-  ;;
-esac
-
-AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no)
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-enable_win32_dll=yes, enable_win32_dll=no)
-
-AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-AC_ARG_WITH([pic],
-    [AC_HELP_STRING([--with-pic],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [pic_mode="$withval"],
-    [pic_mode=default])
-test -z "$pic_mode" && pic_mode=default
-
-# Use C for the default configuration in the libtool script
-tagname=
-AC_LIBTOOL_LANG_C_CONFIG
-_LT_AC_TAGCONFIG
-])# AC_LIBTOOL_SETUP
-
-
-# _LT_AC_SYS_COMPILER
-# -------------------
-AC_DEFUN([_LT_AC_SYS_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_AC_SYS_COMPILER
-
-
-# _LT_AC_SYS_LIBPATH_AIX
-# ----------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX],
-[AC_LINK_IFELSE(AC_LANG_PROGRAM,[
-aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`
-# Check for a 64-bit object if we didn't find anything.
-if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0  *\(.*\)$/\1/; p; }
-}'`; fi],[])
-if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
-])# _LT_AC_SYS_LIBPATH_AIX
-
-
-# _LT_AC_SHELL_INIT(ARG)
-# ----------------------
-AC_DEFUN([_LT_AC_SHELL_INIT],
-[ifdef([AC_DIVERSION_NOTICE],
-	     [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)],
-	 [AC_DIVERT_PUSH(NOTICE)])
-$1
-AC_DIVERT_POP
-])# _LT_AC_SHELL_INIT
-
-
-# _LT_AC_PROG_ECHO_BACKSLASH
-# --------------------------
-# Add some code to the start of the generated configure script which
-# will find an echo command which doesn't interpret backslashes.
-AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH],
-[_LT_AC_SHELL_INIT([
-# Check that we are running under the correct shell.
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-case X$ECHO in
-X*--fallback-echo)
-  # Remove one level of quotation (which was required for Make).
-  ECHO=`echo "$ECHO" | sed 's,\\\\\[$]\\[$]0,'[$]0','`
-  ;;
-esac
-
-echo=${ECHO-echo}
-if test "X[$]1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X[$]1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t' ; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell.
-  exec $SHELL "[$]0" --no-reexec ${1+"[$]@"}
-fi
-
-if test "X[$]1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-[$]*
-EOF
-  exit 0
-fi
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-if test -z "$ECHO"; then
-if test "X${echo_test_string+set}" != Xset; then
-# find a string as large as possible, as long as the shell can cope with it
-  for cmd in 'sed 50q "[$]0"' 'sed 20q "[$]0"' 'sed 10q "[$]0"' 'sed 2q "[$]0"' 'echo test'; do
-    # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ...
-    if (echo_test_string="`eval $cmd`") 2>/dev/null &&
-       echo_test_string="`eval $cmd`" &&
-       (test "X$echo_test_string" = "X$echo_test_string") 2>/dev/null
-    then
-      break
-    fi
-  done
-fi
-
-if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-   echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-   test "X$echo_testing_string" = "X$echo_test_string"; then
-  :
-else
-  # The Solaris, AIX, and Digital Unix default echo programs unquote
-  # backslashes.  This makes it impossible to quote backslashes using
-  #   echo "$something" | sed 's/\\/\\\\/g'
-  #
-  # So, first we look for a working echo in the user's PATH.
-
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for dir in $PATH /usr/ucb; do
-    IFS="$lt_save_ifs"
-    if (test -f $dir/echo || test -f $dir/echo$ac_exeext) &&
-       test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      echo="$dir/echo"
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  if test "X$echo" = Xecho; then
-    # We didn't find a better echo, so look for alternatives.
-    if test "X`(print -r '\t') 2>/dev/null`" = 'X\t' &&
-       echo_testing_string=`(print -r "$echo_test_string") 2>/dev/null` &&
-       test "X$echo_testing_string" = "X$echo_test_string"; then
-      # This shell has a builtin print -r that does the trick.
-      echo='print -r'
-    elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
-	 test "X$CONFIG_SHELL" != X/bin/ksh; then
-      # If we have ksh, try running configure again with it.
-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
-      export ORIGINAL_CONFIG_SHELL
-      CONFIG_SHELL=/bin/ksh
-      export CONFIG_SHELL
-      exec $CONFIG_SHELL "[$]0" --no-reexec ${1+"[$]@"}
-    else
-      # Try using printf.
-      echo='printf %s\n'
-      if test "X`($echo '\t') 2>/dev/null`" = 'X\t' &&
-	 echo_testing_string=`($echo "$echo_test_string") 2>/dev/null` &&
-	 test "X$echo_testing_string" = "X$echo_test_string"; then
-	# Cool, printf works
-	:
-      elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($ORIGINAL_CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL
-	export CONFIG_SHELL
-	SHELL="$CONFIG_SHELL"
-	export SHELL
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      elif echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo '\t') 2>/dev/null` &&
-	   test "X$echo_testing_string" = 'X\t' &&
-	   echo_testing_string=`($CONFIG_SHELL "[$]0" --fallback-echo "$echo_test_string") 2>/dev/null` &&
-	   test "X$echo_testing_string" = "X$echo_test_string"; then
-	echo="$CONFIG_SHELL [$]0 --fallback-echo"
-      else
-	# maybe with a smaller string...
-	prev=:
-
-	for cmd in 'echo test' 'sed 2q "[$]0"' 'sed 10q "[$]0"' 'sed 20q "[$]0"' 'sed 50q "[$]0"'; do
-	  if (test "X$echo_test_string" = "X`eval $cmd`") 2>/dev/null
-	  then
-	    break
-	  fi
-	  prev="$cmd"
-	done
-
-	if test "$prev" != 'sed 50q "[$]0"'; then
-	  echo_test_string=`eval $prev`
-	  export echo_test_string
-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "[$]0" ${1+"[$]@"}
-	else
-	  # Oops.  We lost completely, so just stick with echo.
-	  echo=echo
-	fi
-      fi
-    fi
-  fi
-fi
-fi
-
-# Copy echo and quote the copy suitably for passing to libtool from
-# the Makefile, instead of quoting the original, which is used later.
-ECHO=$echo
-if test "X$ECHO" = "X$CONFIG_SHELL [$]0 --fallback-echo"; then
-   ECHO="$CONFIG_SHELL \\\$\[$]0 --fallback-echo"
-fi
-
-AC_SUBST(ECHO)
-])])# _LT_AC_PROG_ECHO_BACKSLASH
-
-
-# _LT_AC_LOCK
-# -----------
-AC_DEFUN([_LT_AC_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-    [AC_HELP_STRING([--disable-libtool-lock],
-	[avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *ELF-32*)
-      HPUX_IA64_MODE="32"
-      ;;
-    *ELF-64*)
-      HPUX_IA64_MODE="64"
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line __oline__ "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-   if test "$lt_cv_prog_gnu_ld" = yes; then
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -melf32bsmip"
-      ;;
-    *N32*)
-      LD="${LD-ld} -melf32bmipn32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -melf64bmip"
-      ;;
-    esac
-   else
-    case `/usr/bin/file conftest.$ac_objext` in
-    *32-bit*)
-      LD="${LD-ld} -32"
-      ;;
-    *N32*)
-      LD="${LD-ld} -n32"
-      ;;
-    *64-bit*)
-      LD="${LD-ld} -64"
-      ;;
-    esac
-   fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case "`/usr/bin/file conftest.o`" in
-    *32-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_i386"
-          ;;
-        ppc64-*linux*)
-          LD="${LD-ld} -m elf32ppclinux"
-          ;;
-        s390x-*linux*)
-          LD="${LD-ld} -m elf_s390"
-          ;;
-        sparc64-*linux*)
-          LD="${LD-ld} -m elf32_sparc"
-          ;;
-      esac
-      ;;
-    *64-bit*)
-      case $host in
-        x86_64-*linux*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        ppc*-*linux*|powerpc*-*linux*)
-          LD="${LD-ld} -m elf64ppc"
-          ;;
-        s390*-*linux*)
-          LD="${LD-ld} -m elf64_s390"
-          ;;
-        sparc*-*linux*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL],
-[*-*-cygwin* | *-*-mingw* | *-*-pw32*)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-  ])
-esac
-
-need_locks="$enable_libtool_lock"
-
-])# _LT_AC_LOCK
-
-
-# AC_LIBTOOL_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-  ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s conftest.err; then
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$5], , :, [$5])
-else
-    ifelse([$6], , :, [$6])
-fi
-])# AC_LIBTOOL_COMPILER_OPTION
-
-
-# AC_LIBTOOL_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                          [ACTION-SUCCESS], [ACTION-FAILURE])
-# ------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([AC_LIBTOOL_LINKER_OPTION],
-[AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   printf "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-     else
-       $2=yes
-     fi
-   fi
-   $rm conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    ifelse([$4], , :, [$4])
-else
-    ifelse([$5], , :, [$5])
-fi
-])# AC_LIBTOOL_LINKER_OPTION
-
-
-# AC_LIBTOOL_SYS_MAX_CMD_LEN
-# --------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN],
-[# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  testring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
- *)
-    # If test is not a shell built-in, we'll probably end up computing a
-    # maximum length that is only half of the actual maximum length, but
-    # we can't tell.
-    while (test "X"`$CONFIG_SHELL [$]0 --fallback-echo "X$testring" 2>/dev/null` \
-	       = "XX$testring") >/dev/null 2>&1 &&
-	    new_result=`expr "X$testring" : ".*" 2>&1` &&
-	    lt_cv_sys_max_cmd_len=$new_result &&
-	    test $i != 17 # 1/2 MB should be enough
-    do
-      i=`expr $i + 1`
-      testring=$testring$testring
-    done
-    testring=
-    # Add a significant safety factor because C++ compilers can tack on massive
-    # amounts of additional arguments before passing them to the linker.
-    # It appears as though 1/2 is a usable value.
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-])# AC_LIBTOOL_SYS_MAX_CMD_LEN
-
-
-# _LT_AC_CHECK_DLFCN
-# --------------------
-AC_DEFUN([_LT_AC_CHECK_DLFCN],
-[AC_CHECK_HEADERS(dlfcn.h)dnl
-])# _LT_AC_CHECK_DLFCN
-
-
-# _LT_AC_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                           ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ------------------------------------------------------------------
-AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<EOF
-[#line __oline__ "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-#ifdef __cplusplus
-extern "C" void exit (int);
-#endif
-
-void fnord() { int i=42;}
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
-      /* dlclose (self); */
-    }
-
-    exit (status);
-}]
-EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_unknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_AC_TRY_DLOPEN_SELF
-
-
-# AC_LIBTOOL_DLOPEN_SELF
-# -------------------
-AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF],
-[AC_REQUIRE([_LT_AC_CHECK_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-   ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-   ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-   ;;
-    
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      LDFLAGS="$LDFLAGS $link_static_flag"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-    	  lt_cv_dlopen_self_static, [dnl
-	  _LT_AC_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-])# AC_LIBTOOL_DLOPEN_SELF
-
-
-# AC_LIBTOOL_PROG_CC_C_O([TAGNAME])
-# ---------------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler
-AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $rm -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   # According to Tom Tromey, Ian Lance Taylor reported there are C compilers
-   # that will create temporary files in the current directory regardless of
-   # the output directory.  Thus, making CWD read-only will cause this test
-   # to fail, enabling locking or at least warning the user not to do parallel
-   # builds.
-   chmod -w .
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:__oline__: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:__oline__: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test ! -s out/conftest.err; then
-       _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w .
-   $rm conftest* out/*
-   rmdir out
-   cd ..
-   rmdir conftest
-   $rm conftest*
-])
-])# AC_LIBTOOL_PROG_CC_C_O
-
-
-# AC_LIBTOOL_SYS_HARD_LINK_LOCKS([TAGNAME])
-# -----------------------------------------
-# Check to see if we can do hard links to lock some files if needed
-AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS],
-[AC_REQUIRE([_LT_AC_LOCK])dnl
-
-hard_links="nottested"
-if test "$_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $rm conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-])# AC_LIBTOOL_SYS_HARD_LINK_LOCKS
-
-
-# AC_LIBTOOL_OBJDIR
-# -----------------
-AC_DEFUN([AC_LIBTOOL_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-])# AC_LIBTOOL_OBJDIR
-
-
-# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH([TAGNAME])
-# ----------------------------------------------
-# Check hardcoding attributes.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_AC_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)" || \
-   test -n "$_LT_AC_TAGVAR(runpath_var $1)" || \
-   test "X$_LT_AC_TAGVAR(hardcode_automatic, $1)"="Xyes" ; then
-
-  # We can hardcode non-existant directories.
-  if test "$_LT_AC_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_AC_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_AC_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_AC_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_AC_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_AC_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_AC_TAGVAR(hardcode_action, $1)" = relink; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-])# AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH
-
-
-# AC_LIBTOOL_SYS_LIB_STRIP
-# ------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP],
-[striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-   darwin*)
-       if test -n "$STRIP" ; then
-         striplib="$STRIP -x"
-         AC_MSG_RESULT([yes])
-       else
-  AC_MSG_RESULT([no])
-fi
-       ;;
-   *)
-  AC_MSG_RESULT([no])
-    ;;
-  esac  
-fi
-])# AC_LIBTOOL_SYS_LIB_STRIP
-
-
-# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER],
-[AC_MSG_CHECKING([dynamic linker characteristics])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-if test "$GCC" = yes; then
-  sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-  if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-  else
-    sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-  fi
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix4* | aix5*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | grep yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  library_names_spec='$libname.ixlibrary $libname.a'
-  # Create ${libname}_ixlibrary.a entries in /sys/libs.
-  finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$echo "X$lib" | $Xsed -e '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $rm /sys/libs/${libname}_ixlibrary.a; $show "(cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a)"; (cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a) || exit 1; done'
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi4*)
-  version_type=linux
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32*)
-  version_type=windows
-  shrext=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$host_os in
-  yes,cygwin* | yes,mingw* | yes,pw32*)
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i;echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $rm \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec="/lib /lib/w32api /usr/lib /usr/local/lib"
-      ;;
-    mingw*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"`
-      if echo "$sys_lib_search_path_spec" | [grep ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH printed by
-        # mingw gcc, but we are running on Cygwin. Gcc prints its search
-        # path with ; separators, and with drive letters. We can handle the
-        # drive letters (cygwin fileutils understands them), so leave them,
-        # especially as we might pass files found there to a mingw objdump,
-        # which wouldn't understand a cygwinified path. Ahh.
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED  -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    ;;
-
-  *)
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    ;;
-  esac
-  dynamic_linker='Win32 ld.exe'
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  # FIXME: Relying on posixy $() will cause problems for
-  #        cross-compilation, but unfortunately the echo tests do not
-  #        yet detect zsh echo's removal of \ escapes.
-  library_names_spec='${libname}${release}${versuffix}$shared_ext ${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext='$(test .$module = .yes && echo .so || echo .dylib)'
-  # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same.
-  if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-  sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"`
-  fi
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd1*)
-  dynamic_linker=no
-  ;;
-
-freebsd*)
-  objformat=`test -x /usr/bin/objformat && /usr/bin/objformat || echo aout`
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  *) # from 3.2 on
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case "$host_cpu" in
-  ia64*)
-    shrext='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-   hppa*64*)
-     shrext='.sl'
-     hardcode_into_libs=yes
-     dynamic_linker="$host_os dld.sl"
-     shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-     shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-     library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-     soname_spec='${libname}${release}${shared_ext}$major'
-     sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-     sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-     ;;
-   *)
-    shrext='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555.
-  postinstall_cmds='chmod 555 $lib'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-nto-qnx)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-openbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-sco3.2v5*)
-  version_type=osf
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-solaris*)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      export_dynamic_flag_spec='${wl}-Blargedynsym'
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-uts4*)
-  version_type=linux
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-])# AC_LIBTOOL_SYS_DYNAMIC_LINKER
-
-
-# _LT_AC_TAGCONFIG
-# ----------------
-AC_DEFUN([_LT_AC_TAGCONFIG],
-[AC_ARG_WITH([tags],
-    [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@],
-        [include additional configurations @<:@automatic@:>@])],
-    [tagnames="$withval"])
-
-if test -f "$ltmain" && test -n "$tagnames"; then
-  if test ! -f "${ofile}"; then
-    AC_MSG_WARN([output file `$ofile' does not exist])
-  fi
-
-  if test -z "$LTCC"; then
-    eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
-    if test -z "$LTCC"; then
-      AC_MSG_WARN([output file `$ofile' does not look like a libtool script])
-    else
-      AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile'])
-    fi
-  fi
-
-  # Extract list of available tagged configurations in $ofile.
-  # Note that this assumes the entire list is on one line.
-  available_tags=`grep "^available_tags=" "${ofile}" | $SED -e 's/available_tags=\(.*$\)/\1/' -e 's/\"//g'`
-
-  lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-  for tagname in $tagnames; do
-    IFS="$lt_save_ifs"
-    # Check whether tagname contains only valid characters
-    case `$echo "X$tagname" | $Xsed -e 's:[[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]]::g'` in
-    "") ;;
-    *)  AC_MSG_ERROR([invalid tag name: $tagname])
-	;;
-    esac
-
-    if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
-    then
-      AC_MSG_ERROR([tag name \"$tagname\" already exists])
-    fi
-
-    # Update the list of available tags.
-    if test -n "$tagname"; then
-      echo appending configuration tag \"$tagname\" to $ofile
-
-      case $tagname in
-      CXX)
-	if test -n "$CXX" && test "X$CXX" != "Xno"; then
-	  AC_LIBTOOL_LANG_CXX_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      F77)
-	if test -n "$F77" && test "X$F77" != "Xno"; then
-	  AC_LIBTOOL_LANG_F77_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      GCJ)
-	if test -n "$GCJ" && test "X$GCJ" != "Xno"; then
-	  AC_LIBTOOL_LANG_GCJ_CONFIG
-	else
-	  tagname=""
-	fi
-	;;
-
-      RC)
-	AC_LIBTOOL_LANG_RC_CONFIG
-	;;
-
-      *)
-	AC_MSG_ERROR([Unsupported tag name: $tagname])
-	;;
-      esac
-
-      # Append the new tag name to the list of available tags.
-      if test -n "$tagname" ; then
-      available_tags="$available_tags $tagname"
-    fi
-    fi
-  done
-  IFS="$lt_save_ifs"
-
-  # Now substitute the updated list of available tags.
-  if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then
-    mv "${ofile}T" "$ofile"
-    chmod +x "$ofile"
-  else
-    rm -f "${ofile}T"
-    AC_MSG_ERROR([unable to update list of available tagged configurations.])
-  fi
-fi
-])# _LT_AC_TAGCONFIG
-
-
-# AC_LIBTOOL_DLOPEN
-# -----------------
-# enable checks for dlopen support
-AC_DEFUN([AC_LIBTOOL_DLOPEN],
- [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_DLOPEN
-
-
-# AC_LIBTOOL_WIN32_DLL
-# --------------------
-# declare package support for building win32 dll's
-AC_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_BEFORE([$0], [AC_LIBTOOL_SETUP])
-])# AC_LIBTOOL_WIN32_DLL
-
-
-# AC_ENABLE_SHARED([DEFAULT])
-# ---------------------------
-# implement the --enable-shared flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_SHARED],
-[define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([shared],
-    [AC_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]AC_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]AC_ENABLE_SHARED_DEFAULT)
-])# AC_ENABLE_SHARED
-
-
-# AC_DISABLE_SHARED
-# -----------------
-#- set the default shared flag to --disable-shared
-AC_DEFUN([AC_DISABLE_SHARED],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_SHARED(no)
-])# AC_DISABLE_SHARED
-
-
-# AC_ENABLE_STATIC([DEFAULT])
-# ---------------------------
-# implement the --enable-static flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_STATIC],
-[define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([static],
-    [AC_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]AC_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]AC_ENABLE_STATIC_DEFAULT)
-])# AC_ENABLE_STATIC
-
-
-# AC_DISABLE_STATIC
-# -----------------
-# set the default static flag to --disable-static
-AC_DEFUN([AC_DISABLE_STATIC],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_STATIC(no)
-])# AC_DISABLE_STATIC
-
-
-# AC_ENABLE_FAST_INSTALL([DEFAULT])
-# ---------------------------------
-# implement the --enable-fast-install flag
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-AC_DEFUN([AC_ENABLE_FAST_INSTALL],
-[define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
-AC_ARG_ENABLE([fast-install],
-    [AC_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]AC_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]AC_ENABLE_FAST_INSTALL_DEFAULT)
-])# AC_ENABLE_FAST_INSTALL
-
-
-# AC_DISABLE_FAST_INSTALL
-# -----------------------
-# set the default to --disable-fast-install
-AC_DEFUN([AC_DISABLE_FAST_INSTALL],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-AC_ENABLE_FAST_INSTALL(no)
-])# AC_DISABLE_FAST_INSTALL
-
-
-# AC_LIBTOOL_PICMODE([MODE])
-# --------------------------
-# implement the --with-pic flag
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-AC_DEFUN([AC_LIBTOOL_PICMODE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-pic_mode=ifelse($#,1,$1,default)
-])# AC_LIBTOOL_PICMODE
-
-
-# AC_PROG_EGREP
-# -------------
-# This is predefined starting with Autoconf 2.54, so this conditional
-# definition can be removed once we require Autoconf 2.54 or later.
-m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP],
-[AC_CACHE_CHECK([for egrep], [ac_cv_prog_egrep],
-   [if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
-    fi])
- EGREP=$ac_cv_prog_egrep
- AC_SUBST([EGREP])
-])])
-
-
-# AC_PATH_TOOL_PREFIX
-# -------------------
-# find a file program which can recognise shared library
-AC_DEFUN([AC_PATH_TOOL_PREFIX],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="ifelse([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex="`expr \"$deplibs_check_method\" : \"file_magic \(.*\)\"`"
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool@gnu.org
-
-EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-])# AC_PATH_TOOL_PREFIX
-
-
-# AC_PATH_MAGIC
-# -------------
-# find a file program which can recognise a shared library
-AC_DEFUN([AC_PATH_MAGIC],
-[AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# AC_PATH_MAGIC
-
-
-# AC_PROG_LD
-# ----------
-# find the path to the GNU or non-GNU linker
-AC_DEFUN([AC_PROG_LD],
-[AC_ARG_WITH([gnu-ld],
-    [AC_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])
-AC_REQUIRE([LT_AC_PROG_SED])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| $SED 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`echo $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-AC_PROG_LD_GNU
-])# AC_PROG_LD
-
-
-# AC_PROG_LD_GNU
-# --------------
-AC_DEFUN([AC_PROG_LD_GNU],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `"$LD" -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# AC_PROG_LD_GNU
-
-
-# AC_PROG_LD_RELOAD_FLAG
-# ----------------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-AC_DEFUN([AC_PROG_LD_RELOAD_FLAG],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-])# AC_PROG_LD_RELOAD_FLAG
-
-
-# AC_DEPLIBS_CHECK_METHOD
-# -----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-AC_DEFUN([AC_DEPLIBS_CHECK_METHOD],
-[AC_CACHE_CHECK([how to recognise dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix4* | aix5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi4*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin* | mingw* | pw32*)
-  # win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='win32_libid'
-  ;;
-
-darwin* | rhapsody*)
-  # this will be overwritten by pass_all, but leave it in just in case
-  lt_cv_deplibs_check_method='file_magic Mach-O dynamically linked shared library'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  case "$host_os" in
-  rhapsody* | darwin1.[[012]])
-    lt_cv_file_magic_test_file=`/System/Library/Frameworks/System.framework/System`
-    ;;
-  *) # Darwin 1.3 on
-    lt_cv_file_magic_test_file='/usr/lib/libSystem.dylib'
-    ;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case "$host_cpu" in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]].[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-  irix5* | nonstopux*)
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF 32-bit MSB dynamic lib MIPS - version 1"
-    ;;
-  *)
-    case $LD in
-    *-32|*"-32 ") libmagic=32-bit;;
-    *-n32|*"-n32 ") libmagic=N32;;
-    *-64|*"-64 ") libmagic=64-bit;;
-    *) libmagic=never-match;;
-    esac
-    # this will be overridden with pass_all, but let us keep it just in case
-    lt_cv_deplibs_check_method="file_magic ELF ${libmagic} MSB mips-[[1234]] dynamic lib MIPS - version 1"
-    ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib${libsuff}/libc.so*`
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be Linux ELF.
-linux*)
-  case $host_cpu in
-  alpha* | hppa* | i*86 | ia64* | m68* | mips | mipsel | powerpc* | sparc* | s390* | sh*)
-    lt_cv_deplibs_check_method=pass_all ;;
-  *)
-    # glibc up to 2.1.1 does not perform some relocations on ARM
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' ;;
-  esac
-  lt_cv_file_magic_test_file=`echo /lib/libc.so* /lib/libc-*.so`
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-nto-qnx)
-  lt_cv_deplibs_check_method=unknown
-  ;;
-
-openbsd*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB shared object'
-  else
-    lt_cv_deplibs_check_method='file_magic OpenBSD.* shared library'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  # this will be overridden with pass_all, but let us keep it just in case
-  lt_cv_deplibs_check_method='file_magic COFF format alpha shared library'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sco3.2v5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  lt_cv_file_magic_test_file=/lib/libc.so
-  ;;
-
-sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-])# AC_DEPLIBS_CHECK_METHOD
-
-
-# AC_PROG_NM
-# ----------
-# find the path to a BSD-compatible name lister
-AC_DEFUN([AC_PROG_NM],
-[AC_CACHE_CHECK([for BSD-compatible nm], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    tmp_nm="$ac_dir/${ac_tool_prefix}nm"
-    if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-      # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
-      #   nm: unknown option "B" ignored
-      # Tru64's nm complains that /dev/null is an invalid object file
-      case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-      */dev/null* | *'Invalid file or object type'*)
-	lt_cv_path_NM="$tmp_nm -B"
-	break
-        ;;
-      *)
-	case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	*/dev/null*)
-	  lt_cv_path_NM="$tmp_nm -p"
-	  break
-	  ;;
-	*)
-	  lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	  continue # so that we can try to find one that supports BSD flags
-	  ;;
-	esac
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-  test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
-fi])
-NM="$lt_cv_path_NM"
-])# AC_PROG_NM
-
-
-# AC_CHECK_LIBM
-# -------------
-# check for math library
-AC_DEFUN([AC_CHECK_LIBM],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-])# AC_CHECK_LIBM
-
-
-# AC_LIBLTDL_CONVENIENCE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl convenience library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-convenience to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided, it is assumed to be `libltdl'.  LIBLTDL will
-# be prefixed with '${top_builddir}/' and LTDLINCL will be prefixed with
-# '${top_srcdir}/' (note the single quotes!).  If your package is not
-# flat and you're not using automake, define top_builddir and
-# top_srcdir appropriately in the Makefiles.
-AC_DEFUN([AC_LIBLTDL_CONVENIENCE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  case $enable_ltdl_convenience in
-  no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
-  "") enable_ltdl_convenience=yes
-      ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
-  esac
-  LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdlc.la
-  LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_CONVENIENCE
-
-
-# AC_LIBLTDL_INSTALLABLE([DIRECTORY])
-# -----------------------------------
-# sets LIBLTDL to the link flags for the libltdl installable library and
-# LTDLINCL to the include flags for the libltdl header and adds
-# --enable-ltdl-install to the configure arguments.  Note that LIBLTDL
-# and LTDLINCL are not AC_SUBSTed, nor is AC_CONFIG_SUBDIRS called.  If
-# DIRECTORY is not provided and an installed libltdl is not found, it is
-# assumed to be `libltdl'.  LIBLTDL will be prefixed with '${top_builddir}/'
-# and LTDLINCL will be prefixed with '${top_srcdir}/' (note the single
-# quotes!).  If your package is not flat and you're not using automake,
-# define top_builddir and top_srcdir appropriately in the Makefiles.
-# In the future, this macro may have to be called after AC_PROG_LIBTOOL.
-AC_DEFUN([AC_LIBLTDL_INSTALLABLE],
-[AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
-  AC_CHECK_LIB(ltdl, lt_dlinit,
-  [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
-  [if test x"$enable_ltdl_install" = xno; then
-     AC_MSG_WARN([libltdl not installed, but installation disabled])
-   else
-     enable_ltdl_install=yes
-   fi
-  ])
-  if test x"$enable_ltdl_install" = x"yes"; then
-    ac_configure_args="$ac_configure_args --enable-ltdl-install"
-    LIBLTDL='${top_builddir}/'ifelse($#,1,[$1],['libltdl'])/libltdl.la
-    LTDLINCL='-I${top_srcdir}/'ifelse($#,1,[$1],['libltdl'])
-  else
-    ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
-    LIBLTDL="-lltdl"
-    LTDLINCL=
-  fi
-  # For backwards non-gettext consistent compatibility...
-  INCLTDL="$LTDLINCL"
-])# AC_LIBLTDL_INSTALLABLE
-
-
-# AC_LIBTOOL_CXX
-# --------------
-# enable support for C++ libraries
-AC_DEFUN([AC_LIBTOOL_CXX],
-[AC_REQUIRE([_LT_AC_LANG_CXX])
-])# AC_LIBTOOL_CXX
-
-
-# _LT_AC_LANG_CXX
-# ---------------
-AC_DEFUN([_LT_AC_LANG_CXX],
-[AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,CXX" | sed 's/^,//'`])
-])# _LT_AC_LANG_CXX
-
-
-# AC_LIBTOOL_F77
-# --------------
-# enable support for Fortran 77 libraries
-AC_DEFUN([AC_LIBTOOL_F77],
-[AC_REQUIRE([_LT_AC_LANG_F77])
-])# AC_LIBTOOL_F77
-
-
-# _LT_AC_LANG_F77
-# ---------------
-AC_DEFUN([_LT_AC_LANG_F77],
-[AC_REQUIRE([AC_PROG_F77])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,F77" | sed 's/^,//'`])
-])# _LT_AC_LANG_F77
-
-
-# AC_LIBTOOL_GCJ
-# --------------
-# enable support for GCJ libraries
-AC_DEFUN([AC_LIBTOOL_GCJ],
-[AC_REQUIRE([_LT_AC_LANG_GCJ])
-])# AC_LIBTOOL_GCJ
-
-
-# _LT_AC_LANG_GCJ
-# ---------------
-AC_DEFUN([_LT_AC_LANG_GCJ],
-[AC_PROVIDE_IFELSE([AC_PROG_GCJ],[],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],[],
-    [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],[],
-      [ifdef([AC_PROG_GCJ],[AC_REQUIRE([AC_PROG_GCJ])],
-	 [ifdef([A][M_PROG_GCJ],[AC_REQUIRE([A][M_PROG_GCJ])],
-	   [AC_REQUIRE([A][C_PROG_GCJ_OR_A][M_PROG_GCJ])])])])])])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,GCJ" | sed 's/^,//'`])
-])# _LT_AC_LANG_GCJ
-
-
-# AC_LIBTOOL_RC
-# --------------
-# enable support for Windows resource files
-AC_DEFUN([AC_LIBTOOL_RC],
-[AC_REQUIRE([LT_AC_PROG_RC])
-_LT_AC_SHELL_INIT([tagnames=`echo "$tagnames,RC" | sed 's/^,//'`])
-])# AC_LIBTOOL_RC
-
-
-# AC_LIBTOOL_LANG_C_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG], [_LT_AC_LANG_C_CONFIG])
-AC_DEFUN([_LT_AC_LANG_C_CONFIG],
-[lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}\n'
-
-_LT_AC_SYS_COMPILER
-
-#
-# Check for any special shared library compilation flags.
-#
-_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)=
-if test "$GCC" = no; then
-  case $host_os in
-  sco3.2v5*)
-    _LT_AC_TAGVAR(lt_prog_cc_shlib, $1)='-belf'
-    ;;
-  esac
-fi
-if test -n "$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)"; then
-  AC_MSG_WARN([`$CC' requires `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to build shared libraries])
-  if echo "$old_CC $old_CFLAGS " | grep "[[ 	]]$]_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)[[[ 	]]" >/dev/null; then :
-  else
-    AC_MSG_WARN([add `$_LT_AC_TAGVAR(lt_prog_cc_shlib, $1)' to the CC or CFLAGS env variable and reconfigure])
-    _LT_AC_TAGVAR(lt_cv_prog_cc_can_build_shared, $1)=no
-  fi
-fi
-
-
-#
-# Check to make sure the static flag actually works.
-#
-AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $_LT_AC_TAGVAR(lt_prog_compiler_static, $1) works],
-  _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1),
-  $_LT_AC_TAGVAR(lt_prog_compiler_static, $1),
-  [],
-  [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=])
-
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-# Report which librarie types wil actually be built
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-
-aix4*)
-  if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-    test "$enable_shared" = yes && enable_static=no
-  fi
-  ;;
-  darwin* | rhapsody*)
-  if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    # FIXME: Relying on posixy $() will cause problems for
-    #        cross-compilation, but unfortunately the echo tests do not
-    #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
-    #	       `"' quotes if we put them in here... so don't!
-		output_verbose_link_cmd='echo'
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring'
-    _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-		  _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-		  _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    fi
-    ;;  
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_C_CONFIG
-
-
-# AC_LIBTOOL_LANG_CXX_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG], [_LT_AC_LANG_CXX_CONFIG(CXX)])
-AC_DEFUN([_LT_AC_LANG_CXX_CONFIG],
-[AC_LANG_PUSH(C++)
-AC_REQUIRE([AC_PROG_CXX])
-AC_REQUIRE([AC_PROG_CXXCPP])
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Dependencies to place before and after the object being linked:
-_LT_AC_TAGVAR(predep_objects, $1)=
-_LT_AC_TAGVAR(postdep_objects, $1)=
-_LT_AC_TAGVAR(predeps, $1)=
-_LT_AC_TAGVAR(postdeps, $1)=
-_LT_AC_TAGVAR(compiler_lib_search_path, $1)=
-
-# Source file extension for C++ test sources.
-ac_ext=cc
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_LD=$LD
-lt_save_GCC=$GCC
-GCC=$GXX
-lt_save_with_gnu_ld=$with_gnu_ld
-lt_save_path_LD=$lt_cv_path_LD
-if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-  lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-else
-  unset lt_cv_prog_gnu_ld
-fi
-if test -n "${lt_cv_path_LDCXX+set}"; then
-  lt_cv_path_LD=$lt_cv_path_LDCXX
-else
-  unset lt_cv_path_LD
-fi
-test -z "${LDCXX+set}" || LD=$LDCXX
-CC=${CXX-"c++"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-# We don't want -fno-exception wen compiling C++ code, so set the
-# no_builtin_flag separately
-if test "$GXX" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-else
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-fi
-
-if test "$GXX" = yes; then
-  # Set up default GNU C++ configuration
-
-  AC_PROG_LD
-
-  # Check if GNU C++ uses GNU ld as the underlying linker, since the
-  # archiving commands below assume that GNU ld is being used.
-  if test "$with_gnu_ld" = yes; then
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-    #     investigate it a little bit more. (MM)
-    wlarc='${wl}'
-
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if eval "`$CC -print-prog-name=ld` --help 2>&1" | \
-	grep 'no-whole-archive' > /dev/null; then
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    with_gnu_ld=no
-    wlarc=
-
-    # A generic and very simple default shared library creation
-    # command for GNU C++ for the case where it uses the native
-    # linker, instead of GNU ld.  If possible, this setting should
-    # overridden to take advantage of the native linker features on
-    # the platform it is being used on.
-    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-  fi
-
-  # Commands to make compiler produce verbose output that lists
-  # what "hidden" libraries, object files and flags are used when
-  # linking a shared library.
-  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-else
-  GXX=no
-  with_gnu_ld=no
-  wlarc=
-fi
-
-# PORTME: fill in a description of your system's C++ link characteristics
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-case $host_os in
-  aix3*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  aix4* | aix5*)
-    if test "$host_cpu" = ia64; then
-      # On IA64, the linker does run time linking by default, so we don't
-      # have to do anything special.
-      aix_use_runtimelinking=no
-      exp_sym_flag='-Bexport'
-      no_entry_flag=""
-    else
-      aix_use_runtimelinking=no
-
-      # Test if we are trying to use run time linking or normal
-      # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-      # need to do runtime linking.
-      case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-	for ld_flag in $LDFLAGS; do
-	  case $ld_flag in
-	  *-brtl*)
-	    aix_use_runtimelinking=yes
-	    break
-	    ;;
-	  esac
-	done
-      esac
-
-      exp_sym_flag='-bexport'
-      no_entry_flag='-bnoentry'
-    fi
-
-    # When large executables or shared objects are built, AIX ld can
-    # have problems creating the table of contents.  If linking a library
-    # or program results in "error TOC overflow" add -mminimal-toc to
-    # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-    # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-    _LT_AC_TAGVAR(archive_cmds, $1)=''
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-    if test "$GXX" = yes; then
-      case $host_os in aix4.[012]|aix4.[012].*)
-      # We only want to do this on AIX 4.2 and lower, the check
-      # below for broken collect2 doesn't work under 4.3+
-	collect2name=`${CC} -print-prog-name=collect2`
-	if test -f "$collect2name" && \
-	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	then
-	  # We have reworked collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	else
-	  # We have old collect2
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	fi
-      esac
-      shared_flag='-shared'
-    else
-      # not using gcc
-      if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	shared_flag='-G'
-      else
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag='${wl}-G'
-	else
-	  shared_flag='${wl}-bM:SRE'
-	fi
-      fi
-    fi
-
-    # It seems that -bexpall does not export symbols beginning with
-    # underscore (_), so it is better to generate a list of symbols to export.
-    _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-    if test "$aix_use_runtimelinking" = yes; then
-      # Warning - without using the other runtime loading flags (-brtl),
-      # -berok will link without error, but may produce a broken library.
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-      # Determine the default libpath from the value encoded in an empty executable.
-      _LT_AC_SYS_LIBPATH_AIX
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-     else
-      if test "$host_cpu" = ia64; then
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-      else
-	# Determine the default libpath from the value encoded in an empty executable.
-	_LT_AC_SYS_LIBPATH_AIX
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	# Warning - without using the other run time loading flags,
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	# -bexpall does not export symbols beginning with underscore (_)
-	_LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	# Exported symbols can be pulled into shared objects from archives
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	# This is similar to how AIX traditionally builds it's shared libraries.
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-      fi
-    fi
-    ;;
-  chorus*)
-    case $cc_basename in
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-
-  cygwin* | mingw* | pw32*)
-    # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-    # as there is no search path for DLLs.
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-    _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-    _LT_AC_TAGVAR(always_export_symbols, $1)=no
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-    if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-      # If the export-symbols file already is a .def file (1st line
-      # is EXPORTS), use it as is; otherwise, prepend...
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	cp $export_symbols $output_objdir/$soname.def;
-      else
-	echo EXPORTS > $output_objdir/$soname.def;
-	cat $export_symbols >> $output_objdir/$soname.def;
-      fi~
-      $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-    else
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    fi
-  ;;
-
-  darwin* | rhapsody*)
-   if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case "$host_os" in
-    rhapsody* | darwin1.[[012]])
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-      ;;
-    *) # Darwin 1.3 on
-      test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-      ;;
-    esac
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle ${wl}-bind_at_load $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-
-    # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      else
-        _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      fi
-        _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=no
-    _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-    _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-    _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-   fi 
-    ;;
-
-  dgux*)
-    case $cc_basename in
-      ec++)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      ghcx)
-	# Green Hills C++ Compiler
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  freebsd[12]*)
-    # C++ shared libraries reported to be fairly broken before switch to ELF
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  freebsd-elf*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  freebsd*)
-    # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-    # conventions
-    _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-    ;;
-  gnu*)
-    ;;
-  hpux9*)
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-    _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-    _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				# but as the default
-				# location of the library.
-
-    case $cc_basename in
-    CC)
-      # FIXME: insert proper C++ library support
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    aCC)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      #
-      # There doesn't appear to be a way to prevent this compiler from
-      # explicitly linking system object files so we need to strip them
-      # from the output so that they don't get included in the library
-      # dependencies.
-      output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | egrep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-      ;;
-    *)
-      if test "$GXX" = yes; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-        # FIXME: insert proper C++ library support
-        _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-    ;;
-  hpux10*|hpux11*)
-    if test $with_gnu_ld = no; then
-      case "$host_cpu" in
-      hppa*64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-        ;;
-      ia64*)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-        ;;
-      *)
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        ;;
-      esac
-    fi
-    case "$host_cpu" in
-    hppa*64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-    ia64*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    *)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					      # but as the default
-					      # location of the library.
-      ;;
-    esac
-
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      aCC)
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	  ;;
-	esac
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | grep "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test $with_gnu_ld = no; then
-	    case "$host_cpu" in
-	    ia64*|hppa*64*)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $linker_flags $libobjs $deplibs'
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      ;;
-	    esac
-	  fi
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  irix5* | irix6*)
-    case $cc_basename in
-      CC)
-	# SGI C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	# Archives containing C++ object files must be created using
-	# "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	;;
-      *)
-	if test "$GXX" = yes; then
-	  if test "$with_gnu_ld" = no; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-	  else
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` -o $lib'
-	  fi
-	fi
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-	;;
-    esac
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-    ;;
-  linux*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | grep "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	;;
-      icpc)
-	# Intel C++
-	with_gnu_ld=yes
-	_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	;;
-      cxx)
-	# Compaq C++
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	runpath_var=LD_RUN_PATH
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-    esac
-    ;;
-  lynxos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  m88k*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  mvs*)
-    case $cc_basename in
-      cxx)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  netbsd*)
-    if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-    fi
-    # Workaround some broken pre-1.5 toolchains
-    output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-    ;;
-  osf3*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && echo ${wl}-set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  osf4* | osf5*)
-    case $cc_basename in
-      KCC)
-	# Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	# KCC will only create a shared library if the output file
-	# ends with ".so" (or ".sl" for HP-UX), so rename the library
-	# to its proper name (with version) after linking.
-	_LT_AC_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Archives containing C++ object files must be created using
-	# the KAI C++ compiler.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs'
-	;;
-      RCC)
-	# Rational C++ 2.4.1
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      cxx)
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	  echo "-hidden">> $lib.exp~
-	  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname -Wl,-input -Wl,$lib.exp  `test -n "$verstring" && echo -set_version	$verstring` -update_registry $objdir/so_locations -o $lib~
-	  $rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld" | grep -v "ld:"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-	;;
-      *)
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	 _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${objdir}/so_locations -o $lib'
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	  # Commands to make compiler produce verbose output that lists
-	  # what "hidden" libraries, object files and flags are used when
-	  # linking a shared library.
-	  output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "\-L"'
-
-	else
-	  # FIXME: insert proper C++ library support
-	  _LT_AC_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-    esac
-    ;;
-  psos*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  sco*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    case $cc_basename in
-      CC)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  sunos4*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.x
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      lcc)
-	# Lucid
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  solaris*)
-    case $cc_basename in
-      CC)
-	# Sun C++ 4.2, 5.x and Centerline C++
-	_LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -nolib -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	$CC -G${allow_undefined_flag} -nolib ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	case $host_os in
-	  solaris2.[0-5] | solaris2.[0-5].*) ;;
-	  *)
-	    # The C++ compiler is used as linker so we must use $wl
-	    # flag to pass the commands to the underlying system
-	    # linker.
-	    # Supported since Solaris 2.6 (maybe 2.5.1?)
-	    _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	    ;;
-	esac
-	_LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-	# Commands to make compiler produce verbose output that lists
-	# what "hidden" libraries, object files and flags are used when
-	# linking a shared library.
-	#
-	# There doesn't appear to be a way to prevent this compiler from
-	# explicitly linking system object files so we need to strip them
-	# from the output so that they don't get included in the library
-	# dependencies.
-	output_verbose_link_cmd='templist=`$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep "\-[[LR]]"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list'
-
-	# Archives containing C++ object files must be created using
-	# "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	# necessary to make sure instantiated templates are included
-	# in the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	;;
-      gcx)
-	# Green Hills C++ Compiler
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	# The C++ compiler must be used to create the archive.
-	_LT_AC_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	;;
-      *)
-	# GNU C++ compiler with Solaris linker
-	if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	  if $CC --version | grep -v '^2\.7' > /dev/null; then
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  else
-	    # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	    # platform.
-	    _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	    _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-		$CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$rm $lib.exp'
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    output_verbose_link_cmd="$CC -G $CFLAGS -v conftest.$objext 2>&1 | grep \"\-L\""
-	  fi
-
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	fi
-	;;
-    esac
-    ;;
-  sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[[78]]* | unixware7*)
-    _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-    ;;
-  tandem*)
-    case $cc_basename in
-      NCC)
-	# NonStop-UX NCC 3.20
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-      *)
-	# FIXME: insert proper C++ library support
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	;;
-    esac
-    ;;
-  vxworks*)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-  *)
-    # FIXME: insert proper C++ library support
-    _LT_AC_TAGVAR(ld_shlibs, $1)=no
-    ;;
-esac
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$GXX"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_POSTDEP_PREDEP($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC=$lt_save_CC
-LDCXX=$LD
-LD=$lt_save_LD
-GCC=$lt_save_GCC
-with_gnu_ldcxx=$with_gnu_ld
-with_gnu_ld=$lt_save_with_gnu_ld
-lt_cv_path_LDCXX=$lt_cv_path_LD
-lt_cv_path_LD=$lt_save_path_LD
-lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-])# AC_LIBTOOL_LANG_CXX_CONFIG
-
-# AC_LIBTOOL_POSTDEP_PREDEP([TAGNAME])
-# ------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-ifelse([$1],[],[cat > conftest.$ac_ext <<EOF
-int a;
-void foo (void) { a = 0; }
-EOF
-],[$1],[CXX],[cat > conftest.$ac_ext <<EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-EOF
-],[$1],[F77],[cat > conftest.$ac_ext <<EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-EOF
-],[$1],[GCJ],[cat > conftest.$ac_ext <<EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-EOF
-])
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  # The `*' in the case matches for architectures that use `case' in
-  # $output_verbose_cmd can trigger glob expansion during the loop
-  # eval without this substitution.
-  output_verbose_link_cmd="`$echo \"X$output_verbose_link_cmd\" | $Xsed -e \"$no_glob_subst\"`"
-
-  for p in `eval $output_verbose_link_cmd`; do
-    case $p in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" \
-	  || test $p = "-R"; then
-	 prev=$p
-	 continue
-       else
-	 prev=
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 case $p in
-	 -L* | -R*)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_AC_TAGVAR(compiler_lib_search_path, $1)="${_LT_AC_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdeps, $1)"; then
-	   _LT_AC_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_AC_TAGVAR(postdeps, $1)="${_LT_AC_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       ;;
-
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_AC_TAGVAR(predep_objects, $1)"; then
-	   _LT_AC_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(predep_objects, $1)="$_LT_AC_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_AC_TAGVAR(postdep_objects, $1)"; then
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_AC_TAGVAR(postdep_objects, $1)="$_LT_AC_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$rm -f confest.$objext
-
-case " $_LT_AC_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
-])# AC_LIBTOOL_POSTDEP_PREDEP
-
-# AC_LIBTOOL_LANG_F77_CONFIG
-# ------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG], [_LT_AC_LANG_F77_CONFIG(F77)])
-AC_DEFUN([_LT_AC_LANG_F77_CONFIG],
-[AC_REQUIRE([AC_PROG_F77])
-AC_LANG_PUSH(Fortran 77)
-
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_AC_TAGVAR(allow_undefined_flag, $1)=
-_LT_AC_TAGVAR(always_export_symbols, $1)=no
-_LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_direct, $1)=no
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-_LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-_LT_AC_TAGVAR(hardcode_automatic, $1)=no
-_LT_AC_TAGVAR(module_cmds, $1)=
-_LT_AC_TAGVAR(module_expsym_cmds, $1)=
-_LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_AC_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_AC_TAGVAR(no_undefined_flag, $1)=
-_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="      subroutine t\n      return\n      end\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="      program t\n      end\n"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${F77-"f77"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-cc_basename=`$echo X"$compiler" | $Xsed -e 's%^.*/%%'`
-
-AC_MSG_CHECKING([if libtool supports shared libraries])
-AC_MSG_RESULT([$can_build_shared])
-
-AC_MSG_CHECKING([whether to build shared libraries])
-test "$can_build_shared" = "no" && enable_shared=no
-
-# On AIX, shared libraries and static libraries use the same namespace, and
-# are all built from PIC.
-case "$host_os" in
-aix3*)
-  test "$enable_shared" = yes && enable_static=no
-  if test -n "$RANLIB"; then
-    archive_cmds="$archive_cmds~\$RANLIB \$lib"
-    postinstall_cmds='$RANLIB $lib'
-  fi
-  ;;
-aix4*)
-  test "$enable_shared" = yes && enable_static=no
-  ;;
-esac
-AC_MSG_RESULT([$enable_shared])
-
-AC_MSG_CHECKING([whether to build static libraries])
-# Make sure either enable_shared or enable_static is yes.
-test "$enable_shared" = yes || enable_static=yes
-AC_MSG_RESULT([$enable_static])
-
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_AC_TAGVAR(GCC, $1)="$G77"
-_LT_AC_TAGVAR(LD, $1)="$LD"
-
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_POP
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_F77_CONFIG
-
-
-# AC_LIBTOOL_LANG_GCJ_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the C compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG], [_LT_AC_LANG_GCJ_CONFIG(GCJ)])
-AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}\n"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${GCJ-"gcj"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-AC_LIBTOOL_PROG_COMPILER_NO_RTTI($1)
-AC_LIBTOOL_PROG_COMPILER_PIC($1)
-AC_LIBTOOL_PROG_CC_C_O($1)
-AC_LIBTOOL_SYS_HARD_LINK_LOCKS($1)
-AC_LIBTOOL_PROG_LD_SHLIBS($1)
-AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH($1)
-AC_LIBTOOL_SYS_LIB_STRIP
-AC_LIBTOOL_SYS_DYNAMIC_LINKER($1)
-AC_LIBTOOL_DLOPEN_SELF($1)
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_GCJ_CONFIG
-
-
-# AC_LIBTOOL_LANG_RC_CONFIG
-# --------------------------
-# Ensure that the configuration vars for the Windows resource compiler are
-# suitably defined.  Those variables are subsequently used by
-# AC_LIBTOOL_CONFIG to write the compiler configuration to `libtool'.
-AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG], [_LT_AC_LANG_RC_CONFIG(RC)])
-AC_DEFUN([_LT_AC_LANG_RC_CONFIG],
-[AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_AC_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_AC_SYS_COMPILER
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-CC=${RC-"windres"}
-compiler=$CC
-_LT_AC_TAGVAR(compiler, $1)=$CC
-_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-AC_LIBTOOL_CONFIG($1)
-
-AC_LANG_RESTORE
-CC="$lt_save_CC"
-])# AC_LIBTOOL_LANG_RC_CONFIG
-
-
-# AC_LIBTOOL_CONFIG([TAGNAME])
-# ----------------------------
-# If TAGNAME is not passed, then create an initial libtool script
-# with a default configuration from the untagged config vars.  Otherwise
-# add code to config.status for appending the configuration named by
-# TAGNAME from the matching tagged config vars.
-AC_DEFUN([AC_LIBTOOL_CONFIG],
-[# The else clause should only fire when bootstrapping the
-# libtool distribution, otherwise you forgot to ship ltmain.sh
-# with your package, and you will get complaints that there are
-# no rules to generate ltmain.sh.
-if test -f "$ltmain"; then
-  # See if we are running on zsh, and set the options which allow our commands through
-  # without removal of \ escapes.
-  if test -n "${ZSH_VERSION+set}" ; then
-    setopt NO_GLOB_SUBST
-  fi  
-  # Now quote all the things that may contain metacharacters while being
-  # careful not to overquote the AC_SUBSTed values.  We take copies of the
-  # variables and quote the copies for generation of the libtool script.
-  for var in echo old_CC old_CFLAGS AR AR_FLAGS EGREP RANLIB LN_S LTCC NM SED SHELL \
-    libname_spec library_names_spec soname_spec extract_expsyms_cmds \
-    old_striplib striplib file_magic_cmd finish_cmds finish_eval \
-    deplibs_check_method reload_flag reload_cmds need_locks \
-    lt_cv_sys_global_symbol_pipe lt_cv_sys_global_symbol_to_cdecl \
-    lt_cv_sys_global_symbol_to_c_name_address \
-    sys_lib_search_path_spec sys_lib_dlsearch_path_spec \
-    old_postinstall_cmds old_postuninstall_cmds \
-    _LT_AC_TAGVAR(compiler, $1) \
-    _LT_AC_TAGVAR(CC, $1) \
-    _LT_AC_TAGVAR(LD, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1) \
-    _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) \
-    _LT_AC_TAGVAR(export_dynamic_flag_spec, $1) \
-    _LT_AC_TAGVAR(thread_safe_flag_spec, $1) \
-    _LT_AC_TAGVAR(whole_archive_flag_spec, $1) \
-    _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1) \
-    _LT_AC_TAGVAR(old_archive_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) \
-    _LT_AC_TAGVAR(predep_objects, $1) \
-    _LT_AC_TAGVAR(postdep_objects, $1) \
-    _LT_AC_TAGVAR(predeps, $1) \
-    _LT_AC_TAGVAR(postdeps, $1) \
-    _LT_AC_TAGVAR(compiler_lib_search_path, $1) \
-    _LT_AC_TAGVAR(archive_cmds, $1) \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(postinstall_cmds, $1) \
-    _LT_AC_TAGVAR(postuninstall_cmds, $1) \
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) \
-    _LT_AC_TAGVAR(allow_undefined_flag, $1) \
-    _LT_AC_TAGVAR(no_undefined_flag, $1) \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1) \
-    _LT_AC_TAGVAR(hardcode_libdir_separator, $1) \
-    _LT_AC_TAGVAR(hardcode_automatic, $1) \
-    _LT_AC_TAGVAR(module_cmds, $1) \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) \
-    _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \
-    _LT_AC_TAGVAR(exclude_expsyms, $1) \
-    _LT_AC_TAGVAR(include_expsyms, $1); do
-
-    case $var in
-    _LT_AC_TAGVAR(old_archive_cmds, $1) | \
-    _LT_AC_TAGVAR(old_archive_from_new_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_cmds, $1) | \
-    _LT_AC_TAGVAR(archive_expsym_cmds, $1) | \
-    _LT_AC_TAGVAR(module_cmds, $1) | \
-    _LT_AC_TAGVAR(module_expsym_cmds, $1) | \   
-    _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1) | \
-    _LT_AC_TAGVAR(export_symbols_cmds, $1) | \
-    extract_expsyms_cmds | reload_cmds | finish_cmds | \
-    postinstall_cmds | postuninstall_cmds | \
-    old_postinstall_cmds | old_postuninstall_cmds | \
-    sys_lib_search_path_spec | sys_lib_dlsearch_path_spec)
-      # Double-quote double-evaled strings.
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$double_quote_subst\" -e \"\$sed_quote_subst\" -e \"\$delay_variable_subst\"\`\\\""
-      ;;
-    *)
-      eval "lt_$var=\\\"\`\$echo \"X\$$var\" | \$Xsed -e \"\$sed_quote_subst\"\`\\\""
-      ;;
-    esac
-  done
-
-  case $lt_echo in
-  *'\[$]0 --fallback-echo"')
-    lt_echo=`$echo "X$lt_echo" | $Xsed -e 's/\\\\\\\[$]0 --fallback-echo"[$]/[$]0 --fallback-echo"/'`
-    ;;
-  esac
-
-ifelse([$1], [],
-  [cfgfile="${ofile}T"
-  trap "$rm \"$cfgfile\"; exit 1" 1 2 15
-  $rm -f "$cfgfile"
-  AC_MSG_NOTICE([creating $ofile])],
-  [cfgfile="$ofile"])
-
-  cat <<__EOF__ >> "$cfgfile"
-ifelse([$1], [],
-[#! $SHELL
-
-# `$echo "$cfgfile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
-#
-# This file is part of GNU Libtool:
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="$SED -e s/^X//"
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test "X\${CDPATH+set}" = Xset; then CDPATH=:; export CDPATH; fi
-
-# The names of the tagged configurations supported by this script.
-available_tags=
-
-# ### BEGIN LIBTOOL CONFIG],
-[# ### BEGIN LIBTOOL TAG CONFIG: $tagname])
-
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)
-
-# Whether or not to disallow shared libs when runtime libs are static
-allow_libtool_libs_with_static_runtimes=$_LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# The host system.
-host_alias=$host_alias
-host=$host
-
-# An echo program that does not interpret backslashes.
-echo=$lt_echo
-
-# The archiver.
-AR=$lt_AR
-AR_FLAGS=$lt_AR_FLAGS
-
-# A C compiler.
-LTCC=$lt_LTCC
-
-# A language-specific compiler.
-CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
-
-# Is the compiler the GNU C compiler?
-with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# The linker used to build libraries.
-LD=$lt_[]_LT_AC_TAGVAR(LD, $1)
-
-# Whether we need hard or soft links.
-LN_S=$lt_LN_S
-
-# A BSD-compatible nm program.
-NM=$lt_NM
-
-# A symbol stripping program
-STRIP=$STRIP
-
-# Used to examine libraries when file_magic_cmd begins "file"
-MAGIC_CMD=$MAGIC_CMD
-
-# Used on cygwin: DLL creation program.
-DLLTOOL="$DLLTOOL"
-
-# Used on cygwin: object dumper.
-OBJDUMP="$OBJDUMP"
-
-# Used on cygwin: assembler.
-AS="$AS"
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# How to pass a linker flag through the compiler.
-wl=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-
-# Object file suffix (normally "o").
-objext="$ac_objext"
-
-# Old archive suffix (normally "a").
-libext="$libext"
-
-# Shared library suffix (normally ".so").
-shrext='$shrext'
-
-# Executable file suffix (normally "").
-exeext="$exeext"
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)
-pic_mode=$pic_mode
-
-# What is the maximum length of a command?
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_[]_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)
-
-# Must we lock files when doing compilation ?
-need_locks=$lt_need_locks
-
-# Do we need the lib prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_static, $1)
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_[]_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_[]_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_[]_LT_AC_TAGVAR(whole_archive_flag_spec, $1)
-
-# Compiler flag to generate thread-safe objects.
-thread_safe_flag_spec=$lt_[]_LT_AC_TAGVAR(thread_safe_flag_spec, $1)
-
-# Library versioning type.
-version_type=$version_type
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME.
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Commands used to build and install an old-style archive.
-RANLIB=$lt_RANLIB
-old_archive_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_cmds, $1)
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_new_cmds, $1)
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_[]_LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)
-
-# Commands used to build and install a shared archive.
-archive_cmds=$lt_[]_LT_AC_TAGVAR(archive_cmds, $1)
-archive_expsym_cmds=$lt_[]_LT_AC_TAGVAR(archive_expsym_cmds, $1)
-postinstall_cmds=$lt_postinstall_cmds
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to build a loadable module (assumed same as above if empty)
-module_cmds=$lt_[]_LT_AC_TAGVAR(module_cmds, $1)
-module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1)
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
-
-# Dependencies to place before the objects being linked to create a
-# shared library.
-predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1)
-
-# Dependencies to place after the objects being linked to create a
-# shared library.
-postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method == file_magic.
-file_magic_cmd=$lt_file_magic_cmd
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_[]_LT_AC_TAGVAR(allow_undefined_flag, $1)
-
-# Flag that forces no undefined symbols.
-no_undefined_flag=$lt_[]_LT_AC_TAGVAR(no_undefined_flag, $1)
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# Same as above, but a single script fragment to be evaled but not shown.
-finish_eval=$lt_finish_eval
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# This is the shared library runtime path variable.
-runpath_var=$runpath_var
-
-# This is the shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$_LT_AC_TAGVAR(hardcode_action, $1)
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist.
-hardcode_libdir_flag_spec=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)
-
-# If ld is used when linking, flag to hardcode \$libdir into
-# a binary during linking. This must work even if \$libdir does
-# not exist.
-hardcode_libdir_flag_spec_ld=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)
-
-# Whether we need a single -rpath flag with a separated argument.
-hardcode_libdir_separator=$lt_[]_LT_AC_TAGVAR(hardcode_libdir_separator, $1)
-
-# Set to yes if using DIR/libNAME${shared_ext} during linking hardcodes DIR into the
-# resulting binary.
-hardcode_direct=$_LT_AC_TAGVAR(hardcode_direct, $1)
-
-# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
-# resulting binary.
-hardcode_minus_L=$_LT_AC_TAGVAR(hardcode_minus_L, $1)
-
-# Set to yes if using SHLIBPATH_VAR=DIR during linking hardcodes DIR into
-# the resulting binary.
-hardcode_shlibpath_var=$_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)
-
-# Set to yes if building a shared library automatically hardcodes DIR into the library
-# and all subsequent libraries and executables linked against it.
-hardcode_automatic=$_LT_AC_TAGVAR(hardcode_automatic, $1)
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at relink time.
-variables_saved_for_relink="$variables_saved_for_relink"
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
-
-# Compile-time system search path for libraries
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Fix the shell variable \$srcfile for the compiler.
-fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)"
-
-# Set to yes if exported symbols are required.
-always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1)
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_[]_LT_AC_TAGVAR(export_symbols_cmds, $1)
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_[]_LT_AC_TAGVAR(exclude_expsyms, $1)
-
-# Symbols that must always be exported.
-include_expsyms=$lt_[]_LT_AC_TAGVAR(include_expsyms, $1)
-
-ifelse([$1],[],
-[# ### END LIBTOOL CONFIG],
-[# ### END LIBTOOL TAG CONFIG: $tagname])
-
-__EOF__
-
-ifelse([$1],[], [
-  case $host_os in
-  aix3*)
-    cat <<\EOF >> "$cfgfile"
-
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-EOF
-    ;;
-  esac
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" || (rm -f "$cfgfile"; exit 1)
-
-  mv -f "$cfgfile" "$ofile" || \
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-])
-else
-  # If there is no Makefile yet, we rely on a make rule to execute
-  # `config.status --recheck' to rerun these tests and create the
-  # libtool script then.
-  test -f Makefile && make "$ltmain"
-fi
-])# AC_LIBTOOL_CONFIG
-
-
-# AC_LIBTOOL_PROG_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI],
-[AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
-
-_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  _LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-])# AC_LIBTOOL_PROG_COMPILER_NO_RTTI
-
-
-# AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-# ---------------------------------
-AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE],
-[AC_REQUIRE([AC_CANONICAL_HOST])
-AC_REQUIRE([AC_PROG_NM])
-AC_REQUIRE([AC_OBJEXT])
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Transform the above into a raw symbol and a C symbol.
-symxfrm='\1 \2\3 \3'
-
-# Transform an extracted symbol line into a proper C declaration
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^. .* \(.*\)$/extern int \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*) # Its linker distinguishes data from code symbols
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-  lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/  {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (lt_ptr) \&\2},/p'"
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris* | sysv5*)
-  symcode='[[BDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`echo 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGISTW]]' ;;
-esac
-
-# Try without a prefix undercore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Write the raw and C identifiers.
-  lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ 	]]\($symcode$symcode*\)[[ 	]][[ 	]]*\($ac_symprfx\)$sympat$opt_cr$/$symxfrm/p'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if grep ' nm_test_var$' "$nlist" >/dev/null; then
-	if grep ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<EOF > conftest.$ac_ext
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | grep -v main >> conftest.$ac_ext'
-
-	  cat <<EOF >> conftest.$ac_ext
-#if defined (__STDC__) && __STDC__
-# define lt_ptr_t void *
-#else
-# define lt_ptr_t char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr_t address;
-}
-lt_preloaded_symbols[[]] =
-{
-EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (lt_ptr_t) \&\2},/" < "$nlist" | grep -v main >> conftest.$ac_ext
-	  cat <<\EOF >> conftest.$ac_ext
-  {0, (lt_ptr_t) 0}
-};
-
-#ifdef __cplusplus
-}
-#endif
-EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_save_LIBS="$LIBS"
-	  lt_save_CFLAGS="$CFLAGS"
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_AC_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS="$lt_save_LIBS"
-	  CFLAGS="$lt_save_CFLAGS"
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -f conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-]) # AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
-
-
-# AC_LIBTOOL_PROG_COMPILER_PIC([TAGNAME])
-# ---------------------------------------
-AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC],
-[_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=
-
-AC_MSG_CHECKING([for $compiler option to produce PIC])
- ifelse([$1],[CXX],[
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | os2* | pw32*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix4* | aix5*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68)
-	  # Green Hills C++ Compiler
-	  # _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    if test "$host_cpu" != ia64; then
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)="${ac_cv_prog_cc_wl}-a ${ac_cv_prog_cc_wl}archive"
-	    case "$host_cpu" in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux*)
-	case $cc_basename in
-	  KCC)
-	    # KAI C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  icpc)
-	    # Intel C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;; 
-	  cxx)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC)
-	    # Rational C++ 2.4.1
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx)
-	    # Digital/Compaq C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      sco*)
-	case $cc_basename in
-	  CC)
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx)
-	    # Green Hills C++ Compiler
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC)
-	    # Sun C++ 4.x
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc)
-	    # Lucid
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC)
-	    # NonStop-UX NCC 3.20
-	    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      unixware*)
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      # FIXME: we need at least 68020 code to build shared libraries, but
-      # adding the `-m68020' flag to GCC prevents building anything better,
-      # like `-m68040'.
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-      ;;
-
-    beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    hpux*)
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | pw32* | os2*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case "$host_cpu" in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    linux*)
-      case $CC in
-      icc|ecc)
-	_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      ccc)
-        _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      esac
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kpic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-dn'
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-      _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)])
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works],
-    _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1),
-    [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_AC_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-case "$host_os" in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-])
-
-
-# AC_LIBTOOL_PROG_LD_SHLIBS([TAGNAME])
-# ------------------------------------
-# See if the linker supports building shared libraries.
-AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS],
-[AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-ifelse([$1],[CXX],[
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  case $host_os in
-  aix4* | aix5*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-  ;;
-  cygwin* | mingw*)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  *)
-    _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  ;;
-  esac
-],[
-  runpath_var=
-  _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-  _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_AC_TAGVAR(archive_cmds, $1)=
-  _LT_AC_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)=
-  _LT_AC_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-  _LT_AC_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)=
-  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-  _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_AC_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_AC_TAGVAR(hardcode_automatic, $1)=no
-  _LT_AC_TAGVAR(module_cmds, $1)=
-  _LT_AC_TAGVAR(module_expsym_cmds, $1)=  
-  _LT_AC_TAGVAR(always_export_symbols, $1)=no
-  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_AC_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_"
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_AC_TAGVAR(ld_shlibs, $1)=yes
-  if test "$with_gnu_ld" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix3* | aix4* | aix5*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.9.1, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to modify your PATH
-*** so that a non-GNU linker is found, and then restart.
-
-EOF
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-
-      # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
-      # that the semantics of dynamic libraries on AmigaOS, at least up
-      # to version 4, is to share data among multiple programs linked
-      # with the same dynamic library.  Since this doesn't match the
-      # behavior of shared libraries on other platforms, we can't use
-      # them.
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3@best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=no
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols'
-
-      if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000 ${wl}--out-implib,$lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--image-base=0x10000000  ${wl}--out-implib,$lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris* | sysv5*)
-      if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-	cat <<EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-EOF
-      elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sunos4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_AC_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = yes; then
-      runpath_var=LD_RUN_PATH
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-      # ancient GNU ld didn't support --whole-archive et. al.
-      if $LD --help 2>&1 | grep 'no-whole-archive' > /dev/null; then
- 	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-      else
-  	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)=
-      fi
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$link_static_flag"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix4* | aix5*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\[$]2 == "T") || (\[$]2 == "D") || (\[$]2 == "B")) && ([substr](\[$]3,1,1) != ".")) { print \[$]3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*)
-	  for ld_flag in $LDFLAGS; do
-  	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-  	    aix_use_runtimelinking=yes
-  	    break
-  	  fi
-	  done
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_AC_TAGVAR(archive_cmds, $1)=''
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" && \
-  	   strings "$collect2name" | grep resolve_lib_name >/dev/null
-	  then
-  	  # We have reworked collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  else
-  	  # We have old collect2
-  	  _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported
-  	  # It fails to find uninstalled libraries when the uninstalled
-  	  # path is not listed in the libpath.  Setting hardcode_minus_L
-  	  # to unsupported forces relinking
-  	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-  	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-  	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	esac
-	shared_flag='-shared'
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-  	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-  	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-  	if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-  	fi
-	fi
-      fi
-
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-berok'
-       # Determine the default libpath from the value encoded in an empty executable.
-       _LT_AC_SYS_LIBPATH_AIX
-       _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then echo "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-       else
-	if test "$host_cpu" = ia64; then
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$no_entry_flag \${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an empty executable.
-	 _LT_AC_SYS_LIBPATH_AIX
-	 _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_AC_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  # -bexpall does not export symbols beginning with underscore (_)
-	  _LT_AC_TAGVAR(always_export_symbols, $1)=yes
-	  # Exported symbols can be pulled into shared objects from archives
-	  _LT_AC_TAGVAR(whole_archive_flag_spec, $1)=' '
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds it's shared libraries.
-	  _LT_AC_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs $compiler_flags ${wl}-bE:$export_symbols ${wl}-bnoentry${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/a2ixlibrary.data~$echo "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$echo "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$echo "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$echo "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      # see comment about different semantics on the GNU ld section
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    bsdi4*)
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      # Tell ltmain to make .lib files, not .a files.
-      libext=lib
-      # Tell ltmain to make .dll files, not .so files.
-      shrext=".dll"
-      # FIXME: Setting linknames here is a bad hack.
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `echo "$deplibs" | $SED -e '\''s/ -lc$//'\''` -link -dll~linknames='
-      # The linker will automatically build a .lib file if we build a DLL.
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true'
-      # FIXME: Should let the user specify the lib program.
-      _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs'
-      fix_srcfile_path='`cygpath -w "$srcfile"`'
-      _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      ;;
-
-    darwin* | rhapsody*)
-    if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then 
-      _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-      case "$host_os" in
-      rhapsody* | darwin1.[[012]])
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)='-undefined suppress'
-	;;
-      *) # Darwin 1.3 on
-	test -z ${LD_TWOLEVEL_NAMESPACE} && _LT_AC_TAGVAR(allow_undefined_flag, $1)='-flat_namespace -undefined suppress'
-	;;
-      esac
-      # FIXME: Relying on posixy $() will cause problems for
-      #        cross-compilation, but unfortunately the echo tests do not
-      #        yet detect zsh echo's removal of \ escapes.  Also zsh mangles
-      #	       `"' quotes if we put them in here... so don't!
-    	lt_int_apple_cc_single_mod=no
-    	output_verbose_link_cmd='echo'
-    	if $CC -dumpspecs 2>&1 | grep 'single_module' >/dev/null ; then
-    	  lt_int_apple_cc_single_mod=yes
-    	fi
-    	if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-    	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-    	else
-        _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      fi
-      _LT_AC_TAGVAR(module_cmds, $1)='$CC -bundle ${wl}-bind_at_load $allow_undefined_flag -o $lib $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin ld's
-        if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        else
-          _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r ${wl}-bind_at_load -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-        fi
-          _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -bundle $allow_undefined_flag  -o $lib $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=no
-      _LT_AC_TAGVAR(hardcode_automatic, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-      _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-all_load $convenience'
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-    fi  
-      ;;
-
-    dgux*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    freebsd1*)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$rm $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10* | hpux11*)
-      if test "$GCC" = yes -a "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case "$host_cpu" in
-	hppa*64*|ia64*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	case "$host_cpu" in
-	hppa*64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	ia64*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-	  _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	*)
-	  _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    openbsd*)
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      else
-       case $host_os in
-	 openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	   ;;
-	 *)
-	   _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	   _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	   ;;
-       esac
-      fi
-      ;;
-
-    os2*)
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_AC_TAGVAR(archive_cmds, $1)='$echo "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$echo "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$echo DATA >> $output_objdir/$libname.def~$echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~$echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && echo ${wl}-set_version ${wl}$verstring` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_AC_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -shared${allow_undefined_flag} $libobjs $deplibs $linker_flags -msym -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; echo "-hidden">> $lib.exp~
-	$LD -shared${allow_undefined_flag} -input $lib.exp $linker_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && echo -set_version $verstring` -update_registry ${objdir}/so_locations -o $lib~$rm $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    sco3.2v5*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var=LD_RUN_PATH
-      hardcode_runpath_var=yes
-      ;;
-
-    solaris*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-	  $CC -shared ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$rm $lib.exp'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  	$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *) # Supported since Solaris 2.6 (maybe 2.5.1?)
-	_LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;;
-      esac
-      _LT_AC_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_AC_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_AC_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4.2uw2*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_direct, $1)=yes
-      _LT_AC_TAGVAR(hardcode_minus_L, $1)=no
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      hardcode_runpath_var=yes
-      runpath_var=LD_RUN_PATH
-      ;;
-
-   sysv5OpenUNIX8* | sysv5UnixWare7* |  sysv5uw[[78]]* | unixware7*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z ${wl}text'
-      if test "$GCC" = yes; then
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_AC_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      runpath_var='LD_RUN_PATH'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv5*)
-      _LT_AC_TAGVAR(no_undefined_flag, $1)=' -z text'
-      # $CC -shared without GNU ld will not create a library from C++
-      # object files and a static libstdc++, better avoid it by now
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~$echo "local: *; };" >> $lib.exp~
-  		$LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$rm $lib.exp'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-      ;;
-
-    uts4*)
-      _LT_AC_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_AC_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-  fi
-])
-AC_MSG_RESULT([$_LT_AC_TAGVAR(ld_shlibs, $1)])
-test "$_LT_AC_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_AC_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_MSG_CHECKING([whether -lc should be explicitly linked in])
-      $rm conftest*
-      printf "$lt_simple_compile_test_code" > conftest.$ac_ext
-  
-      if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-        soname=conftest
-        lib=conftest
-        libobjs=conftest.$ac_objext
-        deplibs=
-        wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1)
-        compiler_flags=-v
-        linker_flags=-v
-        verstring=
-        output_objdir=.
-        libname=conftest
-        lt_save_allow_undefined_flag=$_LT_AC_TAGVAR(allow_undefined_flag, $1)
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=
-        if AC_TRY_EVAL(_LT_AC_TAGVAR(archive_cmds, $1) 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1)
-        then
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no
-        else
-	  _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=yes
-        fi
-        _LT_AC_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-      else
-        cat conftest.err 1>&5
-      fi
-      $rm conftest*
-      AC_MSG_RESULT([$_LT_AC_TAGVAR(archive_cmds_need_lc, $1)])
-      ;;
-    esac
-  fi
-  ;;
-esac
-])# AC_LIBTOOL_PROG_LD_SHLIBS
-
-
-# _LT_AC_FILE_LTDLL_C
-# -------------------
-# Be careful that the start marker always follows a newline.
-AC_DEFUN([_LT_AC_FILE_LTDLL_C], [
-# /* ltdll.c starts here */
-# #define WIN32_LEAN_AND_MEAN
-# #include <windows.h>
-# #undef WIN32_LEAN_AND_MEAN
-# #include <stdio.h>
-#
-# #ifndef __CYGWIN__
-# #  ifdef __CYGWIN32__
-# #    define __CYGWIN__ __CYGWIN32__
-# #  endif
-# #endif
-#
-# #ifdef __cplusplus
-# extern "C" {
-# #endif
-# BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved);
-# #ifdef __cplusplus
-# }
-# #endif
-#
-# #ifdef __CYGWIN__
-# #include <cygwin/cygwin_dll.h>
-# DECLARE_CYGWIN_DLL( DllMain );
-# #endif
-# HINSTANCE __hDllInstance_base;
-#
-# BOOL APIENTRY
-# DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved)
-# {
-#   __hDllInstance_base = hInst;
-#   return TRUE;
-# }
-# /* ltdll.c ends here */
-])# _LT_AC_FILE_LTDLL_C
-
-
-# _LT_AC_TAGVAR(VARNAME, [TAGNAME])
-# ---------------------------------
-AC_DEFUN([_LT_AC_TAGVAR], [ifelse([$2], [], [$1], [$1_$2])])
-
-
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL],   [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED],  [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC],  [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD],        [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM],        [AC_PROG_NM])
-
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
-
-AC_DEFUN([LT_AC_PROG_GCJ],
-[AC_CHECK_TOOL(GCJ, gcj, no)
-  test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-  AC_SUBST(GCJFLAGS)
-])
-
-AC_DEFUN([LT_AC_PROG_RC],
-[AC_CHECK_TOOL(RC, windres, no)
-])
-
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && break
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-SED=$lt_cv_path_SED
-])
-AC_MSG_RESULT([$SED])
-])
-#############################################################################
-# Additional Macros
-#############################################################################
-
-#
-# Check for C++ namespace support.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_CXX_NAMESPACES],
-[AC_CACHE_CHECK(whether the compiler implements namespaces,
-ac_cv_cxx_namespaces,
-[AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- AC_TRY_COMPILE([namespace Outer { namespace Inner { int i = 0; }}],
-                [using namespace Outer::Inner; return i;],
- ac_cv_cxx_namespaces=yes, ac_cv_cxx_namespaces=no)
- AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_namespaces" = yes; then
-  AC_DEFINE(HAVE_NAMESPACES,,[define if the compiler implements namespaces])
-fi
-])
-
-#
-# Check for hash_map extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_map.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_HASH_MAP],
-[AC_CACHE_CHECK(whether the compiler has ext/hash_map,
-ac_cv_cxx_have_ext_hash_map,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[hash_map<int, int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_map=std, ac_cv_cxx_have_ext_hash_map=no)
-  AC_TRY_COMPILE([#include <ext/hash_map>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[hash_map<int, int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_map=gnu, ac_cv_cxx_have_ext_hash_map=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_hash_map" = std; then
-   AC_DEFINE(HAVE_STD_EXT_HASH_MAP,,[define if the compiler has ext/hash_map])
-fi
-if test "$ac_cv_cxx_have_ext_hash_map" = gnu; then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_MAP,,[define if the compiler has ext/hash_map])
-fi
-])
-
-#
-# Check for hash_set extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_HASH_SET],
-[AC_CACHE_CHECK(whether the compiler has ext/hash_set,
-ac_cv_cxx_have_ext_hash_set,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[hash_set<int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_set=std, ac_cv_cxx_have_ext_hash_set=no)
-  AC_TRY_COMPILE([#include <ext/hash_set>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[hash_set<int> t; return 0;],
-  ac_cv_cxx_have_ext_hash_set=gnu, ac_cv_cxx_have_ext_hash_set=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_hash_set" = std; then
-   AC_DEFINE(HAVE_STD_EXT_HASH_SET,,[define if the compiler has ext/hash_set in std])
-fi
-if test "$ac_cv_cxx_have_ext_hash_set" = gnu; then
-   AC_DEFINE(HAVE_GNU_EXT_HASH_SET,,[define if the compiler has ext/hash_set in __gnu_cc])
-fi
-])
-
-#
-# Check for standard iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_STD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the standard iterator,
-ac_cv_cxx_have_std_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[iterator<int,int,int> t; return 0;],
-  ac_cv_cxx_have_std_iterator=yes, ac_cv_cxx_have_std_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_std_iterator" = yes; then
-   AC_DEFINE(HAVE_STD_ITERATOR,,[define if the compiler has STL iterators])
-fi
-])
-
-#
-# Check for bidirectional iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_BI_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has the bidirectional iterator,
-ac_cv_cxx_have_bi_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[bidirectional_iterator<int,int> t; return 0;],
-  ac_cv_cxx_have_bi_iterator=yes, ac_cv_cxx_have_bi_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_bi_iterator" = yes; then
-   AC_DEFINE(HAVE_BI_ITERATOR,,[define if the compiler has bidirectional iterator])
-fi
-])
-
-#
-# Check for forward iterator extension.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_hash_set.html
-#
-AC_DEFUN([AC_CXX_HAVE_FWD_ITERATOR],
-[AC_CACHE_CHECK(whether the compiler has forward iterators,
-ac_cv_cxx_have_fwd_iterator,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <iterator>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[forward_iterator<int,int> t; return 0;],
-  ac_cv_cxx_have_fwd_iterator=yes, ac_cv_cxx_have_fwd_iterator=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_fwd_iterator" = yes; then
-   AC_DEFINE(HAVE_FWD_ITERATOR,,[define if the compiler has STL iterators])
-fi
-])
-
-#
-# Check for slist extension.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_CXX_HAVE_EXT_SLIST],
-[AC_CACHE_CHECK(whether the compiler has ext/slist,
-ac_cv_cxx_have_ext_slist,
-[AC_REQUIRE([AC_CXX_NAMESPACES])
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-  AC_TRY_COMPILE([#include <ext/slist>
-#ifdef HAVE_NAMESPACES
-using namespace std;
-#endif],[slist<int> s; return 0;],
-  ac_cv_cxx_have_ext_slist=std, ac_cv_cxx_have_ext_slist=no)
-  AC_TRY_COMPILE([#include <ext/slist>
-#ifdef HAVE_NAMESPACES
-using namespace __gnu_cxx;
-#endif],[slist<int> s; return 0;],
-  ac_cv_cxx_have_ext_slist=gnu, ac_cv_cxx_have_ext_slist=no)
-
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_cxx_have_ext_slist" = std; then
-   AC_DEFINE(HAVE_EXT_SLIST,std,[define if the compiler has ext/slist])
-fi
-if test "$ac_cv_cxx_have_ext_slist" = gnu; then
-   AC_DEFINE(HAVE_EXT_SLIST,gnu,[define if the compiler has ext/slist])
-fi
-])
-
-#
-# Check for FLEX.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_PROG_FLEX],
-[AC_CACHE_CHECK(,
-ac_cv_has_flex,
-[AC_PROG_LEX()
-])
-if test "$LEX" != "flex"; then
-  AC_MSG_ERROR([flex not found but required])
-fi
-])
-
-#
-# Check for Bison.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_namespaces.html
-#
-AC_DEFUN([AC_PROG_BISON],
-[AC_CACHE_CHECK(,
-ac_cv_has_bison,
-[AC_PROG_YACC()
-])
-if test "$YACC" != "bison -y"; then
-  AC_MSG_ERROR([bison not found but required])
-else
-  AC_SUBST(YACC,[bison],[location of bison])
-fi
-])
-
-#
-# Check for GNU Make.  This is from
-# http://www.gnu.org/software/ac-archive/htmldoc/check_gnu_make.html
-#
-AC_DEFUN(
-        [CHECK_GNU_MAKE], [ AC_CACHE_CHECK( for GNU make,_cv_gnu_make_command,
-                _cv_gnu_make_command='' ;
-dnl Search all the common names for GNU make
-                for a in "$MAKE" make gmake gnumake ; do
-                        if test -z "$a" ; then continue ; fi ;
-                        if  ( sh -c "$a --version" 2> /dev/null | grep GNU  2>&1 > /dev/null ) ;  then
-                                _cv_gnu_make_command=$a ;
-                                break;
-                        fi
-                done ;
-        ) ;
-dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise
-        if test  "x$_cv_gnu_make_command" != "x"  ; then
-                ifGNUmake='' ;
-        else
-                ifGNUmake='#' ;
-                AC_MSG_RESULT("Not found");
-        fi
-        AC_SUBST(ifGNUmake)
-] )
-
-#
-# Check for the ability to mmap a file.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_FUNC_MMAP_FILE],
-[AC_CACHE_CHECK(for mmap of files,
-ac_cv_func_mmap_file,
-[AC_LANG_SAVE
-  AC_LANG_C
-  AC_TRY_RUN([
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-
-  int fd;
-  int main () {
-  fd = creat ("foo",0777); fd = (int) mmap (0, 1, PROT_READ, MAP_SHARED, fd, 0); unlink ("foo"); return (fd != MAP_FAILED);}],
-  ac_cv_func_mmap_file=yes, ac_cv_func_mmap_file=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_func_mmap_file" = yes; then
-   AC_DEFINE(HAVE_MMAP_FILE)
-   AC_SUBST(MMAP_FILE,[yes])
-fi
-])
-
-#
-# Check for anonymous mmap macros.  This is modified from
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_HEADER_MMAP_ANONYMOUS],
-[AC_CACHE_CHECK(for MAP_ANONYMOUS vs. MAP_ANON,
-ac_cv_header_mmap_anon,
-[AC_LANG_SAVE
-  AC_LANG_C
-  AC_TRY_COMPILE([#include <sys/mman.h>
-  #include <unistd.h>
-  #include <fcntl.h>],
-  [mmap (0, 1, PROT_READ, MAP_ANONYMOUS, -1, 0); return (0);],
-  ac_cv_header_mmap_anon=yes, ac_cv_header_mmap_anon=no)
-  AC_LANG_RESTORE
-])
-if test "$ac_cv_header_mmap_anon" = yes; then
-   AC_DEFINE(HAVE_MMAP_ANONYMOUS)
-fi
-])
-
-#
-# Configure a Makefile without clobbering it if it exists and is not out of
-# date.  This is modified from:
-# http://www.gnu.org/software/ac-archive/htmldoc/ac_cxx_have_ext_slist.html
-#
-AC_DEFUN([AC_CONFIG_MAKEFILE],
-[AC_CONFIG_COMMANDS($1,${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/$1 $1,${srcdir}/autoconf/mkinstalldirs `dirname $1`)
-])
-
-
diff --git a/television/autoconf/config.guess b/television/autoconf/config.guess
deleted file mode 100755
index cc726cd..0000000
--- a/television/autoconf/config.guess
+++ /dev/null
@@ -1,1388 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Originally written by Per Bothner <per@bothner.com>.
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi@noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-	        os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    arc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    pmax:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mipseb-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    wgrisc:OpenBSD:*:*)
-	echo mipsel-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    alpha:OSF1:*:*)
-	if test $UNAME_RELEASE = "V4.0"; then
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-	fi
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit 0 ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit 0 ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit 0;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit 0 ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit 0 ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit 0 ;;
-    DRS?6000:UNIX_SV:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
-	esac ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit 0 ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-        echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-        echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-        echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-        echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit 0 ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit 0 ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit 0 ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit 0 ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit 0 ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    AViiON:dgux:*:*)
-        # DG/UX returns AViiON for all architectures
-        UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
- 	exit 0 ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit 0 ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit 0 ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit 0 ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit 0 ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit 0 ;;
-    ia64:AIX:*:*)
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit 0 ;;
-    *:AIX:*:[45])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit 0 ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit 0 ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit 0 ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit 0 ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit 0 ;;
-    9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-		if [ -x /usr/bin/getconf ]; then
-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-                    case "${sc_cpu_version}" in
-                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-                      532)                      # CPU_PA_RISC2_0
-                        case "${sc_kernel_bits}" in
-                          32) HP_ARCH="hppa2.0n" ;;
-                          64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-                        esac ;;
-                    esac
-		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^              //' << EOF >$dummy.c
-
-              #define _HPUX_SOURCE
-              #include <stdlib.h>
-              #include <unistd.h>
-
-              int main ()
-              {
-              #if defined(_SC_KERNEL_BITS)
-                  long bits = sysconf(_SC_KERNEL_BITS);
-              #endif
-                  long cpu  = sysconf (_SC_CPU_VERSION);
-
-                  switch (cpu)
-              	{
-              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-              	case CPU_PA_RISC2_0:
-              #if defined(_SC_KERNEL_BITS)
-              	    switch (bits)
-              		{
-              		case 64: puts ("hppa2.0w"); break;
-              		case 32: puts ("hppa2.0n"); break;
-              		default: puts ("hppa2.0"); break;
-              		} break;
-              #else  /* !defined(_SC_KERNEL_BITS) */
-              	    puts ("hppa2.0"); break;
-              #endif
-              	default: puts ("hppa1.0"); break;
-              	}
-                  exit (0);
-              }
-EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-		    test -z "$HP_ARCH" && HP_ARCH=hppa
-		fi ;;
-	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
-	then
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
-    3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit 0 ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit 0 ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit 0 ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit 0 ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit 0 ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit 0 ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit 0 ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-        exit 0 ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-        exit 0 ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-        exit 0 ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-        exit 0 ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-        exit 0 ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-	      -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
-    *:UNICOS/mp:*:*)
-	echo nv1-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' 
-	exit 0 ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
-    *:FreeBSD:*:*)
-	# Determine whether the default compiler uses glibc.
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#if __GLIBC__ >= 2
-	LIBC=gnu
-	#else
-	LIBC=
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`${LIBC:+-$LIBC}
-	exit 0 ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
-    i*:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:3*)
-	echo i586-pc-interix3
-	exit 0 ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit 0 ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit 0 ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
-    *:GNU:*:*)
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
-    arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    mips:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips
-	#undef mipsel
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
-	;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-	# Look for CPU level
-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
-	esac
-	exit 0 ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
-	esac
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#ifdef __INTEL_COMPILER
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
-	;;
-    i*86:DYNIX/ptx:4*:*)
-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-	# earlier versions are messed up and put the nodename in both
-	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit 0 ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-        # Unixware is an offshoot of SVR4, but it has its own version
-        # number series starting with 2...
-        # I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-        # Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
-    i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
-	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit 0 ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit 0 ;;
-    i*86:*:5:[78]*)
-	case `/bin/uname -X | grep "^Machine"` in
-	    *486*)	     UNAME_MACHINE=i486 ;;
-	    *Pentium)	     UNAME_MACHINE=i586 ;;
-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit 0 ;;
-    i*86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit 0 ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-        # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
-        exit 0 ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit 0 ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit 0 ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit 0 ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit 0 ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit 0 ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit 0 ;;
-    M68*:*:R3V[567]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
-    3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && echo i486-ncr-sysv4.3${OS_REL} && exit 0
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit 0 ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit 0 ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit 0 ;;
-    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                      # says <Richard.M.Bartel@ccMail.Census.GOV>
-        echo i586-unisys-sysv4
-        exit 0 ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes@openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
-    *:*:*:FTX*)
-	# From seanf@swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit 0 ;;
-    *:VOS:*:*)
-	# From Paul.Green@stratus.com.
-	echo hppa1.1-stratus-vos
-	exit 0 ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit 0 ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-	        echo mips-nec-sysv${UNAME_RELEASE}
-	else
-	        echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-        exit 0 ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit 0 ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit 0 ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit 0 ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
-    *:Darwin:*:*)
-	case `uname -p` in
-	    *86) UNAME_PROCESSOR=i686 ;;
-	    powerpc) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
-	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit 0 ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit 0 ;;
-    NSR-[DGKLNPTVW]:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit 0 ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit 0 ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
-    *:Plan9:*:*)
-	# "uname -m" is not consistent, so use $cputype instead. 386
-	# is converted to i386 for consistency with other x86
-	# operating systems.
-	if test "$cputype" = "386"; then
-	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
-	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
-	exit 0 ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit 0 ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit 0 ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit 0 ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit 0 ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit 0 ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit 0 ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-          "4"
-#else
-	  ""
-#endif
-         ); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit 0 ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit 0 ;;
-    c34*)
-	echo c34-convex-bsd
-	exit 0 ;;
-    c38*)
-	echo c38-convex-bsd
-	exit 0 ;;
-    c4*)
-	echo c4-convex-bsd
-	exit 0 ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
-
-    ftp://ftp.gnu.org/pub/gnu/config/
-
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <config-patches@gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/television/autoconf/config.sub b/television/autoconf/config.sub
deleted file mode 100755
index 9772e87..0000000
--- a/television/autoconf/config.sub
+++ /dev/null
@@ -1,1489 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
-timestamp='2003-02-22'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches@gnu.org>."
-
-version="\
-GNU config.sub ($timestamp)
-
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-Free Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
-    --version | -v )
-       echo "$version" ; exit 0 ;;
-    --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit 0;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | freebsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis)
-		os=
-		basic_machine=$1
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
- 	-chorusrdb)
- 		os=-chorusrdb
-		basic_machine=$1
- 		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
-	| clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k \
-	| m32r | m68000 | m68k | m88k | mcore \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
-	| mips64orion | mips64orionel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| msp430 \
-	| ns16k | ns32k \
-	| openrisc | or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
-	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc86x | sparclet | sparclite | sparcv9 | sparcv9b \
-	| strongarm \
-	| tahoe | thumb | tic80 | tron \
-	| v850 | v850e \
-	| we32k \
-	| x86 | xscale | xstormy16 | xtensa \
-	| z8k)
-		basic_machine=$basic_machine-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
-	| bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
-	| clipper-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* \
-	| m32r-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | mcore-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| msp430-* \
-	| none-* | np1-* | nv1-* | ns16k-* | ns32k-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
-	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc86x-* | sparclet-* | sparclite-* \
-	| sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
-	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tron-* \
-	| v850-* | v850e-* | vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xstormy16-* \
-	| xtensa-* \
-	| ymp-* \
-	| z8k-*)
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	mmix*)
-		basic_machine=mmix-knuth
-		os=-mmixware
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	nv1)
-		basic_machine=nv1-cray
-		os=-unicosmp
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	or32 | or32-*)
-		basic_machine=or32-unknown
-		os=-coff
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2)
-		basic_machine=i686-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc)	basic_machine=powerpc-unknown
-		;;
-	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-        tic4x | c4x*)
-		basic_machine=tic4x-unknown
-		os=-coff
-		;;
-	tic54x | c54x*)
-		basic_machine=tic54x-unknown
-		os=-coff
-		;;
-	tic55x | c55x*)
-		basic_machine=tic55x-unknown
-		os=-coff
-		;;
-	tic6x | c6x*)
-		basic_machine=tic6x-unknown
-		os=-coff
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv9 | sparcv9b)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-        # First match some system type aliases
-        # that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
-	      | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
-			;;
-		    *)
-			os=-nto$os
-			;;
-		esac
-		;;
-	-nto-qnx*)
-		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2 )
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
-		;;
-	-aros*)
-		os=-aros
-		;;
-	-kaos*)
-		os=-kaos
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	or32-*)
-		os=-coff
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit 0
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/television/autoconf/configure.ac b/television/autoconf/configure.ac
deleted file mode 100644
index e6b5b7b..0000000
--- a/television/autoconf/configure.ac
+++ /dev/null
@@ -1,31 +0,0 @@
-dnl Process this file with autoconf 2.5x to create a configure script.
-
-dnl Initialize
-AC_INIT([[llvm-tv]],[[pre-release]],[llvmbugs@cs.uiuc.edu])
-
-dnl Place all of the extra autoconf files into the config subdirectory
-AC_CONFIG_AUX_DIR([autoconf])
-
-dnl Configure the makefile's configuration data
-AC_CONFIG_FILES([Makefile.config])
-
-dnl Configure Makefiles
-AC_CONFIG_MAKEFILE(Makefile)
-AC_CONFIG_MAKEFILE(Makefile.common)
-AC_CONFIG_MAKEFILE(lib/Makefile)
-AC_CONFIG_MAKEFILE(lib/Snapshot/Makefile)
-AC_CONFIG_MAKEFILE(tools/Makefile)
-AC_CONFIG_MAKEFILE(tools/llvm-tv/Makefile)
-
-dnl Verify that the source directory is valid
-AC_CONFIG_SRCDIR(["Makefile.common.in"])
-
-dnl Find the LLVM source and object directories, whose locations may
-dnl have been specified by the user. By default, assume we've unpacked this
-dnl project in projects/<project-name>, as is customary, and look in ../..
-dnl for the main LLVM source and object trees.
-AC_ARG_WITH(llvmsrc,AS_HELP_STRING([--with-llvmsrc],[Location of LLVM Source Code]),AC_SUBST(LLVM_SRC,[$withval]),AC_SUBST(LLVM_SRC,[`cd ${srcdir}/../..; pwd`]))
-AC_ARG_WITH(llvmobj,AS_HELP_STRING([--with-llvmobj],[Location of LLVM Object Code]),AC_SUBST(LLVM_OBJ,[$withval]),AC_SUBST(LLVM_OBJ,[`cd ../..; pwd`]))
-
-dnl Create the output files
-AC_OUTPUT
diff --git a/television/autoconf/install-sh b/television/autoconf/install-sh
deleted file mode 100644
index 398a88e..0000000
--- a/television/autoconf/install-sh
+++ /dev/null
@@ -1,251 +0,0 @@
-#!/bin/sh
-#
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd="$cpprog"
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd="$stripprog"
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "install:	no input file specified"
-	exit 1
-else
-	:
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-	
-	if [ -d $dst ]; then
-		instcmd=:
-		chmodcmd=""
-	else
-		instcmd=$mkdirprog
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f $src -o -d $src ]
-	then
-		:
-	else
-		echo "install:  $src does not exist"
-		exit 1
-	fi
-	
-	if [ x"$dst" = x ]
-	then
-		echo "install:	no destination specified"
-		exit 1
-	else
-		:
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d $dst ]
-	then
-		dst="$dst"/`basename $src`
-	else
-		:
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='
-	'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
-	shift
-
-	if [ ! -d "${pathcomp}" ] ;
-        then
-		$mkdirprog "${pathcomp}"
-	else
-		:
-	fi
-
-	pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd $dst &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else : ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else : ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else : ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else : ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		dstfile=`basename $dst $transformbasename | 
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		:
-	fi
-
-# Make a temp file name in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-	$doit $instcmd $src $dsttmp &&
-
-	trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else :;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else :;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else :;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else :;fi &&
-
-# Now rename the file to the real destination.
-
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
diff --git a/television/autoconf/ltmain.sh b/television/autoconf/ltmain.sh
deleted file mode 100644
index fe83ff4..0000000
--- a/television/autoconf/ltmain.sh
+++ /dev/null
@@ -1,6290 +0,0 @@
-# ltmain.sh - Provide generalized library-building support services.
-# NOTE: Changing this file will not affect anything until you rerun configure.
-#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003
-# Free Software Foundation, Inc.
-# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-# Check that we have a working $echo.
-if test "X$1" = X--no-reexec; then
-  # Discard the --no-reexec flag, and continue.
-  shift
-elif test "X$1" = X--fallback-echo; then
-  # Avoid inline document here, it may be left over
-  :
-elif test "X`($echo '\t') 2>/dev/null`" = 'X\t'; then
-  # Yippee, $echo works!
-  :
-else
-  # Restart under the correct shell, and then maybe $echo will work.
-  exec $SHELL "$0" --no-reexec ${1+"$@"}
-fi
-
-if test "X$1" = X--fallback-echo; then
-  # used as fallback echo
-  shift
-  cat <<EOF
-$*
-EOF
-  exit 0
-fi
-
-# The name of this program.
-progname=`$echo "$0" | ${SED} 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.5
-TIMESTAMP=" (1.1220 2003/04/05 19:32:58)"
-
-default_mode=
-help="Try \`$progname --help' for more information."
-magic="%%%MAGIC variable%%%"
-mkdir="mkdir"
-mv="mv -f"
-rm="rm -f"
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-# test EBCDIC or ASCII
-case `echo A|od -x` in
- *[Cc]1*) # EBCDIC based system
-  SP2NL="tr '\100' '\n'"
-  NL2SP="tr '\r\n' '\100\100'"
-  ;;
- *) # Assume ASCII based system
-  SP2NL="tr '\040' '\012'"
-  NL2SP="tr '\015\012' '\040\040'"
-  ;;
-esac
-
-# NLS nuisances.
-# Only set LANG and LC_ALL to C if already set.
-# These must not be set unconditionally because not all systems understand
-# e.g. LANG=C (notably SCO).
-# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
-  save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
-  save_LANG="$LANG"; LANG=C; export LANG
-fi
-
-# Make sure IFS has a sensible default
-: ${IFS=" 	"}
-
-if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-  $echo "$modename: not configured to build any kind of library" 1>&2
-  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-  exit 1
-fi
-
-# Global variables.
-mode=$default_mode
-nonopt=
-prev=
-prevopt=
-run=
-show="$echo"
-show_help=
-execute_dlfiles=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-
-#####################################
-# Shell function definitions:
-# This seems to be the best place for them
-
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-win32_libid () {
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | \
-      grep -E 'file format pe-i386(.*architecture: i386)?' >/dev/null ; then
-      win32_nmres=`eval $NM -f posix -A $1 | \
-	sed -n -e '1,100{/ I /{x;/import/!{s/^/import/;h;p;};x;};}'`
-      if test "X$win32_nmres" = "Ximport" ; then
-        win32_libid_type="x86 archive import"
-      else
-        win32_libid_type="x86 archive static"
-      fi
-    fi
-    ;;
-  *DLL*) 
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $echo $win32_libid_type
-}
-
-# End of Shell function definitions
-#####################################
-
-# Parse our command line options once, thoroughly.
-while test "$#" -gt 0
-do
-  arg="$1"
-  shift
-
-  case $arg in
-  -*=*) optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
-  *) optarg= ;;
-  esac
-
-  # If the previous option needs an argument, assign it.
-  if test -n "$prev"; then
-    case $prev in
-    execute_dlfiles)
-      execute_dlfiles="$execute_dlfiles $arg"
-      ;;
-    tag)
-      tagname="$arg"
-
-      # Check whether tagname contains only valid characters
-      case $tagname in
-      *[!-_A-Za-z0-9,/]*)
-	$echo "$progname: invalid tag name: $tagname" 1>&2
-	exit 1
-	;;
-      esac
-
-      case $tagname in
-      CC)
-	# Don't test for the "default" C tag, as we know, it's there, but
-	# not specially marked.
-	;;
-      *)
-	if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "$0" > /dev/null; then
-	  taglist="$taglist $tagname"
-	  # Evaluate the configuration.
-	  eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$tagname'$/,/^# ### END LIBTOOL TAG CONFIG: '$tagname'$/p' < $0`"
-	else
-	  $echo "$progname: ignoring unknown tag $tagname" 1>&2
-	fi
-	;;
-      esac
-      ;;
-    *)
-      eval "$prev=\$arg"
-      ;;
-    esac
-
-    prev=
-    prevopt=
-    continue
-  fi
-
-  # Have we seen a non-optional argument yet?
-  case $arg in
-  --help)
-    show_help=yes
-    ;;
-
-  --version)
-    $echo "$PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP"
-    $echo
-    $echo "Copyright (C) 2003  Free Software Foundation, Inc."
-    $echo "This is free software; see the source for copying conditions.  There is NO"
-    $echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-    exit 0
-    ;;
-
-  --config)
-    ${SED} -e '1,/^# ### BEGIN LIBTOOL CONFIG/d' -e '/^# ### END LIBTOOL CONFIG/,$d' $0
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      ${SED} -n -e "/^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$/,/^# ### END LIBTOOL TAG CONFIG: $tagname$/p" < "$0"
-    done
-    exit 0
-    ;;
-
-  --debug)
-    $echo "$progname: enabling shell trace mode"
-    set -x
-    ;;
-
-  --dry-run | -n)
-    run=:
-    ;;
-
-  --features)
-    $echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      $echo "enable shared libraries"
-    else
-      $echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      $echo "enable static libraries"
-    else
-      $echo "disable static libraries"
-    fi
-    exit 0
-    ;;
-
-  --finish) mode="finish" ;;
-
-  --mode) prevopt="--mode" prev=mode ;;
-  --mode=*) mode="$optarg" ;;
-
-  --preserve-dup-deps) duplicate_deps="yes" ;;
-
-  --quiet | --silent)
-    show=:
-    ;;
-
-  --tag) prevopt="--tag" prev=tag ;;
-  --tag=*)
-    set tag "$optarg" ${1+"$@"}
-    shift
-    prev=tag
-    ;;
-
-  -dlopen)
-    prevopt="-dlopen"
-    prev=execute_dlfiles
-    ;;
-
-  -*)
-    $echo "$modename: unrecognized option \`$arg'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-    ;;
-
-  *)
-    nonopt="$arg"
-    break
-    ;;
-  esac
-done
-
-if test -n "$prevopt"; then
-  $echo "$modename: option \`$prevopt' requires an argument" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-fi
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-if test -z "$show_help"; then
-
-  # Infer the operation mode.
-  if test -z "$mode"; then
-    $echo "*** Warning: inferring the mode of operation is deprecated." 1>&2
-    $echo "*** Future versions of Libtool will require -mode=MODE be specified." 1>&2
-    case $nonopt in
-    *cc | cc* | *++ | gcc* | *-gcc* | g++* | xlc*)
-      mode=link
-      for arg
-      do
-	case $arg in
-	-c)
-	   mode=compile
-	   break
-	   ;;
-	esac
-      done
-      ;;
-    *db | *dbx | *strace | *truss)
-      mode=execute
-      ;;
-    *install*|cp|mv)
-      mode=install
-      ;;
-    *rm)
-      mode=uninstall
-      ;;
-    *)
-      # If we have no mode, but dlfiles were specified, then do execute mode.
-      test -n "$execute_dlfiles" && mode=execute
-
-      # Just use the default operation mode.
-      if test -z "$mode"; then
-	if test -n "$nonopt"; then
-	  $echo "$modename: warning: cannot infer operation mode from \`$nonopt'" 1>&2
-	else
-	  $echo "$modename: warning: cannot infer operation mode without MODE-ARGS" 1>&2
-	fi
-      fi
-      ;;
-    esac
-  fi
-
-  # Only execute mode is allowed to have -dlopen flags.
-  if test -n "$execute_dlfiles" && test "$mode" != execute; then
-    $echo "$modename: unrecognized option \`-dlopen'" 1>&2
-    $echo "$help" 1>&2
-    exit 1
-  fi
-
-  # Change the help message to a mode-specific one.
-  generic_help="$help"
-  help="Try \`$modename --help --mode=$mode' for more information."
-
-  # These modes are in order of execution frequency so that they run quickly.
-  case $mode in
-  # libtool compile mode
-  compile)
-    modename="$modename: compile"
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_output=
-    arg_mode=normal
-    libobj=
-
-    for arg
-    do
-      case "$arg_mode" in
-      arg  )
-	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
-	arg_mode=normal
-	;;
-
-      target )
-	libobj="$arg"
-	arg_mode=normal
-	continue
-	;;
-
-      normal )
-	# Accept any command-line options.
-	case $arg in
-	-o)
-	  if test -n "$libobj" ; then
-	    $echo "$modename: you cannot specify \`-o' more than once" 1>&2
-	    exit 1
-	  fi
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-static)
-	  build_old_libs=yes
-	  continue
-	  ;;
-
-	-prefer-pic)
-	  pic_mode=yes
-	  continue
-	  ;;
-
-	-prefer-non-pic)
-	  pic_mode=no
-	  continue
-	  ;;
-
-	-Xcompiler)
-	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-	  continue      #  The current "srcfile" will either be retained or
-	  ;;            #  replaced later.  I would guess that would be a bug.
-
-	-Wc,*)
-	  args=`$echo "X$arg" | $Xsed -e "s/^-Wc,//"`
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
-	  for arg in $args; do
-	    IFS="$save_ifs"
-
-	    # Double-quote args containing other shell metacharacters.
-	    # Many Bourne shells cannot handle close brackets correctly
-	    # in scan sets, so we specify it separately.
-	    case $arg in
-	      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	      arg="\"$arg\""
-	      ;;
-	    esac
-	    lastarg="$lastarg $arg"
-	  done
-	  IFS="$save_ifs"
-	  lastarg=`$echo "X$lastarg" | $Xsed -e "s/^ //"`
-
-	  # Add the arguments to base_compile.
-	  base_compile="$base_compile $lastarg"
-	  continue
-	  ;;
-
-	* )
-	  # Accept the current argument as the source file.
-	  # The previous "srcfile" becomes the current argument.
-	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
-	  ;;
-	esac  #  case $arg
-	;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      lastarg=`$echo "X$lastarg" | $Xsed -e "$sed_quote_subst"`
-
-      case $lastarg in
-      # Double-quote args containing other shell metacharacters.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	lastarg="\"$lastarg\""
-	;;
-      esac
-
-      base_compile="$base_compile $lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      $echo "$modename: you must specify an argument for -Xcompile"
-      exit 1
-      ;;
-    target)
-      $echo "$modename: you must specify a target with \`-o'" 1>&2
-      exit 1
-      ;;
-    *)
-      # Get the name of the library object.
-      [ -z "$libobj" ] && libobj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%'`
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    xform='[cCFSifmso]'
-    case $libobj in
-    *.ada) xform=ada ;;
-    *.adb) xform=adb ;;
-    *.ads) xform=ads ;;
-    *.asm) xform=asm ;;
-    *.c++) xform=c++ ;;
-    *.cc) xform=cc ;;
-    *.ii) xform=ii ;;
-    *.class) xform=class ;;
-    *.cpp) xform=cpp ;;
-    *.cxx) xform=cxx ;;
-    *.f90) xform=f90 ;;
-    *.for) xform=for ;;
-    *.java) xform=java ;;
-    esac
-
-    libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
-    case $libobj in
-    *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;;
-    *)
-      $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2
-      exit 1
-      ;;
-    esac
-
-    # Infer tagged configuration to use if any are available and
-    # if one wasn't chosen via the "--tag" command line option.
-    # Only attempt this if the compiler in the base compile
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " `$echo $CC` "* | "`$echo $CC` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-	    case "$base_compile " in
-	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit 1
-#        else
-#          $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-
-    objname=`$echo "X$obj" | $Xsed -e 's%^.*/%%'`
-    xdir=`$echo "X$obj" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$xdir" = "X$obj"; then
-      xdir=
-    else
-      xdir=$xdir/
-    fi
-    lobj=${xdir}$objdir/$objname
-
-    if test -z "$base_compile"; then
-      $echo "$modename: you must specify a compilation command" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
-
-    $run $rm $removelist
-    trap "$run $rm $removelist; exit 1" 1 2 15
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$echo "X$srcfile" | $Xsed -e 's%^.*/%%' -e 's%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-      removelist="$removelist $output_obj $lockfile"
-      trap "$run $rm $removelist; exit 1" 1 2 15
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $run ln "$0" "$lockfile" 2>/dev/null; do
-	$show "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	$echo "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit 1
-      fi
-      $echo $srcfile > "$lockfile"
-    fi
-
-    if test -n "$fix_srcfile_path"; then
-      eval srcfile=\"$fix_srcfile_path\"
-    fi
-
-    $run $rm "$libobj" "${libobj}T"
-
-    # Create a libtool object file (analogous to a ".la" file),
-    # but don't create it if we're doing a dry run.
-    test -z "$run" && cat > ${libobj}T <<EOF
-# $libobj - a libtool object file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-EOF
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-	command="$base_compile $srcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $srcfile"
-      fi
-
-      if test ! -d "${xdir}$objdir"; then
-	$show "$mkdir ${xdir}$objdir"
-	$run $mkdir ${xdir}$objdir
-	status=$?
-	if test "$status" -ne 0 && test ! -d "${xdir}$objdir"; then
-	  exit $status
-	fi
-      fi
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	command="$command -o $lobj"
-      fi
-
-      $run $rm "$lobj" "$output_obj"
-
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	test -n "$output_obj" && $run $rm $removelist
-	exit 1
-      fi
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit 1
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-	$show "$mv $output_obj $lobj"
-	if $run $mv $output_obj $lobj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the PIC object to the libtool object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object='$objdir/$objname'
-
-EOF
-
-      # Allow error messages only from the first compilation.
-      suppress_output=' >/dev/null 2>&1'
-    else
-      # No PIC object so indicate it doesn't exist in the libtool
-      # object file.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-pic_object=none
-
-EOF
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-	# Don't build PIC code
-	command="$base_compile $srcfile"
-      else
-	command="$base_compile $srcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	command="$command -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      command="$command$suppress_output"
-      $run $rm "$obj" "$output_obj"
-      $show "$command"
-      if $run eval "$command"; then :
-      else
-	$run $rm $removelist
-	exit 1
-      fi
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$echo "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$run $rm $removelist
-	exit 1
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	$show "$mv $output_obj $obj"
-	if $run $mv $output_obj $obj; then :
-	else
-	  error=$?
-	  $run $rm $removelist
-	  exit $error
-	fi
-      fi
-
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object='$objname'
-
-EOF
-    else
-      # Append the name of the non-PIC object the libtool object file.
-      # Only append if the libtool object file exists.
-      test -z "$run" && cat >> ${libobj}T <<EOF
-# Name of the non-PIC object.
-non_pic_object=none
-
-EOF
-    fi
-
-    $run $mv "${libobj}T" "${libobj}"
-
-    # Unlock the critical section if it was locked
-    if test "$need_locks" != no; then
-      $run $rm "$lockfile"
-    fi
-
-    exit 0
-    ;;
-
-  # libtool link mode
-  link | relink)
-    modename="$modename: link"
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args="$nonopt"
-    base_compile="$nonopt"
-    compile_command="$nonopt"
-    finalize_command="$nonopt"
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-
-    avoid_version=no
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -all-static | -static)
-	if test "X$arg" = "X-all-static"; then
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    $echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	else
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	fi
-	build_libtool_libs=no
-	build_old_libs=yes
-	prefer_static_libs=yes
-	break
-	;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      base_compile="$base_compile $arg"
-      shift
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	qarg=\"`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`\" ### testsuite: skip nested quoting test
-	;;
-      *) qarg=$arg ;;
-      esac
-      libtool_args="$libtool_args $qarg"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  compile_command="$compile_command @OUTPUT@"
-	  finalize_command="$finalize_command @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    compile_command="$compile_command @SYMFILE@"
-	    finalize_command="$finalize_command @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      dlfiles="$dlfiles $arg"
-	    else
-	      dlprefiles="$dlprefiles $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  if test ! -f "$arg"; then
-	    $echo "$modename: symbol file \`$arg' does not exist"
-	    exit 1
-	  fi
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat $save_arg`
-	    do
-#	      moreargs="$moreargs $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		# If there is no directory component, then add one.
-		case $arg in
-		*/* | *\\*) . $arg ;;
-		*) . ./$arg ;;
-		esac
-
-		if test -z "$pic_object" || \
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none && \
-		   test "$non_pic_object" = none; then
-		  $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-		  exit 1
-		fi
-
-		# Extract subdirectory from the argument.
-		xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		if test "X$xdir" = "X$arg"; then
-		  xdir=
-		else
-		  xdir="$xdir/"
-		fi
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      dlfiles="$dlfiles $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    dlprefiles="$dlprefiles $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  libobjs="$libobjs $pic_object"
-		  arg="$pic_object"
-		fi
-
-		# Non-PIC object.
-		if test "$non_pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
-
-		  # A standard non-PIC object
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if test -z "$run"; then
-		  $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-		  exit 1
-		else
-		  # Dry-run case.
-
-		  # Extract subdirectory from the argument.
-		  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-		  if test "X$xdir" = "X$arg"; then
-		    xdir=
-		  else
-		    xdir="$xdir/"
-		  fi
-
-		  pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-		  non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-		  libobjs="$libobjs $pic_object"
-		  non_pic_objects="$non_pic_objects $non_pic_object"
-		fi
-	      fi
-	    done
-	  else
-	    $echo "$modename: link input file \`$save_arg' does not exist"
-	    exit 1
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    $echo "$modename: only absolute run-paths are allowed" 1>&2
-	    exit 1
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) rpath="$rpath $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) xrpath="$xrpath $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	xcompiler)
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $wl$qarg"
-	  prev=
-	  compile_command="$compile_command $wl$qarg"
-	  finalize_command="$finalize_command $wl$qarg"
-	  continue
-	  ;;
-	xcclinker)
-	  linker_flags="$linker_flags $qarg"
-	  compiler_flags="$compiler_flags $qarg"
-	  prev=
-	  compile_command="$compile_command $qarg"
-	  finalize_command="$finalize_command $qarg"
-	  continue
-	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
-	  ;;
-	esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  compile_command="$compile_command $link_static_flag"
-	  finalize_command="$finalize_command $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	$echo "$modename: \`-allow-undefined' is deprecated because it is the default" 1>&2
-	continue
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  $echo "$modename: more than one -exported-symbols argument is not allowed"
-	  exit 1
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -inst-prefix-dir)
-	prev=inst_prefix
-	continue
-	;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-	case $with_gcc/$host in
-	no/*-*-irix* | /*-*-irix*)
-	  compile_command="$compile_command $arg"
-	  finalize_command="$finalize_command $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-L//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  if test -z "$absdir"; then
-	    $echo "$modename: cannot determine absolute directory name of \`$dir'" 1>&2
-	    exit 1
-	  fi
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "*) ;;
-	*)
-	  deplibs="$deplibs -L$dir"
-	  lib_search_path="$lib_search_path $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$dir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-pw32* | *-*-beos*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-mingw* | *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    deplibs="$deplibs -framework System"
-	    continue
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	deplibs="$deplibs $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # gcc -m* arguments should be passed to the linker via $compiler_flags
-      # in order to pass architecture information to the linker
-      # (e.g. 32 vs 64-bit).  This may also be accomplished via -Wl,-mfoo
-      # but this is not reliable with gcc because gcc may use -mfoo to
-      # select a different linker, different libraries, etc, while
-      # -Wl,-mfoo simply passes -mfoo to the linker.
-      -m*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-        compile_command="$compile_command $arg"
-        finalize_command="$finalize_command $arg"
-        if test "$with_gcc" = "yes" ; then
-          compiler_flags="$compiler_flags $arg"
-        fi
-        continue
-        ;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # in order for the loader to find any dlls it needs.
-	  $echo "$modename: warning: \`-no-install' is ignored for $host" 1>&2
-	  $echo "$modename: warning: assuming \`-no-fast-install' instead" 1>&2
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	dir=`$echo "X$arg" | $Xsed -e 's/^-R//'`
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  $echo "$modename: only absolute run-paths are allowed" 1>&2
-	  exit 1
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) xrpath="$xrpath $dir" ;;
-	esac
-	continue
-	;;
-
-      -static)
-	# The effects of -static are defined in a previous loop.
-	# We used to do the same as -all-static on platforms that
-	# didn't have a PIC flag, but the assumption that the effects
-	# would be equivalent was wrong.  It would break on at least
-	# Digital Unix and AIX.
-	continue
-	;;
-
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
-
-      -version-info)
-	prev=vinfo
-	continue
-	;;
-      -version-number)
-	prev=vinfo
-	vinfo_number=yes
-	continue
-	;;
-
-      -Wc,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wc,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Wl,*)
-	args=`$echo "X$arg" | $Xsed -e "$sed_quote_subst" -e 's/^-Wl,//'`
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-	  case $flag in
-	    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	    flag="\"$flag\""
-	    ;;
-	  esac
-	  arg="$arg $wl$flag"
-	  compiler_flags="$compiler_flags $wl$flag"
-	  linker_flags="$linker_flags $flag"
-	done
-	IFS="$save_ifs"
-	arg=`$echo "X$arg" | $Xsed -e "s/^ //"`
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # Some other compiler flag.
-      -* | +*)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-
-      *.$objext)
-	# A standard object.
-	objs="$objs $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if (${SED} -e '2q' $arg | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  # If there is no directory component, then add one.
-	  case $arg in
-	  */* | *\\*) . $arg ;;
-	  *) . ./$arg ;;
-	  esac
-
-	  if test -z "$pic_object" || \
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none && \
-	     test "$non_pic_object" = none; then
-	    $echo "$modename: cannot find name of object for \`$arg'" 1>&2
-	    exit 1
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	  if test "X$xdir" = "X$arg"; then
-	    xdir=
- 	  else
-	    xdir="$xdir/"
-	  fi
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		dlfiles="$dlfiles $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      dlprefiles="$dlprefiles $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    libobjs="$libobjs $pic_object"
-	    arg="$pic_object"
-	  fi
-
-	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
-
-	    # A standard non-PIC object
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if test -z "$run"; then
-	    $echo "$modename: \`$arg' is not a valid libtool object" 1>&2
-	    exit 1
-	  else
-	    # Dry-run case.
-
-	    # Extract subdirectory from the argument.
-	    xdir=`$echo "X$arg" | $Xsed -e 's%/[^/]*$%%'`
-	    if test "X$xdir" = "X$arg"; then
-	      xdir=
-	    else
-	      xdir="$xdir/"
-	    fi
-
-	    pic_object=`$echo "X${xdir}${objdir}/${arg}" | $Xsed -e "$lo2o"`
-	    non_pic_object=`$echo "X${xdir}${arg}" | $Xsed -e "$lo2o"`
-	    libobjs="$libobjs $pic_object"
-	    non_pic_objects="$non_pic_objects $non_pic_object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	deplibs="$deplibs $arg"
-	old_deplibs="$old_deplibs $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  dlfiles="$dlfiles $arg"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  dlprefiles="$dlprefiles $arg"
-	  prev=
-	else
-	  deplibs="$deplibs $arg"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-	case $arg in
-	*[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-	  arg="\"$arg\""
-	  ;;
-	esac
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	compile_command="$compile_command $arg"
-	finalize_command="$finalize_command $arg"
-      fi
-    done # argument parsing loop
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prevarg' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Infer tagged configuration to use if any are available and
-    # if one wasn't chosen via the "--tag" command line option.
-    # Only attempt this if the compiler in the base link
-    # command doesn't match the default compiler.
-    if test -n "$available_tags" && test -z "$tagname"; then
-      case $base_compile in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$0" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $0`"
-	    case $base_compile in
-	    "$CC "* | " $CC "* | "`$echo $CC` "* | " `$echo $CC` "*)
-	      # The compiler in $compile_command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  $echo "$modename: unable to infer tagged configuration"
-	  $echo "$modename: specify a tag with \`--tag'" 1>&2
-	  exit 1
-#       else
-#         $echo "$modename: using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      compile_command="$compile_command $arg"
-      finalize_command="$finalize_command $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    outputname=`$echo "X$output" | $Xsed -e 's%^.*/%%'`
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$echo \"X\${$shlibpath_var}\" \| \$Xsed -e \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    output_objdir=`$echo "X$output" | $Xsed -e 's%/[^/]*$%%'`
-    if test "X$output_objdir" = "X$output"; then
-      output_objdir="$objdir"
-    else
-      output_objdir="$output_objdir/$objdir"
-    fi
-    # Create the object directory.
-    if test ! -d "$output_objdir"; then
-      $show "$mkdir $output_objdir"
-      $run $mkdir $output_objdir
-      status=$?
-      if test "$status" -ne 0 && test ! -d "$output_objdir"; then
-	exit $status
-      fi
-    fi
-
-    # Determine the type of output
-    case $output in
-    "")
-      $echo "$modename: you must specify an output file" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    case $host in
-    *cygwin* | *mingw* | *pw32*)
-      # don't eliminate duplcations in $postdeps and $predeps
-      duplicate_compiler_generated_deps=yes
-      ;;
-    *)
-      duplicate_compiler_generated_deps=$duplicate_deps
-      ;;
-    esac
-    specialdeplibs=
-
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if test "X$duplicate_deps" = "Xyes" ; then
-	case "$libs " in
-	*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	esac
-      fi
-      libs="$libs $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if test "X$duplicate_compiler_generated_deps" = "Xyes" ; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) specialdeplibs="$specialdeplibs $pre_post_deps" ;;
-	  esac
-	  pre_post_deps="$pre_post_deps $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-    case $linkmode in
-    lib)
-	passes="conv link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    $echo "$modename: libraries can \`-dlopen' only libtool libraries: $file" 1>&2
-	    exit 1
-	    ;;
-	  esac
-	done
-	;;
-    prog)
-	compile_deplibs=
-	finalize_deplibs=
-	alldeplibs=no
-	newdlfiles=
-	newdlprefiles=
-	passes="conv scan dlopen dlpreopen link"
-	;;
-    *)  passes="conv"
-	;;
-    esac
-    for pass in $passes; do
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
-	deplibs=
-      fi
-      if test "$linkmode" = prog; then
-	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-	esac
-      fi
-      if test "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    $echo "$modename: warning: \`-l' is ignored for archives/objects" 1>&2
-	    continue
-	  fi
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
-	    # Search the libtool library
-	    lib="$searchdir/lib${name}.la"
-	    if test -f "$lib"; then
-	      found=yes
-	      break
-	    fi
-	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
-	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	      case " $predeps $postdeps " in
-	      *" $deplib "*)
-		if (${SED} -e '2q' $lib |
-                    grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-		  library_names=
-		  old_library=
-		  case $lib in
-		  */* | *\\*) . $lib ;;
-		  *) . ./$lib ;;
-		  esac
-		  for l in $old_library $library_names; do
-		    ll="$l"
-		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
-		    ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-		    test "X$ladir" = "X$lib" && ladir="."
-		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
-		      compile_deplibs="$deplib $compile_deplibs"
-		      finalize_deplibs="$deplib $finalize_deplibs"
-		    else
-		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-		    fi
-		    continue
-		  fi
-		fi
-	        ;;
-	      *) ;;
-	      esac
-	    fi
-	  fi
-	  ;; # -l
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	      newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    ;;
-	  *)
-	    $echo "$modename: warning: \`-L' is ignored for archives/objects" 1>&2
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    dir=`$echo "X$deplib" | $Xsed -e 's/^-R//'`
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) xrpath="$xrpath $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la) lib="$deplib" ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    if test "$deplibs_check_method" != pass_all; then
-	      $echo
-	      $echo "*** Warning: Trying to link with static lib archive $deplib."
-	      $echo "*** I have the capability to make that library automatically link in when"
-	      $echo "*** you link to this library.  But I can only do this if you have a"
-	      $echo "*** shared version of the library, which you do not appear to have"
-	      $echo "*** because the file extensions .$libext of this argument makes me believe"
-	      $echo "*** that it is just a static archive that I should not used here."
-	    else
-	      $echo
-	      $echo "*** Warning: Linking the shared library $output against the"
-	      $echo "*** static library $deplib is not portable!"
-	      deplibs="$deplib $deplibs"
-	    fi
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      newdlprefiles="$newdlprefiles $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      newdlfiles="$newdlfiles $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  $echo "$modename: cannot find the library \`$lib'" 1>&2
-	  exit 1
-	fi
-
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $lib | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  exit 1
-	fi
-
-	ladir=`$echo "X$lib" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$ladir" = "X$lib" && ladir="."
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-
-	# Read the .la file
-	case $lib in
-	*/* | *\\*) . $lib ;;
-	*) . ./$lib ;;
-	esac
-
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && dlfiles="$dlfiles $dlopen"
-	  test -n "$dlpreopen" && dlprefiles="$dlprefiles $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	      exit 1
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    convenience="$convenience $ladir/$objdir/$old_library"
-	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
-	    tmp_libs=
-	    for deplib in $dependency_libs; do
-	      deplibs="$deplib $deplibs"
-              if test "X$duplicate_deps" = "Xyes" ; then
-	        case "$tmp_libs " in
-	        *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	        esac
-              fi
-	      tmp_libs="$tmp_libs $deplib"
-	    done
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    $echo "$modename: \`$lib' is not a convenience library" 1>&2
-	    exit 1
-	  fi
-	  continue
-	fi # $pass = conv
-
-    
-	# Get the name of the library we link against.
-	linklib=
-	for l in $old_library $library_names; do
-	  linklib="$l"
-	done
-	if test -z "$linklib"; then
-	  $echo "$modename: cannot find name of link library for \`$lib'" 1>&2
-	  exit 1
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlopen a convenience library: \`$lib'" 1>&2
-	    exit 1
-	  fi
-	  if test -z "$dlname" || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    dlprefiles="$dlprefiles $lib $dependency_libs"
-	  else
-	    newdlfiles="$newdlfiles $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    $echo "$modename: warning: cannot determine absolute directory name of \`$ladir'" 1>&2
-	    $echo "$modename: passing it literally to the linker, although it might fail" 1>&2
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	laname=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    $echo "$modename: warning: library \`$lib' was moved." 1>&2
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$libdir"
-	    absdir="$libdir"
-	  fi
-	else
-	  dir="$ladir/$objdir"
-	  absdir="$abs_ladir/$objdir"
-	  # Remove this search path later
-	  notinst_path="$notinst_path $abs_ladir"
-	fi # $installed = yes
-	name=`$echo "X$laname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir"; then
-	    $echo "$modename: cannot -dlpreopen a convenience library: \`$lib'" 1>&2
-	    exit 1
-	  fi
-	  # Prefer using a static library (so that no silly _DYNAMIC symbols
-	  # are required to link).
-	  if test -n "$old_library"; then
-	    newdlprefiles="$newdlprefiles $dir/$old_library"
-	  # Otherwise, use the dlname, so that lt_dlopen finds it.
-	  elif test -n "$dlname"; then
-	    newdlprefiles="$newdlprefiles $dir/$dlname"
-	  else
-	    newdlprefiles="$newdlprefiles $dir/$linklib"
-	  fi
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-    
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  newlib_search_path="$newlib_search_path $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) newlib_search_path="$newlib_search_path "`$echo "X$deplib" | $Xsed -e 's/^-L//'`;; ### testsuite: skip nested quoting test
-	    esac
-	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      # Need to hardcode shared library paths
-	      # or/and link against static libraries
-	      newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var"; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath " in
-	      *" $dir "*) ;;
-	      *" $absdir "*) ;;
-	      *) temp_rpath="$temp_rpath $dir" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	if test -n "$library_names" &&
-	   { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
-	  if test "$installed" = no; then
-	    notinst_deplibs="$notinst_deplibs $lib"
-	    need_relink=yes
-	  fi
-	  # This is a shared library
-	
-      # Warn about portability, can't link against -module's on some systems (darwin)
-      if test "$shouldnotlink" = yes && test "$pass" = link ; then
-	    $echo
-	    if test "$linkmode" = prog; then
-	      $echo "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $echo "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $echo "*** $linklib is not portable!"    
-      fi	  
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) compile_rpath="$compile_rpath $absdir"
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) finalize_rpath="$finalize_rpath $libdir"
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    realname="$2"
-	    shift; shift
-	    libname=`eval \\$echo \"$libname_spec\"`
-	    # use dlname if we got it. it's perfectly good, no?
-	    if test -n "$dlname"; then
-	      soname="$dlname"
-	    elif test -n "$soname_spec"; then
-	      # bleh windows
-	      case $host in
-	      *cygwin* | mingw*)
-		major=`expr $current - $age`
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    soname=`$echo $soroot | ${SED} -e 's/^.*\///'`
-	    newlib="libimp-`$echo $soname | ${SED} 's/^lib//;s/\.dll$//'`.a"
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      $show "extracting exported symbol list from \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      eval cmds=\"$extract_expsyms_cmds\"
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      $show "generating import library for \`$soname'"
-	      save_ifs="$IFS"; IFS='~'
-	      eval cmds=\"$old_archive_from_expsyms_cmds\"
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd" || exit $?
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5* ) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a module then we can not link against it, someone
-		    # is ignoring the new warnings I added
-		    if /usr/bin/file -L $add 2> /dev/null | grep "bundle" >/dev/null ; then
-		      $echo "** Warning, lib $linklib is a module, not a shared library"
-		      if test -z "$old_library" ; then
-		        $echo
-		        $echo "** And there doesn't seem to be a static archive available"
-		        $echo "** The link will probably fail, sorry"
-		      else
-		        add="$dir/$old_library"
-		      fi 
-		    fi
-		esac
-	      elif test "$hardcode_minus_L" = no; then
-		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
-		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    relink)
-	      if test "$hardcode_direct" = yes; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$dir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case "$libdir" in
-		    [\\/]*)
-		      add_dir="-L$inst_prefix_dir$libdir $add_dir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
-
-	    if test "$lib_linked" != yes; then
-	      $echo "$modename: configuration error: unsupported hardcode properties"
-	      exit 1
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) compile_shlibpath="$compile_shlibpath$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes && \
-		 test "$hardcode_minus_L" != yes && \
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) finalize_shlibpath="$finalize_shlibpath$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" && test -f "$inst_prefix_dir$libdir/$linklib" ; then
-	        add="$inst_prefix_dir$libdir/$linklib"
-	      else
-	        add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case "$libdir" in
-		  [\\/]*)
-		    add_dir="-L$inst_prefix_dir$libdir $add_dir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    $echo
-	    $echo "*** Warning: This system can not link to static lib archive $lib."
-	    $echo "*** I have the capability to make that library automatically link in when"
-	    $echo "*** you link to this library.  But I can only do this if you have a"
-	    $echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      $echo "*** But as you try to build a module library, libtool will still create "
-	      $echo "*** a static module, that should work as long as the dlopening application"
-	      $echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		$echo
-		$echo "*** However, this would only work if libtool was able to extract symbol"
-		$echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		$echo "*** not find such a program.  So, this module is probably useless."
-		$echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    convenience="$convenience $dir/$old_library"
-	    old_convenience="$old_convenience $dir/$old_library"
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) temp_xrpath=`$echo "X$libdir" | $Xsed -e 's/^-R//'`
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) xrpath="$xrpath $temp_xrpath";;
-		   esac;;
-	      *) temp_deplibs="$temp_deplibs $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  newlib_search_path="$newlib_search_path $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    if test "X$duplicate_deps" = "Xyes" ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-		dir=`$echo "X$deplib" | $Xsed -e 's%/[^/]*$%%'`
-		test "X$dir" = "X$deplib" && dir="."
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    $echo "$modename: warning: cannot determine absolute directory name of \`$dir'" 1>&2
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if grep "^installed=no" $deplib > /dev/null; then
-		  path="$absdir/$objdir"
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  if test -z "$libdir"; then
-		    $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		    exit 1
-		  fi
-		  if test "$absdir" != "$libdir"; then
-		    $echo "$modename: warning: \`$deplib' seems to be moved" 1>&2
-		  fi
-		  path="$absdir"
-		fi
-		depdepl=
-		case $host in
-		*-*-darwin*)
-		  # we do not want to link against static libs, but need to link against shared
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$path/$depdepl" ; then
-		      depdepl="$path/$depdepl"
-		   fi
-		    newlib_search_path="$newlib_search_path $path"
-		    path=""
-		  fi
-		  ;;
-		*)
-		path="-L$path"
-		;;
-		esac 
-		
-		;;
-		  -l*)
-		case $host in
-		*-*-darwin*)
-		 # Again, we only want to link against shared libraries
-		 eval tmp_libs=`$echo "X$deplib" | $Xsed -e "s,^\-l,,"`
-		 for tmp in $newlib_search_path ; do
-		     if test -f "$tmp/lib$tmp_libs.dylib" ; then
-		       eval depdepl="$tmp/lib$tmp_libs.dylib"
-		       break
-		     fi  
-         done
-         path=""
-		  ;;
-		*) continue ;;
-		esac  		  
-		;;
-	      *) continue ;;
-	      esac
-	      case " $deplibs " in
-	      *" $depdepl "*) ;;
-	      *) deplibs="$deplibs $depdepl" ;;
-	      esac	      
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$deplibs $path" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) lib_search_path="$lib_search_path $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) tmp_libs="$tmp_libs $deplib" ;;
-	      esac
-	      ;;
-	    *) tmp_libs="$tmp_libs $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  tmp_libs="$tmp_libs $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info/-version-number' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for archives" 1>&2
-      fi
-
-      if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	$echo "$modename: warning: \`-export-symbols' is ignored for archives" 1>&2
-      fi
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      objs="$objs$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	name=`$echo "X$outputname" | $Xsed -e 's/\.la$//' -e 's/^lib//'`
-	eval shared_ext=\"$shrext\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	if test "$module" = no; then
-	  $echo "$modename: libtool library \`$output' must begin with \`lib'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  name=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	  eval shared_ext=\"$shrext\"
-	  eval libname=\"$libname_spec\"
-	else
-	  libname=`$echo "X$outputname" | $Xsed -e 's/\.la$//'`
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  $echo "$modename: cannot build libtool library \`$output' from non-libtool objects on this host:$objs" 2>&1
-	  exit 1
-	else
-	  $echo
-	  $echo "*** Warning: Linking the shared library $output against the non-libtool"
-	  $echo "*** objects $objs is not portable!"
-	  libobjs="$libobjs $objs"
-	fi
-      fi
-
-      if test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen self' is ignored for libtool libraries" 1>&2
-      fi
-
-      set dummy $rpath
-      if test "$#" -gt 2; then
-	$echo "$modename: warning: ignoring multiple \`-rpath's for a libtool library" 1>&2
-      fi
-      install_libdir="$2"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
-	  # convenience libraries should have the same extension an
-	  # archive normally would.
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-
-	if test -n "$vinfo"; then
-	  $echo "$modename: warning: \`-version-info/-version-number' is ignored for convenience libraries" 1>&2
-	fi
-
-	if test -n "$release"; then
-	  $echo "$modename: warning: \`-release' is ignored for convenience libraries" 1>&2
-	fi
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	IFS="$save_ifs"
-
-	if test -n "$8"; then
-	  $echo "$modename: too many parameters to \`-version-info'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# convert absolute version numbers to libtool ages
-	# this retains compatibility with .la files and attempts
-	# to make the code below a bit more comprehensible
-	
-	case $vinfo_number in
-	yes)
-	  number_major="$2"
-	  number_minor="$3"
-	  number_revision="$4"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  darwin|linux|osf|windows)
-	    current=`expr $number_major + $number_minor`
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    current=`expr $number_major + $number_minor - 1`
-	    age="$number_minor"
-	    revision="$number_minor"
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$2"
-	  revision="$3"
-	  age="$4"
-	  ;;
-	esac
-
-	# Check that each of the things are valid numbers.
-	case $current in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: CURRENT \`$current' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case $revision in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: REVISION \`$revision' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	case $age in
-	0 | [1-9] | [1-9][0-9] | [1-9][0-9][0-9]) ;;
-	*)
-	  $echo "$modename: AGE \`$age' is not a nonnegative integer" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  $echo "$modename: AGE \`$age' is greater than the current interface number \`$current'" 1>&2
-	  $echo "$modename: \`$vinfo' is not valid version information" 1>&2
-	  exit 1
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case $version_type in
-	none) ;;
-
-	darwin)
-	  # Like Linux, but with the current version available in
-	  # verstring for coding it into the library header
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  minor_current=`expr $current + 1`
-	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current";
-	  ;;
-
-	irix | nonstopux)
-	  major=`expr $current - $age + 1`
-
-	  case $version_type in
-	    nonstopux) verstring_prefix=nonstopux ;;
-	    *)         verstring_prefix=sgi ;;
-	  esac
-	  verstring="$verstring_prefix$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test "$loop" -ne 0; do
-	    iface=`expr $revision - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux)
-	  major=.`expr $current - $age`
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  major=.`expr $current - $age`
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test "$loop" -ne 0; do
-	    iface=`expr $current - $loop`
-	    loop=`expr $loop - 1`
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  verstring="$verstring:${current}.0"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  major=`expr $current - $age`
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  $echo "$modename: unknown library version type \`$version_type'" 1>&2
-	  $echo "Fatal configuration error.  See the $PACKAGE docs for more information." 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    $echo "$modename: warning: undefined symbols not allowed in $host shared libraries" 1>&2
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-      fi
-
-      if test "$mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$echo "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       removelist="$removelist $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	if test -n "$removelist"; then
-	  $show "${rm}r $removelist"
-	  $run ${rm}r $removelist
-	fi
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	oldlibs="$oldlibs $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      for path in $notinst_path; do
-	lib_search_path=`$echo "$lib_search_path " | ${SED} -e 's% $path % %g'`
-	deplibs=`$echo "$deplibs " | ${SED} -e 's% -L$path % %g'`
-	dependency_libs=`$echo "$dependency_libs " | ${SED} -e 's% -L$path % %g'`
-      done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  temp_xrpath="$temp_xrpath -R$libdir"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) dlfiles="$dlfiles $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) dlprefiles="$dlprefiles $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    deplibs="$deplibs -framework System"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
- 	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      deplibs="$deplibs -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $rm conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $rm conftest
-	  $LTCC -o conftest conftest.c $deplibs
-	  if test "$?" -eq 0 ; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" -ne "0"; then
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    newdeplibs="$newdeplibs $i"
-		    i=""
-		    ;;
-		  esac
-	        fi
-		if test -n "$i" ; then
-		  libname=`eval \\$echo \"$libname_spec\"`
-		  deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		  set dummy $deplib_matches
-		  deplib_match=$2
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    newdeplibs="$newdeplibs $i"
-		  else
-		    droppeddeps=yes
-		    $echo
-		    $echo "*** Warning: dynamic linker does not accept needed library $i."
-		    $echo "*** I have the capability to make that library automatically link in when"
-		    $echo "*** you link to this library.  But I can only do this if you have a"
-		    $echo "*** shared version of the library, which I believe you do not have"
-		    $echo "*** because a test_compile did reveal that the linker did not use it for"
-		    $echo "*** its dynamic dependency list that programs get resolved with at runtime."
-		  fi
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  else
-	    # Error occurred in the first compile.  Let's try to salvage
-	    # the situation: Compile a separate program for each library.
-	    for i in $deplibs; do
-	      name="`expr $i : '-l\(.*\)'`"
-	      # If $name is empty we are operating on a -L argument.
-              if test "$name" != "" && test "$name" != "0"; then
-		$rm conftest
-		$LTCC -o conftest conftest.c $i
-		# Did it work?
-		if test "$?" -eq 0 ; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      newdeplibs="$newdeplibs $i"
-		      i=""
-		      ;;
-		    esac
-		  fi
-		  if test -n "$i" ; then
-		    libname=`eval \\$echo \"$libname_spec\"`
-		    deplib_matches=`eval \\$echo \"$library_names_spec\"`
-		    set dummy $deplib_matches
-		    deplib_match=$2
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      newdeplibs="$newdeplibs $i"
-		    else
-		      droppeddeps=yes
-		      $echo
-		      $echo "*** Warning: dynamic linker does not accept needed library $i."
-		      $echo "*** I have the capability to make that library automatically link in when"
-		      $echo "*** you link to this library.  But I can only do this if you have a"
-		      $echo "*** shared version of the library, which you do not appear to have"
-		      $echo "*** because a test_compile did reveal that the linker did not use this one"
-		      $echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-		    fi
-		  fi
-		else
-		  droppeddeps=yes
-		  $echo
-		  $echo "*** Warning!  Library $i is needed by this library but I was not able to"
-		  $echo "***  make it link in!  You will probably need to install it or some"
-		  $echo "*** library that it depends on before this library will be fully"
-		  $echo "*** functional.  Installing it before continuing would be even better."
-		fi
-	      else
-		newdeplibs="$newdeplibs $i"
-	      fi
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method
-	  file_magic_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-            if test "$name" != "" && test  "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null \
-			 | grep " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$echo "X$potlib" | $Xsed -e 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null \
-			 | ${SED} 10q \
-			 | $EGREP "$file_magic_regex" > /dev/null; then
-			newdeplibs="$newdeplibs $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$2 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    name="`expr $a_deplib : '-l\(.*\)'`"
-	    # If $name is empty we are operating on a -L argument.
-	    if test -n "$name" && test "$name" != "0"; then
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  newdeplibs="$newdeplibs $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval \\$echo \"$libname_spec\"`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval $echo \"$potent_lib\" 2>/dev/null \
-		        | ${SED} 10q \
-		        | $EGREP "$match_pattern_regex" > /dev/null; then
-		      newdeplibs="$newdeplibs $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		$echo
-		$echo "*** Warning: linker path does not have real file for library $a_deplib."
-		$echo "*** I have the capability to make that library automatically link in when"
-		$echo "*** you link to this library.  But I can only do this if you have a"
-		$echo "*** shared version of the library, which you do not appear to have"
-		$echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $echo "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $echo "*** with $libname and none of the candidates passed a file format test"
-		  $echo "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	    else
-	      # Add a -L argument.
-	      newdeplibs="$newdeplibs $a_deplib"
-	    fi
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$echo "X $deplibs" | $Xsed -e 's/ -lc$//' \
-	    -e 's/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$echo "X $tmp_deplibs" | ${SED} -e "1s,^X,," -e "s,$i,,"`
-	    done
-	  fi
-	  if $echo "X $tmp_deplibs" | $Xsed -e 's/[ 	]//g' \
-	    | grep . >/dev/null; then
-	    $echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      $echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      $echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    $echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	  fi
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library is the System framework
-	  newdeplibs=`$echo "X $newdeplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	  ;;
-	esac
-
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    $echo
-	    $echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    $echo "*** dependencies of module $libname.  Therefore, libtool will create"
-	    $echo "*** a static module, that should work as long as the dlopening"
-	    $echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      $echo
-	      $echo "*** However, this would only work if libtool was able to extract symbol"
-	      $echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      $echo "*** not find such a program.  So, this module is probably useless."
-	      $echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    $echo "*** The inter-library dependencies that have been dropped here will be"
-	    $echo "*** automatically added whenever a program is linked with this library"
-	    $echo "*** or is declared to -dlopen it."
-
-	    if test "$allow_undefined" = no; then
-	      $echo
-	      $echo "*** Since this library must not contain undefined symbols,"
-	      $echo "*** because either the platform does not support them or"
-	      $echo "*** it was explicitly requested with -no-undefined,"
-	      $echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		dep_rpath="$dep_rpath $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) perm_rpath="$perm_rpath $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    if test -n "$hardcode_libdir_flag_spec_ld"; then
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec_ld\"
-	    else
-	      eval dep_rpath=\"$hardcode_libdir_flag_spec\"
-	    fi
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      rpath="$rpath$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	realname="$2"
-	shift; shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
-
-	lib="$output_objdir/$realname"
-	for link
-	do
-	  linknames="$linknames $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$echo "X$libobjs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    eval cmds=\"$export_symbols_cmds\"
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $cmds; do
-	      IFS="$save_ifs"
-	      if len=`expr "X$cmd" : ".*"` &&
-	       test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	        $show "$cmd"
-	        $run eval "$cmd" || exit $?
-	        skipped_export=false
-	      else
-	        # The command line is too long to execute in one step.
-	        $show "using reloadable object file for export list..."
-	        skipped_export=:
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex"; then
-	      $show "$EGREP -e \"$export_symbols_regex\" \"$export_symbols\" > \"${export_symbols}T\""
-	      $run eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      $show "$mv \"${export_symbols}T\" \"$export_symbols\""
-	      $run eval '$mv "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $run eval '$echo "X$include_expsyms" | $SP2NL >> "$export_symbols"'
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-		case " $convenience " in
-		*" $test_deplib "*) ;;
-		*) 
-			tmp_deplibs="$tmp_deplibs $test_deplib"
-			;;
-		esac
-	done
-	deplibs="$tmp_deplibs" 
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    $show "${rm}r $gentop"
-	    $run ${rm}r "$gentop"
-	    $show "$mkdir $gentop"
-	    $run $mkdir "$gentop"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$gentop"; then
-	      exit $status
-	    fi
-	    generated="$generated $gentop"
-
-	    for xlib in $convenience; do
-	      # Extract the objects.
-	      case $xlib in
-	      [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	      *) xabs=`pwd`"/$xlib" ;;
-	      esac
-	      xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	      xdir="$gentop/$xlib"
-
-	      $show "${rm}r $xdir"
-	      $run ${rm}r "$xdir"
-	      $show "$mkdir $xdir"
-	      $run $mkdir "$xdir"
-	      status=$?
-	      if test "$status" -ne 0 && test ! -d "$xdir"; then
-		exit $status
-	      fi
-	      # We will extract separately just the conflicting names and we will no
-	      # longer touch any unique names. It is faster to leave these extract
-	      # automatically by $AR in one run.
-	      $show "(cd $xdir && $AR x $xabs)"
-	      $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	      if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-		:
-	      else
-		$echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-		$echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-		$AR t "$xabs" | sort | uniq -cd | while read -r count name
-		do
-		  i=1
-		  while test "$i" -le "$count"
-		  do
-		   # Put our $i before any first dot (extension)
-		   # Never overwrite any file
-		   name_to="$name"
-		   while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		   do
-		     name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		   done
-		   $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		   $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		   i=`expr $i + 1`
-		  done
-		done
-	      fi
-
-	      libobjs="$libobjs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	    done
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  linker_flags="$linker_flags $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}U && $mv $realname ${realname}U)' || exit $?
-	fi
-
-	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
-	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	    eval cmds=\"$module_expsym_cmds\"
-	  else
-	    eval cmds=\"$module_cmds\"
-	  fi
-	else
-	if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	  eval cmds=\"$archive_expsym_cmds\"
-	else
-	  eval cmds=\"$archive_cmds\"
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" && len=`expr "X$cmds" : ".*"` &&
-	   test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise.
-	  $echo "creating reloadable object files..."
-
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  delfiles=
-	  last_robj=
-	  k=1
-	  output=$output_objdir/$save_output-${k}.$objext
-	  # Loop over the list of objects to be linked.
-	  for obj in $save_libobjs
-	  do
-	    eval test_cmds=\"$reload_cmds $objlist $last_robj\"
-	    if test "X$objlist" = X ||
-	       { len=`expr "X$test_cmds" : ".*"` &&
-		 test "$len" -le "$max_cmd_len"; }; then
-	      objlist="$objlist $obj"
-	    else
-	      # The command $test_cmds is almost too long, add a
-	      # command to the queue.
-	      if test "$k" -eq 1 ; then
-		# The first file doesn't have a previous command to add.
-		eval concat_cmds=\"$reload_cmds $objlist $last_robj\"
-	      else
-		# All subsequent reloadable object files will link in
-		# the last one created.
-		eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
-	      fi
-	      last_robj=$output_objdir/$save_output-${k}.$objext
-	      k=`expr $k + 1`
-	      output=$output_objdir/$save_output-${k}.$objext
-	      objlist=$obj
-	      len=1
-	    fi
-	  done
-	  # Handle the remaining objects by creating one last
-	  # reloadable object file.  All subsequent reloadable object
-	  # files will link in the last one created.
-	  test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	  eval concat_cmds=\"\${concat_cmds}$reload_cmds $objlist $last_robj\"
-
-	  if ${skipped_export-false}; then
-	    $show "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $run $rm $export_symbols
-	    libobjs=$output
-	    # Append the command to create the export file.
-	    eval concat_cmds=\"\$concat_cmds~$export_symbols_cmds\"
-          fi
-
-	  # Set up a command to remove the reloadale object files
-	  # after they are used.
-	  i=0
-	  while test "$i" -lt "$k"
-	  do
-	    i=`expr $i + 1`
-	    delfiles="$delfiles $output_objdir/$save_output-${i}.$objext"
-	  done
-
-	  $echo "creating a temporary reloadable object file: $output"
-
-	  # Loop through the commands generated above and execute them.
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $concat_cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-
-	  libobjs=$output
-	  # Restore the value of output.
-	  output=$save_output
-
-	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    eval cmds=\"$archive_expsym_cmds\"
-	  else
-	    eval cmds=\"$archive_cmds\"
-	  fi
-
-	  # Append the command to remove the reloadable object files
-	  # to the just-reset $cmds.
-	  eval cmds=\"\$cmds~$rm $delfiles\"
-	fi
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$mode" = relink; then
-	  $run eval '(cd $output_objdir && $rm ${realname}T && $mv $realname ${realname}T && $mv "$realname"U $realname)' || exit $?
-	  exit 0
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    $show "(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)"
-	    $run eval '(cd $output_objdir && $rm $linkname && $LN_S $realname $linkname)' || exit $?
-	  fi
-	done
-
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
-
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$rpath"; then
-	$echo "$modename: warning: \`-rpath' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$xrpath"; then
-	$echo "$modename: warning: \`-R' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for objects" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for objects" 1>&2
-      fi
-
-      case $output in
-      *.lo)
-	if test -n "$objs$old_deplibs"; then
-	  $echo "$modename: cannot build library object \`$output' from non-libtool objects" 1>&2
-	  exit 1
-	fi
-	libobj="$output"
-	obj=`$echo "X$output" | $Xsed -e "$lo2o"`
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $run $rm $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
-	else
-	  gentop="$output_objdir/${obj}x"
-	  $show "${rm}r $gentop"
-	  $run ${rm}r "$gentop"
-	  $show "$mkdir $gentop"
-	  $run $mkdir "$gentop"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$gentop"; then
-	    exit $status
-	  fi
-	  generated="$generated $gentop"
-
-	  for xlib in $convenience; do
-	    # Extract the objects.
-	    case $xlib in
-	    [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	    *) xabs=`pwd`"/$xlib" ;;
-	    esac
-	    xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	    xdir="$gentop/$xlib"
-
-	    $show "${rm}r $xdir"
-	    $run ${rm}r "$xdir"
-	    $show "$mkdir $xdir"
-	    $run $mkdir "$xdir"
-	    status=$?
-	    if test "$status" -ne 0 && test ! -d "$xdir"; then
-	      exit $status
-	    fi
-	    # We will extract separately just the conflicting names and we will no
-	    # longer touch any unique names. It is faster to leave these extract
-	    # automatically by $AR in one run.
-	    $show "(cd $xdir && $AR x $xabs)"
-	    $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	    if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	      :
-	    else
-	      $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	      $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	      $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	      do
-		i=1
-		while test "$i" -le "$count"
-		do
-		 # Put our $i before any first dot (extension)
-		 # Never overwrite any file
-		 name_to="$name"
-		 while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-		 do
-		   name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-		 done
-		 $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-		 $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-		 i=`expr $i + 1`
-		done
-	      done
-	    fi
-
-	    reload_conv_objs="$reload_objs "`find $xdir -name \*.$objext -print -o -name \*.lo -print | $NL2SP`
-	  done
-	fi
-      fi
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}$'/d' -e '/\.lib$/d' -e "$lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      eval cmds=\"$reload_cmds\"
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	exit 0
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  $show "${rm}r $gentop"
-	  $run ${rm}r $gentop
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	# $show "echo timestamp > $libobj"
-	# $run eval "echo timestamp > $libobj" || exit $?
-	exit 0
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	eval cmds=\"$reload_cmds\"
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  $show "$cmd"
-	  $run eval "$cmd" || exit $?
-	done
-	IFS="$save_ifs"
-      fi
-
-      if test -n "$gentop"; then
-	$show "${rm}r $gentop"
-	$run ${rm}r $gentop
-      fi
-
-      exit 0
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) output=`$echo $output | ${SED} -e 's,.exe$,,;s,$,.exe,'` ;;
-      esac
-      if test -n "$vinfo"; then
-	$echo "$modename: warning: \`-version-info' is ignored for programs" 1>&2
-      fi
-
-      if test -n "$release"; then
-	$echo "$modename: warning: \`-release' is ignored for programs" 1>&2
-      fi
-
-      if test "$preload" = yes; then
-	if test "$dlopen_support" = unknown && test "$dlopen_self" = unknown &&
-	   test "$dlopen_self_static" = unknown; then
-	  $echo "$modename: warning: \`AC_LIBTOOL_DLOPEN' not used. Assuming no dlopen support."
-	fi
-      fi
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$echo "X $compile_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	finalize_deplibs=`$echo "X $finalize_deplibs" | $Xsed -e 's/ -lc / -framework System /'`
-	;;
-      esac
-
-      case $host in
-      *darwin*)
-        # Don't allow lazy linking, it breaks C++ global constructors
-        if test "$tagname" = CXX ; then
-        compile_command="$compile_command ${wl}-bind_at_load"
-        finalize_command="$finalize_command ${wl}-bind_at_load"
-        fi
-        ;;
-      esac
-
-      compile_command="$compile_command $compile_deplibs"
-      finalize_command="$finalize_command $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_rpath="$finalize_rpath $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) perm_rpath="$perm_rpath $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  *) dllsearchpath="$dllsearchpath:$libdir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		hardcode_libdirs="$hardcode_libdirs$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    rpath="$rpath $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) finalize_perm_rpath="$finalize_perm_rpath $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-      fi
-
-      dlsyms=
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	  dlsyms="${outputname}S.c"
-	else
-	  $echo "$modename: not configured to extract global symbols from dlpreopened files" 1>&2
-	fi
-      fi
-
-      if test -n "$dlsyms"; then
-	case $dlsyms in
-	"") ;;
-	*.c)
-	  # Discover the nlist of each of the dlfiles.
-	  nlist="$output_objdir/${outputname}.nm"
-
-	  $show "$rm $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Parse the name list into a source file.
-	  $show "creating $output_objdir/$dlsyms"
-
-	  test -z "$run" && $echo > "$output_objdir/$dlsyms" "\
-/* $dlsyms - symbol resolution table for \`$outputname' dlsym emulation. */
-/* Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* Prevent the only kind of declaration conflicts we can make. */
-#define lt_preloaded_symbols some_other_symbol
-
-/* External symbol declarations for the compiler. */\
-"
-
-	  if test "$dlself" = yes; then
-	    $show "generating symbol list for \`$output'"
-
-	    test -z "$run" && $echo ': @PROGRAM@ ' > "$nlist"
-
-	    # Add our own program objects to the symbol list.
-	    progfiles=`$echo "X$objs$old_deplibs" | $SP2NL | $Xsed -e "$lo2o" | $NL2SP`
-	    for arg in $progfiles; do
-	      $show "extracting global C symbols from \`$arg'"
-	      $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	    done
-
-	    if test -n "$exclude_expsyms"; then
-	      $run eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    if test -n "$export_symbols_regex"; then
-	      $run eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      $run eval '$mv "$nlist"T "$nlist"'
-	    fi
-
-	    # Prepare the list of exported symbols
-	    if test -z "$export_symbols"; then
-	      export_symbols="$output_objdir/$output.exp"
-	      $run $rm $export_symbols
-	      $run eval "${SED} -n -e '/^: @PROGRAM@$/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	    else
-	      $run eval "${SED} -e 's/\([][.*^$]\)/\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$output.exp"'
-	      $run eval 'grep -f "$output_objdir/$output.exp" < "$nlist" > "$nlist"T'
-	      $run eval 'mv "$nlist"T "$nlist"'
-	    fi
-	  fi
-
-	  for arg in $dlprefiles; do
-	    $show "extracting global C symbols from \`$arg'"
-	    name=`$echo "$arg" | ${SED} -e 's%^.*/%%'`
-	    $run eval '$echo ": $name " >> "$nlist"'
-	    $run eval "$NM $arg | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -z "$run"; then
-	    # Make sure we have at least an empty file.
-	    test -f "$nlist" || : > "$nlist"
-
-	    if test -n "$exclude_expsyms"; then
-	      $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	      $mv "$nlist"T "$nlist"
-	    fi
-
-	    # Try sorting and uniquifying the output.
-	    if grep -v "^: " < "$nlist" |
-		if sort -k 3 </dev/null >/dev/null 2>&1; then
-		  sort -k 3
-		else
-		  sort +2
-		fi |
-		uniq > "$nlist"S; then
-	      :
-	    else
-	      grep -v "^: " < "$nlist" > "$nlist"S
-	    fi
-
-	    if test -f "$nlist"S; then
-	      eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$dlsyms"'
-	    else
-	      $echo '/* NONE */' >> "$output_objdir/$dlsyms"
-	    fi
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-
-#undef lt_preloaded_symbols
-
-#if defined (__STDC__) && __STDC__
-# define lt_ptr void *
-#else
-# define lt_ptr char *
-# define const
-#endif
-
-/* The mapping between symbol names and symbols. */
-const struct {
-  const char *name;
-  lt_ptr address;
-}
-lt_preloaded_symbols[] =
-{\
-"
-
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$dlsyms"
-
-	    $echo >> "$output_objdir/$dlsyms" "\
-  {0, (lt_ptr) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	  fi
-
-	  pic_flag_for_symtable=
-	  case $host in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND";;
-	    esac;;
-	  *-*-hpux*)
-	    case "$compile_command " in
-	    *" -static "*) ;;
-	    *) pic_flag_for_symtable=" $pic_flag";;
-	    esac
-	  esac
-
-	  # Now compile the dynamic symbol file.
-	  $show "(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable \"$dlsyms\")"
-	  $run eval '(cd $output_objdir && $LTCC -c$no_builtin_flag$pic_flag_for_symtable "$dlsyms")' || exit $?
-
-	  # Clean up the generated files.
-	  $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T"
-	  $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T"
-
-	  # Transform the symbol file into the correct name.
-	  compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
-	  ;;
-	*)
-	  $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2
-	  exit 1
-	  ;;
-	esac
-      else
-	# We keep going just in case the user didn't refer to
-	# lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-	# really was required.
-
-	# Nullify the symbol file.
-	compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
-	finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
-      fi
-
-      if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-	# Replace the output file specification.
-	compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	$show "$link_command"
-	$run eval "$link_command"
-	status=$?
-
-	# Delete the generated files.
-	if test -n "$dlsyms"; then
-	  $show "$rm $output_objdir/${outputname}S.${objext}"
-	  $run $rm "$output_objdir/${outputname}S.${objext}"
-	fi
-
-	exit $status
-      fi
-
-      if test -n "$shlibpath_var"; then
-	# We should set the shlibpath_var
-	rpath=
-	for dir in $temp_rpath; do
-	  case $dir in
-	  [\\/]* | [A-Za-z]:[\\/]*)
-	    # Absolute path.
-	    rpath="$rpath$dir:"
-	    ;;
-	  *)
-	    # Relative path: add a thisdir entry.
-	    rpath="$rpath\$thisdir/$dir:"
-	    ;;
-	  esac
-	done
-	temp_rpath="$rpath"
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    rpath="$rpath$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$run $rm $output
-	# Link the executable and exit
-	$show "$link_command"
-	$run eval "$link_command" || exit $?
-	exit 0
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-	$echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2
-	$echo "$modename: \`$output' will be relinked during installation" 1>&2
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$echo "X$link_command" | $Xsed -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $run $rm $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      $show "$link_command"
-      $run eval "$link_command" || exit $?
-
-      # Now create the wrapper script.
-      $show "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	# Preserve any variables that may affect compiler behavior
-	for var in $variables_saved_for_relink; do
-	  if eval test -z \"\${$var+set}\"; then
-	    relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-	  elif eval var_value=\$$var; test -z "$var_value"; then
-	    relink_command="$var=; export $var; $relink_command"
-	  else
-	    var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	    relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Quote $echo for shipping.
-      if test "X$echo" = "X$SHELL $0 --fallback-echo"; then
-	case $0 in
-	[\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $0 --fallback-echo";;
-	*) qecho="$SHELL `pwd`/$0 --fallback-echo";;
-	esac
-	qecho=`$echo "X$qecho" | $Xsed -e "$sed_quote_subst"`
-      else
-	qecho=`$echo "X$echo" | $Xsed -e "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if our run command is non-null.
-      if test -z "$run"; then
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) output=`$echo $output|${SED} 's,.exe$,,'` ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    outputname=`$echo $outputname|${SED} 's,.exe$,,'` ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    cwrappersource=`$echo ${objdir}/lt-${output}.c`
-	    cwrapper=`$echo ${output}.exe`
-	    $rm $cwrappersource $cwrapper
-	    trap "$rm $cwrappersource $cwrapper; exit 1" 1 2 15
-
-	    cat > $cwrappersource <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-   
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-
-   Currently, it simply execs the wrapper *script* "/bin/sh $output",
-   but could eventually absorb all of the scripts functionality and
-   exec $objdir/$outputname directly.
-*/
-EOF
-	    cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef DIR_SEPARATOR
-#define DIR_SEPARATOR '/'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-#define HAVE_DOS_BASED_FILE_SYSTEM
-#ifndef DIR_SEPARATOR_2 
-#define DIR_SEPARATOR_2 '\\'
-#endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-        (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-const char *program_name = NULL;
-
-void * xmalloc (size_t num);
-char * xstrdup (const char *string);
-char * basename (const char *name);
-char * fnqualify(const char *path);
-char * strendzap(char *str, const char *pat);
-void lt_fatal (const char *message, ...);
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int i;
-  
-  program_name = (char *) xstrdup ((char *) basename (argv[0]));
-  newargz = XMALLOC(char *, argc+2);
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  newargz[0] = "$SHELL";
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-  newargz[1] = fnqualify(argv[0]);
-  /* we know the script has the same name, without the .exe */
-  /* so make sure newargz[1] doesn't end in .exe */
-  strendzap(newargz[1],".exe"); 
-  for (i = 1; i < argc; i++)
-    newargz[i+1] = xstrdup(argv[i]);
-  newargz[argc+1] = NULL;
-EOF
-
-	    cat >> $cwrappersource <<EOF
-  execv("$SHELL",newargz);
-EOF
-
-	    cat >> $cwrappersource <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
-  void * p = (void *) malloc (num);
-  if (!p)
-    lt_fatal ("Memory exhausted");
-
-  return p;
-}
-
-char * 
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1), string) : NULL
-;
-}
-
-char *
-basename (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha (name[0]) && name[1] == ':') 
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return (char *) base;
-}
-
-char * 
-fnqualify(const char *path)
-{
-  size_t size;
-  char *p;
-  char tmp[LT_PATHMAX + 1];
-
-  assert(path != NULL);
-
-  /* Is it qualified already? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha (path[0]) && path[1] == ':')
-    return xstrdup (path);
-#endif
-  if (IS_DIR_SEPARATOR (path[0]))
-    return xstrdup (path);
-
-  /* prepend the current directory */
-  /* doesn't handle '~' */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal ("getcwd failed");
-  size = strlen(tmp) + 1 + strlen(path) + 1; /* +2 for '/' and '\0' */
-  p = XMALLOC(char, size);
-  sprintf(p, "%s%c%s", tmp, DIR_SEPARATOR, path);
-  return p;
-}
-
-char *
-strendzap(char *str, const char *pat) 
-{
-  size_t len, patlen;
-
-  assert(str != NULL);
-  assert(pat != NULL);
-
-  len = strlen(str);
-  patlen = strlen(pat);
-
-  if (patlen <= len)
-  {
-    str += len - patlen;
-    if (strcmp(str, pat) == 0)
-      *str = '\0';
-  }
-  return str;
-}
-
-static void
-lt_error_core (int exit_status, const char * mode, 
-          const char * message, va_list ap)
-{
-  fprintf (stderr, "%s: %s: ", program_name, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, "FATAL", message, ap);
-  va_end (ap);
-}
-EOF
-	  # we should really use a build-platform specific compiler
-	  # here, but OTOH, the wrappers (shell script and this C one)
-	  # are only useful if you want to execute the "real" binary.
-	  # Since the "real" binary is built for $host, then this
-	  # wrapper might as well be built for $host, too.
-	  $run $LTCC -s -o $cwrapper $cwrappersource
-	  ;;
-	esac
-	$rm $output
-	trap "$rm $output; exit 1" 1 2 15
-
-	$echo > $output "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed='${SED} -e 1s/^X//'
-sed_quote_subst='$sed_quote_subst'
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-if test \"\${CDPATH+set}\" = set; then CDPATH=:; export CDPATH; fi
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variable:
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$echo are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    echo=\"$qecho\"
-    file=\"\$0\"
-    # Make sure echo works.
-    if test \"X\$1\" = X--no-reexec; then
-      # Discard the --no-reexec flag, and continue.
-      shift
-    elif test \"X\`(\$echo '\t') 2>/dev/null\`\" = 'X\t'; then
-      # Yippee, \$echo works!
-      :
-    else
-      # Restart under the correct shell, and then maybe \$echo will work.
-      exec $SHELL \"\$0\" --no-reexec \${1+\"\$@\"}
-    fi
-  fi\
-"
-	$echo >> $output "\
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | ${SED} -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$echo \"X\$file\" | \$Xsed -e 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$echo \"X\$file\" | \$Xsed -e 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | ${SED} -n 's/.*-> //p'\`
-  done
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $echo >> $output "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" || \\
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $mkdir \"\$progdir\"
-    else
-      $rm \"\$progdir/\$file\"
-    fi"
-
-	  $echo >> $output "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-	$echo \"\$relink_command_output\" >&2
-	$rm \"\$progdir/\$file\"
-	exit 1
-      fi
-    fi
-
-    $mv \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $rm \"\$progdir/\$program\";
-      $mv \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $rm \"\$progdir/\$file\"
-  fi"
-	else
-	  $echo >> $output "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$echo >> $output "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $echo >> $output "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$echo \"X\$$shlibpath_var\" | \$Xsed -e 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	# fixup the dll searchpath if we need to.
-	if test -n "$dllsearchpath"; then
-	  $echo >> $output "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	$echo >> $output "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-"
-	case $host in
-	# Backslashes separate directories on plain windows
-	*-*-mingw | *-*-os2*)
-	  $echo >> $output "\
-      exec \$progdir\\\\\$program \${1+\"\$@\"}
-"
-	  ;;
-
-	*)
-	  $echo >> $output "\
-      exec \$progdir/\$program \${1+\"\$@\"}
-"
-	  ;;
-	esac
-	$echo >> $output "\
-      \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
-      exit 1
-    fi
-  else
-    # The program doesn't exist.
-    \$echo \"\$0: error: \$progdir/\$program does not exist\" 1>&2
-    \$echo \"This script is just a wrapper for \$program.\" 1>&2
-    $echo \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-	chmod +x $output
-      fi
-      exit 0
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$old_deplibs $non_pic_objects"
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	$show "${rm}r $gentop"
-	$run ${rm}r "$gentop"
-	$show "$mkdir $gentop"
-	$run $mkdir "$gentop"
-	status=$?
-	if test "$status" -ne 0 && test ! -d "$gentop"; then
-	  exit $status
-	fi
-	generated="$generated $gentop"
-
-	# Add in members from convenience archives.
-	for xlib in $addlibs; do
-	  # Extract the objects.
-	  case $xlib in
-	  [\\/]* | [A-Za-z]:[\\/]*) xabs="$xlib" ;;
-	  *) xabs=`pwd`"/$xlib" ;;
-	  esac
-	  xlib=`$echo "X$xlib" | $Xsed -e 's%^.*/%%'`
-	  xdir="$gentop/$xlib"
-
-	  $show "${rm}r $xdir"
-	  $run ${rm}r "$xdir"
-	  $show "$mkdir $xdir"
-	  $run $mkdir "$xdir"
-	  status=$?
-	  if test "$status" -ne 0 && test ! -d "$xdir"; then
-	    exit $status
-	  fi
-	  # We will extract separately just the conflicting names and we will no
-	  # longer touch any unique names. It is faster to leave these extract
-	  # automatically by $AR in one run.
-	  $show "(cd $xdir && $AR x $xabs)"
-	  $run eval "(cd \$xdir && $AR x \$xabs)" || exit $?
-	  if ($AR t "$xabs" | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; renaming object files" 1>&2
-	    $echo "$modename: warning: to ensure that they will not overwrite" 1>&2
-	    $AR t "$xabs" | sort | uniq -cd | while read -r count name
-	    do
-	      i=1
-	      while test "$i" -le "$count"
-	      do
-	       # Put our $i before any first dot (extension)
-	       # Never overwrite any file
-	       name_to="$name"
-	       while test "X$name_to" = "X$name" || test -f "$xdir/$name_to"
-	       do
-		 name_to=`$echo "X$name_to" | $Xsed -e "s/\([^.]*\)/\1-$i/"`
-	       done
-	       $show "(cd $xdir && $AR xN $i $xabs '$name' && $mv '$name' '$name_to')"
-	       $run eval "(cd \$xdir && $AR xN $i \$xabs '$name' && $mv '$name' '$name_to')" || exit $?
-	       i=`expr $i + 1`
-	      done
-	    done
-	  fi
-
-	  oldobjs="$oldobjs "`find $xdir -name \*.${objext} -print -o -name \*.lo -print | $NL2SP`
-	done
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	eval cmds=\"$old_archive_from_new_cmds\"
-      else
-	eval cmds=\"$old_archive_cmds\"
-
-	if len=`expr "X$cmds" : ".*"` &&
-	     test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # the command line is too long to link in one step, link in parts
-	  $echo "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  # GNU ar 2.10+ was changed to match POSIX; thus no paths are
-	  # encoded into archives.  This makes 'ar r' malfunction in
-	  # this piecewise linking case whenever conflicting object
-	  # names appear in distinct ar calls; check, warn and compensate.
-	    if (for obj in $save_oldobjs
-	    do
-	      $echo "X$obj" | $Xsed -e 's%^.*/%%'
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	    :
-	  else
-	    $echo "$modename: warning: object name conflicts; overriding AR_FLAGS to 'cq'" 1>&2
-	    $echo "$modename: warning: to ensure that POSIX-compatible ar will work" 1>&2
-	    AR_FLAGS=cq
-	  fi
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done  
-	  for obj in $save_oldobjs
-	  do
-	    oldobjs="$objlist $obj"
-	    objlist="$objlist $obj"
-	    eval test_cmds=\"$old_archive_cmds\"
-	    if len=`expr "X$test_cmds" : ".*"` &&
-	       test "$len" -le "$max_cmd_len"; then
-	      :
-	    else
-	      # the above command should be used before it gets too long
-	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
-	        RANLIB=$save_RANLIB
-	      fi  
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
-	    fi
-	  done
-	  RANLIB=$save_RANLIB
-	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
-	    eval cmds=\"\$concat_cmds\"
-	  else
-	    eval cmds=\"\$concat_cmds~$old_archive_cmds\"
-	  fi
-	fi
-      fi
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$generated"; then
-      $show "${rm}r$generated"
-      $run ${rm}r$generated
-    fi
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      $show "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-	if eval test -z \"\${$var+set}\"; then
-	  relink_command="{ test -z \"\${$var+set}\" || unset $var || { $var=; export $var; }; }; $relink_command"
-	elif eval var_value=\$$var; test -z "$var_value"; then
-	  relink_command="$var=; export $var; $relink_command"
-	else
-	  var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"`
-	  relink_command="$var=\"$var_value\"; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $0 --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
-
-      # Only create the output if not a dry run.
-      if test -z "$run"; then
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	    # Replace all uninstalled libtool libraries with the installed ones
-	    newdependency_libs=
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      *.la)
-		name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		if test -z "$libdir"; then
-		  $echo "$modename: \`$deplib' is not a valid libtool archive" 1>&2
-		  exit 1
-		fi
-		newdependency_libs="$newdependency_libs $libdir/$name"
-		;;
-	      *) newdependency_libs="$newdependency_libs $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit 1
-	      fi
-	      newdlfiles="$newdlfiles $libdir/$name"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      name=`$echo "X$lib" | $Xsed -e 's%^.*/%%'`
-	      eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-	      if test -z "$libdir"; then
-		$echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-		exit 1
-	      fi
-	      newdlprefiles="$newdlprefiles $libdir/$name"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $rm $output
-	  # place dlname in correct position for cygwin
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
-	  esac
-	  $echo > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM - GNU $PACKAGE $VERSION$TIMESTAMP
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
-	    $echo >> $output "\
-relink_command=\"$relink_command\""
-	  fi
-	done
-      fi
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      $show "(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)"
-      $run eval '(cd $output_objdir && $rm $outputname && $LN_S ../$outputname $outputname)' || exit $?
-      ;;
-    esac
-    exit 0
-    ;;
-
-  # libtool install mode
-  install)
-    modename="$modename: install"
-
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       $echo "X$nonopt" | $Xsed | grep shtool > /dev/null; then
-      # Aesthetically quote it.
-      arg=`$echo "X$nonopt" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$arg "
-      arg="$1"
-      shift
-    else
-      install_prog=
-      arg="$nonopt"
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-    case $arg in
-    *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-      arg="\"$arg\""
-      ;;
-    esac
-    install_prog="$install_prog$arg"
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    for arg
-    do
-      if test -n "$dest"; then
-	files="$files $dest"
-	dest="$arg"
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f) prev="-f" ;;
-      -g) prev="-g" ;;
-      -m) prev="-m" ;;
-      -o) prev="-o" ;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*) ;;
-
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  prev=
-	else
-	  dest="$arg"
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      arg=`$echo "X$arg" | $Xsed -e "$sed_quote_subst"`
-      case $arg in
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*)
-	arg="\"$arg\""
-	;;
-      esac
-      install_prog="$install_prog $arg"
-    done
-
-    if test -z "$install_prog"; then
-      $echo "$modename: you must specify an install program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -n "$prev"; then
-      $echo "$modename: the \`$prev' option requires an argument" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	$echo "$modename: no file or destination specified" 1>&2
-      else
-	$echo "$modename: you must specify a destination" 1>&2
-      fi
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    # Strip any trailing slash from the destination.
-    dest=`$echo "X$dest" | $Xsed -e 's%/$%%'`
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      destdir=`$echo "X$dest" | $Xsed -e 's%/[^/]*$%%'`
-      test "X$destdir" = "X$dest" && destdir=.
-      destname=`$echo "X$dest" | $Xsed -e 's%^.*/%%'`
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files
-      if test "$#" -gt 2; then
-	$echo "$modename: \`$dest' is not a directory" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  $echo "$modename: \`$destdir' must be an absolute directory name" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	staticlibs="$staticlibs $file"
-	;;
-
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$file' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	library_names=
-	old_library=
-	relink_command=
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) current_libdirs="$current_libdirs $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) future_libdirs="$future_libdirs $libdir" ;;
-	  esac
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`/
-	test "X$dir" = "X$file/" && dir=
-	dir="$dir$objdir"
-
-	if test -n "$relink_command"; then
-	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$echo "$destdir" | $SED "s%$libdir\$%%"`
-
-	  # Don't allow the user to place us outside of our expected
-	  # location b/c this prevents finding dependent libraries that
-	  # are installed to the same prefix.
-	  # At present, this check doesn't affect windows .dll's that
-	  # are installed into $libdir/../bin (currently, that works fine)
-	  # but it's something to keep an eye on.
-	  if test "$inst_prefix_dir" = "$destdir"; then
-	    $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
-	    exit 1
-	  fi
-
-	  if test -n "$inst_prefix_dir"; then
-	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-	  else
-	    relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-	  fi
-
-	  $echo "$modename: warning: relinking \`$file'" 1>&2
-	  $show "$relink_command"
-	  if $run eval "$relink_command"; then :
-	  else
-	    $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-	    exit 1
-	  fi
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names
-	if test -n "$2"; then
-	  realname="$2"
-	  shift
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  $show "$install_prog $dir/$srcname $destdir/$realname"
-	  $run eval "$install_prog $dir/$srcname $destdir/$realname" || exit $?
-	  if test -n "$stripme" && test -n "$striplib"; then
-	    $show "$striplib $destdir/$realname"
-	    $run eval "$striplib $destdir/$realname" || exit $?
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    for linkname
-	    do
-	      if test "$linkname" != "$realname"; then
-		$show "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-		$run eval "(cd $destdir && $rm $linkname && $LN_S $realname $linkname)"
-	      fi
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  eval cmds=\"$postinstall_cmds\"
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || exit $?
-	  done
-	  IFS="$save_ifs"
-	fi
-
-	# Install the pseudo-library for information purposes.
-	name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	instname="$dir/$name"i
-	$show "$install_prog $instname $destdir/$name"
-	$run eval "$install_prog $instname $destdir/$name" || exit $?
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && staticlibs="$staticlibs $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  staticdest=`$echo "X$destfile" | $Xsed -e "$lo2o"`
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  $echo "$modename: cannot copy a libtool object to \`$destfile'" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	if test -n "$destfile"; then
-	  $show "$install_prog $file $destfile"
-	  $run eval "$install_prog $file $destfile" || exit $?
-	fi
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  staticobj=`$echo "X$file" | $Xsed -e "$lo2o"`
-
-	  $show "$install_prog $staticobj $staticdest"
-	  $run eval "$install_prog \$staticobj \$staticdest" || exit $?
-	fi
-	exit 0
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  destfile=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-	  destfile="$destdir/$destfile"
-	fi
-
-	# If the file is missing, and there is a .exe on the end, strip it
-	# because it is most likely a libtool script we actually want to
-	# install
-	stripped_ext=""
-	case $file in
-	  *.exe)
-	    if test ! -f "$file"; then
-	      file=`$echo $file|${SED} 's,.exe$,,'`
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin*|*mingw*)
-	    wrapper=`$echo $file | ${SED} -e 's,.exe$,,'`
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if (${SED} -e '4q' $wrapper | grep "^# Generated by .*$PACKAGE")>/dev/null 2>&1; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  # Check the variables that should have been set.
-	  if test -z "$notinst_deplibs"; then
-	    $echo "$modename: invalid libtool wrapper script \`$wrapper'" 1>&2
-	    exit 1
-	  fi
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      # If there is no directory component, then add one.
-	      case $lib in
-	      */* | *\\*) . $lib ;;
-	      *) . ./$lib ;;
-	      esac
-	    fi
-	    libfile="$libdir/"`$echo "X$lib" | $Xsed -e 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      $echo "$modename: warning: \`$lib' has not been installed in \`$libdir'" 1>&2
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  # To insure that "foo" is sourced, and not "foo.exe",
-	  # finese the cygwin/MSYS system by explicitly sourcing "foo."
-	  # which disallows the automatic-append-.exe behavior.
-	  case $build in
-	  *cygwin* | *mingw*) wrapperdot=${wrapper}. ;;
-	  *) wrapperdot=${wrapper} ;;
-	  esac
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . ${wrapperdot} ;;
-	  *) . ./${wrapperdot} ;;
-	  esac
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    if test "$finalize" = yes && test -z "$run"; then
-	      tmpdir="/tmp"
-	      test -n "$TMPDIR" && tmpdir="$TMPDIR"
-	      tmpdir="$tmpdir/libtool-$$"
-	      if $mkdir -p "$tmpdir" && chmod 700 "$tmpdir"; then :
-	      else
-		$echo "$modename: error: cannot create temporary directory \`$tmpdir'" 1>&2
-		continue
-	      fi
-	      file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
-	      outputname="$tmpdir/$file"
-	      # Replace the output file specification.
-	      relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
-
-	      $show "$relink_command"
-	      if $run eval "$relink_command"; then :
-	      else
-		$echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2
-		${rm}r "$tmpdir"
-		continue
-	      fi
-	      file="$outputname"
-	    else
-	      $echo "$modename: warning: cannot relink \`$file'" 1>&2
-	    fi
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$echo "X$file$stripped_ext" | $Xsed -e "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyways
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    destfile=`$echo $destfile | ${SED} -e 's,.exe$,,'`
-	    ;;
-	  esac
-	  ;;
-	esac
-	$show "$install_prog$stripme $file $destfile"
-	$run eval "$install_prog\$stripme \$file \$destfile" || exit $?
-	test -n "$outputname" && ${rm}r "$tmpdir"
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-
-      $show "$install_prog $file $oldlib"
-      $run eval "$install_prog \$file \$oldlib" || exit $?
-
-      if test -n "$stripme" && test -n "$striplib"; then
-	$show "$old_striplib $oldlib"
-	$run eval "$old_striplib $oldlib" || exit $?
-      fi
-
-      # Do each command in the postinstall commands.
-      eval cmds=\"$old_postinstall_cmds\"
-      save_ifs="$IFS"; IFS='~'
-      for cmd in $cmds; do
-	IFS="$save_ifs"
-	$show "$cmd"
-	$run eval "$cmd" || exit $?
-      done
-      IFS="$save_ifs"
-    done
-
-    if test -n "$future_libdirs"; then
-      $echo "$modename: warning: remember to run \`$progname --finish$future_libdirs'" 1>&2
-    fi
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      test -n "$run" && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $0 --finish$current_libdirs'
-    else
-      exit 0
-    fi
-    ;;
-
-  # libtool finish mode
-  finish)
-    modename="$modename: finish"
-    libdirs="$nonopt"
-    admincmds=
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for dir
-      do
-	libdirs="$libdirs $dir"
-      done
-
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  eval cmds=\"$finish_cmds\"
-	  save_ifs="$IFS"; IFS='~'
-	  for cmd in $cmds; do
-	    IFS="$save_ifs"
-	    $show "$cmd"
-	    $run eval "$cmd" || admincmds="$admincmds
-       $cmd"
-	  done
-	  IFS="$save_ifs"
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $run eval "$cmds" || admincmds="$admincmds
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    test "$show" = : && exit 0
-
-    $echo "----------------------------------------------------------------------"
-    $echo "Libraries have been installed in:"
-    for libdir in $libdirs; do
-      $echo "   $libdir"
-    done
-    $echo
-    $echo "If you ever happen to want to link against installed libraries"
-    $echo "in a given directory, LIBDIR, you must either use libtool, and"
-    $echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-    $echo "flag during linking and do at least one of the following:"
-    if test -n "$shlibpath_var"; then
-      $echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-      $echo "     during execution"
-    fi
-    if test -n "$runpath_var"; then
-      $echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-      $echo "     during linking"
-    fi
-    if test -n "$hardcode_libdir_flag_spec"; then
-      libdir=LIBDIR
-      eval flag=\"$hardcode_libdir_flag_spec\"
-
-      $echo "   - use the \`$flag' linker flag"
-    fi
-    if test -n "$admincmds"; then
-      $echo "   - have your system administrator run these commands:$admincmds"
-    fi
-    if test -f /etc/ld.so.conf; then
-      $echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-    fi
-    $echo
-    $echo "See any operating system documentation about shared libraries for"
-    $echo "more information, such as the ld(1) and ld.so(8) manual pages."
-    $echo "----------------------------------------------------------------------"
-    exit 0
-    ;;
-
-  # libtool execute mode
-  execute)
-    modename="$modename: execute"
-
-    # The first argument is the command name.
-    cmd="$nonopt"
-    if test -z "$cmd"; then
-      $echo "$modename: you must specify a COMMAND" 1>&2
-      $echo "$help"
-      exit 1
-    fi
-
-    # Handle -dlopen flags immediately.
-    for file in $execute_dlfiles; do
-      if test ! -f "$file"; then
-	$echo "$modename: \`$file' is not a file" 1>&2
-	$echo "$help" 1>&2
-	exit 1
-      fi
-
-      dir=
-      case $file in
-      *.la)
-	# Check to see that this really is a libtool archive.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then :
-	else
-	  $echo "$modename: \`$lib' is not a valid libtool archive" 1>&2
-	  $echo "$help" 1>&2
-	  exit 1
-	fi
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-
-	# If there is no directory component, then add one.
-	case $file in
-	*/* | *\\*) . $file ;;
-	*) . ./$file ;;
-	esac
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && $echo "$modename: warning: \`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  dir="$dir/$objdir"
-	else
-	  $echo "$modename: cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'" 1>&2
-	  exit 1
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-	test "X$dir" = "X$file" && dir=.
-	;;
-
-      *)
-	$echo "$modename: warning \`-dlopen' is ignored for non-libtool libraries and objects" 1>&2
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -*) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  # If there is no directory component, then add one.
-	  case $file in
-	  */* | *\\*) . $file ;;
-	  *) . ./$file ;;
-	  esac
-
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      file=`$echo "X$file" | $Xsed -e "$sed_quote_subst"`
-      args="$args \"$file\""
-    done
-
-    if test -z "$run"; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      if test "${save_LC_ALL+set}" = set; then
-	LC_ALL="$save_LC_ALL"; export LC_ALL
-      fi
-      if test "${save_LANG+set}" = set; then
-	LANG="$save_LANG"; export LANG
-      fi
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\""
-	$echo "export $shlibpath_var"
-      fi
-      $echo "$cmd$args"
-      exit 0
-    fi
-    ;;
-
-  # libtool clean and uninstall mode
-  clean | uninstall)
-    modename="$modename: $mode"
-    rm="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) rm="$rm $arg"; rmforce=yes ;;
-      -*) rm="$rm $arg" ;;
-      *) files="$files $arg" ;;
-      esac
-    done
-
-    if test -z "$rm"; then
-      $echo "$modename: you must specify an RM program" 1>&2
-      $echo "$help" 1>&2
-      exit 1
-    fi
-
-    rmdirs=
-
-    origobjdir="$objdir"
-    for file in $files; do
-      dir=`$echo "X$file" | $Xsed -e 's%/[^/]*$%%'`
-      if test "X$dir" = "X$file"; then
-	dir=.
-	objdir="$origobjdir"
-      else
-	objdir="$dir/$origobjdir"
-      fi
-      name=`$echo "X$file" | $Xsed -e 's%^.*/%%'`
-      test "$mode" = uninstall && objdir="$dir"
-
-      # Remember objdir for removal later, being careful to avoid duplicates
-      if test "$mode" = clean; then
-	case " $rmdirs " in
-	  *" $objdir "*) ;;
-	  *) rmdirs="$rmdirs $objdir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if (test -L "$file") >/dev/null 2>&1 \
-	|| (test -h "$file") >/dev/null 2>&1 \
-	|| test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	  . $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    rmfiles="$rmfiles $objdir/$n"
-	  done
-	  test -n "$old_library" && rmfiles="$rmfiles $objdir/$old_library"
-	  test "$mode" = clean && rmfiles="$rmfiles $objdir/$name $objdir/${name}i"
-
-	  if test "$mode" = uninstall; then
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      eval cmds=\"$postuninstall_cmds\"
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      eval cmds=\"$old_postuninstall_cmds\"
-	      save_ifs="$IFS"; IFS='~'
-	      for cmd in $cmds; do
-		IFS="$save_ifs"
-		$show "$cmd"
-		$run eval "$cmd"
-		if test "$?" -ne 0 && test "$rmforce" != yes; then
-		  exit_status=1
-		fi
-	      done
-	      IFS="$save_ifs"
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-
-	  # Read the .lo file
-	  . $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" \
-	     && test "$pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" \
-	     && test "$non_pic_object" != none; then
-	    rmfiles="$rmfiles $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe) 
-	    file=`$echo $file|${SED} 's,.exe$,,'`
-	    noexename=`$echo $name|${SED} 's,.exe$,,'`
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    rmfiles="$rmfiles $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE") >/dev/null 2>&1; then
-	    relink_command=
-	    . $dir/$noexename
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      rmfiles="$rmfiles $objdir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      rmfiles="$rmfiles $objdir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      $show "$rm $rmfiles"
-      $run $rm $rmfiles || exit_status=1
-    done
-    objdir="$origobjdir"
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	$show "rmdir $dir"
-	$run rmdir $dir >/dev/null 2>&1
-      fi
-    done
-
-    exit $exit_status
-    ;;
-
-  "")
-    $echo "$modename: you must specify a MODE" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-    ;;
-  esac
-
-  if test -z "$exec_cmd"; then
-    $echo "$modename: invalid operation mode \`$mode'" 1>&2
-    $echo "$generic_help" 1>&2
-    exit 1
-  fi
-fi # test -z "$show_help"
-
-if test -n "$exec_cmd"; then
-  eval exec $exec_cmd
-  exit 1
-fi
-
-# We need to display help for each of the modes.
-case $mode in
-"") $echo \
-"Usage: $modename [OPTION]... [MODE-ARG]...
-
-Provide generalized library-building support services.
-
-    --config          show all configuration variables
-    --debug           enable verbose shell tracing
--n, --dry-run         display commands without modifying any files
-    --features        display basic configuration information and exit
-    --finish          same as \`--mode=finish'
-    --help            display this help message and exit
-    --mode=MODE       use operation mode MODE [default=inferred from MODE-ARGS]
-    --quiet           same as \`--silent'
-    --silent          don't print informational messages
-    --tag=TAG         use configuration variables from tag TAG
-    --version         print version information
-
-MODE must be one of the following:
-
-      clean           remove files from the build directory
-      compile         compile a source file into a libtool object
-      execute         automatically set library path, then run a program
-      finish          complete the installation of libtool libraries
-      install         install libraries or executables
-      link            create a library or an executable
-      uninstall       remove libraries from an installed directory
-
-MODE-ARGS vary depending on the MODE.  Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE.
-
-Report bugs to <bug-libtool@gnu.org>."
-  exit 0
-  ;;
-
-clean)
-  $echo \
-"Usage: $modename [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-compile)
-  $echo \
-"Usage: $modename [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -prefer-pic       try to building PIC objects only
-  -prefer-non-pic   try to building non-PIC objects only
-  -static           always build a \`.o' file suitable for static linking
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-  ;;
-
-execute)
-  $echo \
-"Usage: $modename [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-  ;;
-
-finish)
-  $echo \
-"Usage: $modename [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-  ;;
-
-install)
-  $echo \
-"Usage: $modename [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-  ;;
-
-link)
-  $echo \
-"Usage: $modename [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-		    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-		    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -static           do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-		    specify library version info [each variable defaults to 0]
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-  ;;
-
-uninstall)
-  $echo \
-"Usage: $modename [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-  ;;
-
-*)
-  $echo "$modename: invalid operation mode \`$mode'" 1>&2
-  $echo "$help" 1>&2
-  exit 1
-  ;;
-esac
-
-$echo
-$echo "Try \`$modename --help' for more information about other modes."
-
-exit 0
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them.  This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration.  But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) $echo no;; *) $echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
diff --git a/television/autoconf/mkinstalldirs b/television/autoconf/mkinstalldirs
deleted file mode 100755
index 994d71c..0000000
--- a/television/autoconf/mkinstalldirs
+++ /dev/null
@@ -1,101 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman@prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-# $Id$
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
-   case "${1}" in
-     -h | --help | --h* )			# -h for help
-	echo "${usage}" 1>&2; exit 0 ;;
-     -m )					# -m PERM arg
-	shift
-	test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
-	dirmode="${1}"
-	shift ;;
-     -- ) shift; break ;;			# stop option processing
-     -* ) echo "${usage}" 1>&2; exit 1 ;;	# unknown option
-     * )  break ;;				# first non-opt arg
-   esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-0) exit 0 ;;
-esac
-
-case $dirmode in
-'')
-  if mkdir -p -- . 2>/dev/null; then
-    echo "mkdir -p -- $*"
-    exec mkdir -p -- "$@"
-  fi ;;
-*)
-  if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
-    echo "mkdir -m $dirmode -p -- $*"
-    exec mkdir -m "$dirmode" -p -- "$@"
-  fi ;;
-esac
-
-for file
-do
-   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-   shift
-
-   pathcomp=
-   for d
-   do
-     pathcomp="$pathcomp$d"
-     case "$pathcomp" in
-       -* ) pathcomp=./$pathcomp ;;
-     esac
-
-     if test ! -d "$pathcomp"; then
-	echo "mkdir $pathcomp"
-
-	mkdir "$pathcomp" || lasterr=$?
-
-	if test ! -d "$pathcomp"; then
-	  errstatus=$lasterr
-	else
-	  if test ! -z "$dirmode"; then
-	     echo "chmod $dirmode $pathcomp"
-
-	     lasterr=""
-	     chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-	     if test ! -z "$lasterr"; then
-	       errstatus=$lasterr
-	     fi
-	  fi
-	fi
-     fi
-
-     pathcomp="$pathcomp/"
-   done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 3
-# End:
-# mkinstalldirs ends here
diff --git a/television/configure b/television/configure
deleted file mode 100755
index 4a561e2..0000000
--- a/television/configure
+++ /dev/null
@@ -1,2356 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for llvm-tv pre-release.
-#
-# Report bugs to <llvmbugs@cs.uiuc.edu>.
-#
-# Copyright (C) 2003 Free Software Foundation, Inc.
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-
-# Name of the host.
-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-exec 6>&1
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_config_libobj_dir=.
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
-# Identity of this package.
-PACKAGE_NAME='llvm-tv'
-PACKAGE_TARNAME='-llvm-tv-'
-PACKAGE_VERSION='pre-release'
-PACKAGE_STRING='llvm-tv pre-release'
-PACKAGE_BUGREPORT='llvmbugs@cs.uiuc.edu'
-
-ac_unique_file=""Makefile.common.in""
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS LLVM_SRC LLVM_OBJ LIBOBJS LTLIBOBJS'
-ac_subst_files=''
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
-
-ac_prev=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
-    ac_prev=
-    continue
-  fi
-
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_option in
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
-    datadir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
-
-  -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-   { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
-
-  -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
-   { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
-fi
-
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used." >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-   { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
-  fi
-fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures llvm-tv pre-release to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-_ACEOF
-
-  cat <<_ACEOF
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-  case $ac_init_help in
-     short | recursive ) echo "Configuration of llvm-tv pre-release:";;
-   esac
-  cat <<\_ACEOF
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-llvmsrc          Location of LLVM Source Code
-  --with-llvmobj          Location of LLVM Object Code
-
-Report bugs to <llvmbugs@cs.uiuc.edu>.
-_ACEOF
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
-    ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
-    else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd $ac_popdir
-  done
-fi
-
-test -n "$ac_init_help" && exit 0
-if $ac_init_version; then
-  cat <<\_ACEOF
-llvm-tv configure pre-release
-generated by GNU Autoconf 2.59
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit 0
-fi
-exec 5>config.log
-cat >&5 <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by llvm-tv $as_me pre-release, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
-done
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_sep=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-    2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
-      ;;
-    esac
-  done
-done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    cat <<\_ASBOX
-## ---------------- ##
-## Cache variables. ##
-## ---------------- ##
-_ASBOX
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-{
-  (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
-    *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-}
-    echo
-
-    cat <<\_ASBOX
-## ----------------- ##
-## Output variables. ##
-## ----------------- ##
-_ASBOX
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
-_ASBOX
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      cat <<\_ASBOX
-## ----------- ##
-## confdefs.h. ##
-## ----------- ##
-_ASBOX
-      echo
-      sed "/^$/d" confdefs.h | sort
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-     ' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
-fi
-for ac_site_file in $CONFIG_SITE; do
-  if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file"
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special
-  # files actually), so we avoid doing that.
-  if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
-    esac
-  fi
-else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_aux_dir=
-for ac_dir in autoconf $srcdir/autoconf; do
-  if test -f $ac_dir/install-sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f $ac_dir/install.sh; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f $ac_dir/shtool; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in autoconf $srcdir/autoconf" >&2;}
-   { (exit 1); exit 1; }; }
-fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
-
-          ac_config_files="$ac_config_files Makefile.config"
-
-
-          ac_config_commands="$ac_config_commands Makefile"
-
-
-          ac_config_commands="$ac_config_commands Makefile.common"
-
-
-          ac_config_commands="$ac_config_commands lib/Makefile"
-
-
-          ac_config_commands="$ac_config_commands lib/Snapshot/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/Makefile"
-
-
-          ac_config_commands="$ac_config_commands tools/llvm-tv/Makefile"
-
-
-
-
-
-
-# Check whether --with-llvmsrc or --without-llvmsrc was given.
-if test "${with_llvmsrc+set}" = set; then
-  withval="$with_llvmsrc"
-  LLVM_SRC=$withval
-
-else
-  LLVM_SRC=`cd ${srcdir}/../..; pwd`
-
-fi;
-
-# Check whether --with-llvmobj or --without-llvmobj was given.
-if test "${with_llvmobj+set}" = set; then
-  withval="$with_llvmobj"
-  LLVM_OBJ=$withval
-
-else
-  LLVM_OBJ=`cd ../..; pwd`
-
-fi;
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-{
-  (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-      ;;
-    esac;
-} |
-  sed '
-     t clear
-     : clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-    cat confcache >$cache_file
-  else
-    echo "not updating unwritable cache $cache_file"
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then we branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-cat >confdef2opt.sed <<\_ACEOF
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\),-D\1=\2,g
-t quote
-d
-: quote
-s,[	 `~#$^&*(){}\\|;'"<>?],\\&,g
-s,\[,\\&,g
-s,\],\\&,g
-s,\$,$$,g
-p
-_ACEOF
-# We use echo to avoid assuming a particular line-breaking character.
-# The extra dot is to prevent the shell from consuming trailing
-# line-breaks from the sub-command output.  A line-break within
-# single-quotes doesn't work because, if this script is created in a
-# platform that uses two characters for line-breaks (e.g., DOS), tr
-# would break.
-ac_LF_and_DOT=`echo; echo .`
-DEFS=`sed -n -f confdef2opt.sed confdefs.h | tr "$ac_LF_and_DOT" ' .'`
-rm -f confdef2opt.sed
-
-
-ac_libobjs=
-ac_ltlibobjs=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: ${CONFIG_STATUS=./config.status}
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
-fi
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
-
-# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    $as_unset $as_var
-  fi
-done
-
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-
-
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
-
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
-    sed '
-      N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-      t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
-    ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
-  # Exit status is that of the last command.
-  exit
-}
-
-
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
-esac
-
-if expr a : '\(a\)' >/dev/null 2>&1; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-rm -f conf$$ conf$$.exe conf$$.file
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
-    as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.file
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_executable_p="test -f"
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
-exec 6>&1
-
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
-This file was extended by llvm-tv $as_me pre-release, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
-_ACEOF
-
-# Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
-
-Usage: $0 [OPTIONS] [FILE]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
-  -q, --quiet      do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to <bug-autoconf@gnu.org>."
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-ac_cs_version="\\
-llvm-tv config.status pre-release
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-
-Copyright (C) 2003 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  -*)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-    ac_need_defaults=false;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; } ;;
-
-  *) ac_config_targets="$ac_config_targets $1" ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-fi
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-#
-# INIT-COMMANDS section.
-#
-
-${srcdir}/autoconf/mkinstalldirs `dirname Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname Makefile.common`
-${srcdir}/autoconf/mkinstalldirs `dirname lib/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname lib/Snapshot/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname tools/Makefile`
-${srcdir}/autoconf/mkinstalldirs `dirname tools/llvm-tv/Makefile`
-
-_ACEOF
-
-
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_config_target in $ac_config_targets
-do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile.config" ) CONFIG_FILES="$CONFIG_FILES Makefile.config" ;;
-  "Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile" ;;
-  "Makefile.common" ) CONFIG_COMMANDS="$CONFIG_COMMANDS Makefile.common" ;;
-  "lib/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Makefile" ;;
-  "lib/Snapshot/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS lib/Snapshot/Makefile" ;;
-  "tools/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/Makefile" ;;
-  "tools/llvm-tv/Makefile" ) CONFIG_COMMANDS="$CONFIG_COMMANDS tools/llvm-tv/Makefile" ;;
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
-
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
-}  ||
-{
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
-} ||
-{
-   echo "$me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
-#
-# CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s,@SHELL@,$SHELL,;t t
-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s,@exec_prefix@,$exec_prefix,;t t
-s,@prefix@,$prefix,;t t
-s,@program_transform_name@,$program_transform_name,;t t
-s,@bindir@,$bindir,;t t
-s,@sbindir@,$sbindir,;t t
-s,@libexecdir@,$libexecdir,;t t
-s,@datadir@,$datadir,;t t
-s,@sysconfdir@,$sysconfdir,;t t
-s,@sharedstatedir@,$sharedstatedir,;t t
-s,@localstatedir@,$localstatedir,;t t
-s,@libdir@,$libdir,;t t
-s,@includedir@,$includedir,;t t
-s,@oldincludedir@,$oldincludedir,;t t
-s,@infodir@,$infodir,;t t
-s,@mandir@,$mandir,;t t
-s,@build_alias@,$build_alias,;t t
-s,@host_alias@,$host_alias,;t t
-s,@target_alias@,$target_alias,;t t
-s,@DEFS@,$DEFS,;t t
-s,@ECHO_C@,$ECHO_C,;t t
-s,@ECHO_N@,$ECHO_N,;t t
-s,@ECHO_T@,$ECHO_T,;t t
-s,@LIBS@,$LIBS,;t t
-s,@LLVM_SRC@,$LLVM_SRC,;t t
-s,@LLVM_OBJ@,$LLVM_OBJ,;t t
-s,@LIBOBJS@,$LIBOBJS,;t t
-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
-
-_ACEOF
-
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
-  fi
-fi # test -n "$CONFIG_FILES"
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
-  esac
-
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
-
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s,@configure_input@,$configure_input,;t t
-s,@srcdir@,$ac_srcdir,;t t
-s,@abs_srcdir@,$ac_abs_srcdir,;t t
-s,@top_srcdir@,$ac_top_srcdir,;t t
-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s,@builddir@,$ac_builddir,;t t
-s,@abs_builddir@,$ac_abs_builddir,;t t
-s,@top_builddir@,$ac_top_builddir,;t t
-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
-
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
-  ac_builddir=.
-
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile Makefile ;;
-    Makefile.common ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/Makefile.common Makefile.common ;;
-    lib/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Makefile lib/Makefile ;;
-    lib/Snapshot/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/lib/Snapshot/Makefile lib/Snapshot/Makefile ;;
-    tools/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/Makefile tools/Makefile ;;
-    tools/llvm-tv/Makefile ) ${SHELL} ${srcdir}/autoconf/install-sh -c ${srcdir}/tools/llvm-tv/Makefile tools/llvm-tv/Makefile ;;
-  esac
-done
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF
-
-{ (exit 0); exit 0; }
-_ACEOF
-chmod +x $CONFIG_STATUS
-ac_clean_files=$ac_clean_files_save
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
-fi
-
diff --git a/television/docs/Design.txt b/television/docs/Design.txt
deleted file mode 100644
index 1bcacc5..0000000
--- a/television/docs/Design.txt
+++ /dev/null
@@ -1,110 +0,0 @@
-Design of LLVM-TV
------------------
-
-TVApplication implements the wxApp interface and is the launcher of LLVM-TV.
-It is responsible for keeping track of all the windows, and the list of
-available snapshots. It is also responsible for handling Unix signals sent to
-the LLVM-TV process; this is the mechanism the LLVM optimizer uses for
-communicating with LLVM-TV.
-
-TVFrame is responsible for the main LLVM-TV user interface - it sets up the
-vertically-split main window having a tree of snapshots on the left
-(TVTreeCtrl), and a tabbed view containing visualizers on the right
-(TVNotebook). TVFrame is also responsible for the menu bar, and it is the first
-object that deals with commands issued as a result of the user choosing menu
-items.
-
-TVTreeItemData is the basic unit of visualization in LLVM-TV. It is also the
-abstract superclass for all nodes that appear in the tree view on the left-hand
-side of LLVM-TV's main window.  The root of the tree is the Singleton
-TVTreeRootItem, which is hidden (the user cannot select it) and has no
-displayable data.  The TVTreeRootItem contains TVTreeModuleItems, which point to
-snapshots of LLVM Modules; the TVTreeModuleItems in turn contain
-TVTreeFunctionItems, which point to snapshots of LLVM Functions within the
-parent Modules.
-
-The TVHtmlWindow class is an ItemDisplayer that displays syntax-highlighted LLVM
-assembly code for TVTreeItems (either Functions or Modules) in HTML format.
-
-A TVTreeItem uses an HTMLPrinter to display a Function or a Module in a
-syntax-highlighted view.  It also chooses a HTMLMarkup strategy class to decide
-whether to use Cascading Style Sheets (CSS) or old-style "font" tags for syntax
-highlighting of elements such as keywords, types, and basic-block names.
-HTMLPrinter is a Visitor, implemented using the standard LLVM InstVisitor C++
-template.
-
-TVNotebook is responsible for implementing the tabbed interface which you see on
-the right-hand side of the main window (the TVFrame).
-
-ItemDisplayer is the abstract superclass for objects that know how to visualize
-LLVM Functions and/or Modules. ItemDisplayers can be displayed in tabs in the
-TVNotebook view, or in their own windows (called PictureFrames).
-
-TVCodeViewer is the ItemDisplayer which implements the "interactive code view"
-which highlights use-def chains. Each TVCodeViewer contains a TVCodeListCtrl,
-which is responsible for the actual drawing of the list view, and which is where
-most of the interesting stuff happens -- TVCodeViewer is essentially an Adapter
-around TVCodeListCtrl to allow it to display itself either in a tab view or a
-window.
-
-GraphDrawer is an abstract superclass for all graph-drawing visualizers.  It
-inherits the ItemDisplayer interface, so all GraphDrawers are also
-ItemDisplayers. GraphDrawer simplifies the ItemDisplayer interface using the
-Template Method pattern.  Concrete GraphDrawers only need to be able to provide
-an image object given a TVTreeItem; the abstract GraphDrawer class provides
-for displaying the image in a convenient scrolling viewer (called a
-PictureCanvas).
-
-CallGraphDrawer and CFGGraphDrawer are GraphDrawers for displaying the call
-graph (for a Module) and the control-flow graph (for a Function), respectively.
-
-DSAGraphDrawer is an abstract class for Data Structure Graph viewers.
-It implements GraphDrawer's Abstract Methods
-drawFunctionGraph() and drawModuleGraph() as Template Methods which rely on
-pure-virtual C++ methods that return the Pass object to write out the graph,
-which is different for each of BUGraphDrawer, TDGraphDrawer, and
-LocalGraphDrawer, as well as the filename to which they output the results of
-their analysis.  The functions createFunctionPass() and createModulePass() are
-Factory Methods as they create passes of different classes that are subclasses
-of FunctionPass or Pass, respectively.  The algorithm for running the pass on a
-Function or Module is shared among the 3 subclasses of DSAGraphDrawer.
-
-BUGraphDrawer, TDGraphDrawer, and LocalGraphDrawer are also ItemDisplayers,
-which allows them to be displayed in tabs or in separate new windows.
-
-
-Extending LLVM-TV
------------------
-
-In order to add a new visualization to LLVM-TV, the programmer should add a new
-concrete subclass of ItemDisplayer. The requirements for a new ItemDisplayer
-subclass are:
-
-1) An ItemDisplayer must create and hold a wxWindows display widget (subclass of
-wxWindow) to draw in.  The widget should be of a type appropriate to the
-visualization - for example, if you are displaying a list of things, use a
-wxListCtrl; if you are displaying a tree, use a wxTreeCtrl.  If you want to
-display an image, you probably will want to create a subclass of GraphDrawer
-instead (see below).  When your getWindow() method is called, you should create
-the display widget (if it has not already been created) and return a pointer to
-it.
-
-2) An ItemDisplayer must respond to the displayItem(TVTreeItemData *) message by
-updating its display widget to contain visual information about the given item.
-
-3) An ItemDisplayer must respond to the getDisplayTitle(TVTreeItemData *)
-message by returning a string, suitable for a window or tab title, which
-describes the visualization of the given item -- or if no item is passed in, a
-string which describes the kind of visualization it generally performs (e.g.,
-"Dominator tree view of java.lang.System.arraycopy()" vs. "Dominator tree
-view".)
-
-If you want to add a new visualization to LLVM-TV which *only* draws images and
-allows the user to view them, you can subclass GraphDrawer. Instead of
-requirements 1) and 2) above, a new subclass of GraphDrawer is required to
-respond to the drawModuleGraph(Module *) and drawFunctionGraph(Function *)
-messages by returning a wxImage object that contains an image representing the
-LLVM item passed in. GraphDrawer will take care of displaying the image in a
-scrolling canvas, either in a tab or a separate window.
-
-
diff --git a/television/docs/Features.txt b/television/docs/Features.txt
deleted file mode 100644
index 5b5d2aa..0000000
--- a/television/docs/Features.txt
+++ /dev/null
@@ -1,30 +0,0 @@
-LLVM-TV FEATURES
-
-1. Current
-==========
-
-* Tabbed views of Modules and Functions: choose text or HTML
-* Call graph display for a Module
-* CFG display for a function
-* Use/def chains for instructions
-  - not polished: separate from syntax-highlighted view, multi-column
-* BU, TD, or Local DSGraphs display for global vars and functions
-* Tabbed view of graphs (CallGraph, CFG, DSA, ...)
-
-2. Under development/debugging
-==============================
-
-* Scintilla / syntax-highlighting editing control
-* Cycling through snapshots (prev, next) while keeping same function in view
-
-3. Long-term ideas
-==================
-
-* Some other kind of pointer analysis viewer?
-* Cache display of complex computed structures (graphs)
-* Calculate graphs in the background -- user should be able to change tabs while
-  the graph calculation is going on 
-* Rewrite LLVM-TV in XUL
-  + As portable as Mozilla
-  + HTML/CSS for code (can use links and mouseover!)
-  + SVG for graphs
diff --git a/television/docs/UserGuide.html b/television/docs/UserGuide.html
deleted file mode 100644
index 86ee32a..0000000
--- a/television/docs/UserGuide.html
+++ /dev/null
@@ -1,202 +0,0 @@
-<html>
-<head>
-  <title>LLVM Visualization Tool User Guide</title>
-</head>
-<body>
-
-<h2><img src="images/llvmtv-logo.png" alt="[LLVM-TV Logo]">LLVM Visualization Tool User Guide</h2>
-
-<h3><u>Required Software:</u></h3>
-In order to compile and run the LLVM Visualization Tool (LLVM-TV), the following software
-must be installed:
-
-<ul>
-<li><b>The Low Level Virtual Machine (LLVM) Compiler Infrastructure:</b> You
-must check out the latest version from CVS. LLVM-TV does not work with
-LLVM version 1.2, the latest released version at the time of this writing.
-See the <a href="http://llvm.cs.uiuc.edu/docs/GettingStarted.html">LLVM Getting
-Started Guide</a> for details.</li>
-<li><b>Dot</b>: Included in the AT&T Research <a href="http://www.research.att.com/sw/tools/graphviz/">Graphviz</a> package, LLVM-TV uses Dot to draw directed
-graphs. For best results, make sure you have TrueType fonts installed.</li>
-</ul>
-<p>
-
-<h3><u>Download:</u></h3>
-<p>Once you have unpacked and compiled LLVM, download the LLVM Visualization
-Tool sources and unpack them in the <tt>projects</tt> subdirectory of your LLVM
-source tree.</p>
-<pre>
-    % cd llvm/projects
-    % tar xzvf llvm-tv.tgz
-    % cd llvm-tv
-</pre>
-
-<p>
-
-<h3><u>Compiling:</u></h3>
-<p>You must then compile the LLVM Visualization Tool.</p>
-<pre>
-    % ./configure --with-llvmsrc=[path] --with-llvmobj=[path]
-</pre>
-<p><i>If you're building in llvm/projects/llvm-tv, then you don't need
-   to specify these --with options.</i></p>
-<pre>
-    % cd lib/wxwindows
-    % ./configure --enable-debug --prefix=`pwd`
-</pre>
-<p><i>Make absolutely sure that wxWindows's configure script detects the same
-   C++ compiler that you used to compile LLVM. Otherwise, you may get
-   weird link errors when trying to link the llvm-tv tool.</i></p>
-<pre>
-    % cd ../..
-    % gmake
-</pre>
-
-<p>
-
-<h3><u>Using the LLVM Visualization Tool:</u></h3>
-
-The main purpose of the LLVM Visualization tool is to view the effects of transformations written in the LLVM framework. We call the points in time after a transformation has been run "snapshots." <p>
-
-Note: opt-snap and llvm-tv.exe may be found in the tools/Debug directory.
-<p>
-
-<h4>Acquiring a Snapshot:</h4>
-
-<p>Using the LLVM tool 'opt', one runs transformations on an LLVM Bytecode file.
-Please see the <a href="http://llvm.cs.uiuc.edu/docs/CommandGuide/opt.html">man
-page</a> on opt for details on what transformations are available.</p>
-
-<p>In order to acquire snapshots after a transformation or a series of
-transformations have been applied, you use the 'opt-snap' tool. You simply place
-the option '-snapshot' after specifying your transformation options. You may ask
-for a snapshot any number of times.</p>
-
-<p>Here is an example of using opt to acquire snapshots. We will run two
-optimizations (loop-invariant code motion and global common-subexpression
-elimination) on the program whose LLVM bytecode is in the file
-<tt>bytecode-file.bc</tt>, and take a snapshot after each pass completes:</p>
-<pre>
-    % opt-snap -debug -licm -snapshot -gcse -snapshot < bytecode-file.bc > /dev/null
-</pre>
-
-<p>All snapshots are placed in the directory
-<tt>/tmp/llvm-tv-<i>username</i>/snapshots</tt>, where <tt><i>username</i></tt>
-is your login name.</p>
-
-<h4>Viewing a Snapshot:</h4>
-<p>Begin by starting up the LLVM Visualization tool GUI. Make sure llvm-tv.exe
-is in your PATH, then type:</p>
-
-<pre>
-    % llvm-tv.exe
-</pre>
-
-<p>This should pop up a window such as the following:</p>
-<img src="images/llvmtv-firstopen.jpg"><p>
-
-<p>Notice that all the snapshots are listed in the tree view structure on the left
-side of the frame. Compilation units in LLVM have a simple, hierarchical
-structure:
-a Module contains Functions, which contain BasicBlocks, which contain
-Instructions. The tree view will show you functions within the snapshot you are viewing.</p>
-
-<p>
-From this screen shot, you can see that we have expanded a module revealing that it has several functions within it.</p>
-<img src="images/llvmtv-expandmodule.jpg">
-   
-<p>
-To the right of the tree view is a tabbed pane that allows you to easily browse
-different views of the snapshot.</p>
-
-<b>TextView:</b><br>
-
-<p>The text view is a direct disassembly of the Module, showing the pointer size
-of the target architecture for which it was compiled, endianness, the
-user-defined types present in the module, global variables, and all function
-definitions.</p>
-
-<img src="images/llvmtv-TextView.jpg"><p>
-
-<b>HTMLView:</b><br>
-
-<p>The HTML view is a syntax-highlighted view with LLVM keywords in blue, types
-in green, and BasicBlock names in red. For brevity, the Module view does not
-include the types and the functions are given as prototypes. External functions,
-for which the Module has no code, are prepended with a `declare' keyword. Other
-functions' code can be viewed by clicking on the appropriate node in the tree
-list.</p>
-
-<img src="images/llvmtv-HTMLView.jpg"><p>
-
-
-<b>DSGraph Views:</b><br>
-
-<p>LLVM has a powerful alias analysis framework and here we are showcasing its
-novel Data Structure Analysis (DSA) algorithm. It has 3 components: the
-Bottom-Up DSGraph, Top-down DSGraph, and Local DSGraph. These graphs show
-points-to results analysis for global variables and other pointers in a
-program. Here we see the results of a local data-structure analysis run:</p>
-
-<img src="images/llvmtv-LocalDSGraph.jpg"><p>
-
-<b>CodeView:</b><br>
-
-<p>Because LLVM is in SSA (Static Single Assignment) form, any use of a variable must
-be preceded by exactly one definition. We can thus form def-use chains which
-connect definitions of variables to their uses.  The CodeView enables one to
-click on any value and see where the uses of the variable occur, allowing a
-visual way to inspect code. As a side effect, clicking on a BasicBlock entry
-shows all users of the BasicBlock, which are branches that have the BasicBlock
-as a target, thus showing how many incoming control-flow edges a block has.</p>
-
-<img src="images/llvmtv-CodeView.jpg"><p>
-
-<p>There are also more views under the View menu. Selecting one of these views will
-open up a new window with that view in it. There are two new views that we have
-not seen before: Call Graph view and Control Flow Graph view.</p>
-
-<img src="images/llvmtv-ViewMenu.jpg"><p>
-
-<b>Call Graph:</b><br>
-
-<p>The Call Graph shows the callers and callees of each function in the module. A graph of
-functions, here each node represents a function and an arrow from node A to node
-B means that function A calls function B at least once in its code.</p>
-
-<b>Control Flow Graph:</b><br>
-
-<p>The control flow graph displays graphically the control flow of the function,
-identifying each basic block as a node and labeling all branches between blocks
-as arrows.</p>
-
-<img src="images/llvmtv-ControlFlow.jpg"><p>
-
-Additionally, you can use the File menu to add more snapshots to the visualizer.
-<br>
-<img src="images/llvmtv-FileMenu.jpg"><p>
-
-<b>Add Module:</b><br>
-
-<p>This will add a given Module to the list of snapshots without having to run
-opt-snap to deposit it into the snapshot collection. This is useful if you
-want to compare different programs, instead of looking at multiple views
-of the same program.</p>
-
-<b>Refresh:</b><br>
-
-<p>This option will re-read the snapshot collection directory to see if any new
-Modules have been added manually by the user (by copying directly through the
-filesystem).</p>
-
-<h4>Snapshots and Signaling:</h4>
-
-<p>
-A neat feature of the LLVM Visualization tool is that the GUI will automatically
-refresh the snapshot listing when opt-snap signals that a new snapshot has been
-generated. This is primarily useful for long-running optimizations.
-</p>
-
-</body>
-</html>
-
diff --git a/television/docs/images/LLVMTV-UML-LARGE.jpg b/television/docs/images/LLVMTV-UML-LARGE.jpg
deleted file mode 100644
index f4de7dd..0000000
--- a/television/docs/images/LLVMTV-UML-LARGE.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/LLVMTV-UML-MEDIUM.jpg b/television/docs/images/LLVMTV-UML-MEDIUM.jpg
deleted file mode 100644
index be692d5..0000000
--- a/television/docs/images/LLVMTV-UML-MEDIUM.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/LLVMTV-UML-SMALL.jpg b/television/docs/images/LLVMTV-UML-SMALL.jpg
deleted file mode 100644
index c71f046..0000000
--- a/television/docs/images/LLVMTV-UML-SMALL.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/LLVMTV-UML2.jpg b/television/docs/images/LLVMTV-UML2.jpg
deleted file mode 100644
index ece01c5..0000000
--- a/television/docs/images/LLVMTV-UML2.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-CodeView.jpg b/television/docs/images/llvmtv-CodeView.jpg
deleted file mode 100644
index 6bc4125..0000000
--- a/television/docs/images/llvmtv-CodeView.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-ControlFlow.jpg b/television/docs/images/llvmtv-ControlFlow.jpg
deleted file mode 100644
index 3057d53..0000000
--- a/television/docs/images/llvmtv-ControlFlow.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-FileMenu.jpg b/television/docs/images/llvmtv-FileMenu.jpg
deleted file mode 100644
index c08f64f..0000000
--- a/television/docs/images/llvmtv-FileMenu.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-HTMLView.jpg b/television/docs/images/llvmtv-HTMLView.jpg
deleted file mode 100644
index af2058d..0000000
--- a/television/docs/images/llvmtv-HTMLView.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-LocalDSGraph.jpg b/television/docs/images/llvmtv-LocalDSGraph.jpg
deleted file mode 100644
index 1af0c39..0000000
--- a/television/docs/images/llvmtv-LocalDSGraph.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-TextView.jpg b/television/docs/images/llvmtv-TextView.jpg
deleted file mode 100644
index f432913..0000000
--- a/television/docs/images/llvmtv-TextView.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-UML1.jpg b/television/docs/images/llvmtv-UML1.jpg
deleted file mode 100644
index 010a14b..0000000
--- a/television/docs/images/llvmtv-UML1.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-ViewMenu.jpg b/television/docs/images/llvmtv-ViewMenu.jpg
deleted file mode 100644
index df2f9d7..0000000
--- a/television/docs/images/llvmtv-ViewMenu.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-expandmodule.jpg b/television/docs/images/llvmtv-expandmodule.jpg
deleted file mode 100644
index c992612..0000000
--- a/television/docs/images/llvmtv-expandmodule.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-firstopen.jpg b/television/docs/images/llvmtv-firstopen.jpg
deleted file mode 100644
index bf3b2c8..0000000
--- a/television/docs/images/llvmtv-firstopen.jpg
+++ /dev/null
Binary files differ
diff --git a/television/docs/images/llvmtv-logo.png b/television/docs/images/llvmtv-logo.png
deleted file mode 100644
index 530cfa8..0000000
--- a/television/docs/images/llvmtv-logo.png
+++ /dev/null
Binary files differ
diff --git a/television/include/llvm-tv/Config.h b/television/include/llvm-tv/Config.h
deleted file mode 100644
index fabe8fa..0000000
--- a/television/include/llvm-tv/Config.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef LLVM_TV_CONFIG_H
-#define LLVM_TV_CONFIG_H
-
-#include <string>
-
-namespace {
-
-  // To make sure we don't collide if working on the same machine,
-  // the llvm-tv data directory is user-specific
-  const std::string llvmtvPath    = "/tmp/llvm-tv-" + 
-                                    std::string(getenv("USER"));
-  const std::string snapshotsPath = llvmtvPath + "/snapshots";
-  const std::string llvmtvPID     = llvmtvPath + "/llvm-tv.pid";
-
-}
-
-#endif
diff --git a/television/include/llvm-tv/Support/FileUtils.h b/television/include/llvm-tv/Support/FileUtils.h
deleted file mode 100644
index 30dc189..0000000
--- a/television/include/llvm-tv/Support/FileUtils.h
+++ /dev/null
@@ -1,36 +0,0 @@
-//===- FileUtils.h - File system utility functions for snapshotting -------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// File-system functionality useful for snapshotting (Unix-specific).
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TV_FILEUTILS_H
-#define LLVM_TV_FILEUTILS_H
-
-#include <string>
-#include <vector>
-
-namespace llvm {
-
-/// GetNumFilesInDir - returns a count of files in directory
-///
-unsigned GetNumFilesInDir(const std::string &path);
-
-/// GetFilesInDir - populate vector with a listing of files in directory
-///
-void GetFilesInDir(const std::string &path, std::vector<std::string> &list);
-
-bool DirectoryExists (const std::string &dirPath);
-
-void EnsureDirectoryExists (const std::string &dirPath);
-
-};
-
-#endif
diff --git a/television/include/llvm-tv/Support/Snapshots.h b/television/include/llvm-tv/Support/Snapshots.h
deleted file mode 100644
index c85c7e7..0000000
--- a/television/include/llvm-tv/Support/Snapshots.h
+++ /dev/null
@@ -1,26 +0,0 @@
-//===- Snapshots.h - Snapshot utility functions ---------------*- C++ -*---===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_TV_SUPPORT_SNAPSHOTS_H
-#define LLVM_TV_SUPPORT_SNAPSHOTS_H
-
-#include <string>
-#include <vector>
-
-namespace llvm {
-  
-void ReadSnapshots(std::vector<std::string> &oldModules,
-                   std::vector<Module*> NewModules); 
-
-}
-
-#endif
diff --git a/television/lib/Makefile b/television/lib/Makefile
deleted file mode 100644
index 8684254..0000000
--- a/television/lib/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-LEVEL = ..
-DIRS = Snapshot
-
-include $(LEVEL)/Makefile.common
diff --git a/television/lib/Snapshot/FileUtils.cpp b/television/lib/Snapshot/FileUtils.cpp
deleted file mode 100644
index ac36980..0000000
--- a/television/lib/Snapshot/FileUtils.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-//===- FileUtils.cpp - File system utility functions for snapshotting -----===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file is Unix-specific; to become part of LLVM it needs to be made
-// portable for the architectures/systems LLVM supports.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm-tv/Support/FileUtils.h"
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-
-/// Returns the number of entries in the directory named PATH.
-///
-/// FIXME: If we want to be portable, we can use opendir/readdir/closedir()
-/// and stat(), instead of scandir() and alphasort(). Also, this function
-/// will probably not skip directories (better verify this!)
-///
-unsigned llvm::GetNumFilesInDir(const std::string &path) {
-  struct dirent **namelist;
-  int n = scandir(path.c_str(), &namelist, 0, alphasort);
-  int num = n;
-  if (n < 0)
-    perror("scandir");
-  else {
-    while(n--)
-      free(namelist[n]);
-    free(namelist);
-  }
-  return num;
-}
-
-
-/// GetFilesInDir - returns a listing of files in directory
-///
-void llvm::GetFilesInDir(const std::string &path,
-                         std::vector<std::string> &list)
-{
-  struct dirent **namelist;
-  int n = scandir(path.c_str(), &namelist, 0, alphasort);
-  if (n < 0)
-    perror("scandir");
-  else {
-    while(n--) {
-      list.push_back(std::string(namelist[n]->d_name));
-      free(namelist[n]);
-    }
-    free(namelist);
-  }
-}
-
-bool llvm::DirectoryExists (const std::string &dirPath) {
-  struct stat stbuf;
-  if (stat (dirPath.c_str (), &stbuf) < 0)
-    return false;
-  return S_ISDIR (stbuf.st_mode);
-}
-
-void llvm::EnsureDirectoryExists (const std::string &dirPath) {
-  if (!DirectoryExists (dirPath))
-    mkdir (dirPath.c_str (), 0777);
-}
-
diff --git a/television/lib/Snapshot/Makefile b/television/lib/Snapshot/Makefile
deleted file mode 100644
index a58bcdd..0000000
--- a/television/lib/Snapshot/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL = ../..
-LIBRARYNAME = LLVMTVSnapshot
-SHARED_LIBRARY = 1
-
-include $(LEVEL)/Makefile.common
diff --git a/television/lib/Snapshot/ReadSnapshots.cpp b/television/lib/Snapshot/ReadSnapshots.cpp
deleted file mode 100644
index 2b71280..0000000
--- a/television/lib/Snapshot/ReadSnapshots.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-//===- ReadSnapshots.cpp - View snapshots that were saved previously ------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/Bytecode/Reader.h"
-#include "llvm-tv/Support/FileUtils.h"
-#include "llvm-tv/Support/Snapshots.h"
-#include <string>
-#include <vector>
-using namespace llvm;
-
-namespace {
-  const std::string bytecodePath = "/tmp/llvm-tv/snapshots";
-}
-
-/// ReadSnapshots - load all bytecode files in a directory that haven't yet been
-/// slurped in earlier.
-///
-void llvm::ReadSnapshots(std::vector<std::string> &oldModules,
-                         std::vector<Module*> NewModules) {
-  std::string Filename (bytecodePath);
-  std::vector<std::string> FileListing;
-  GetFilesInDir(bytecodePath, FileListing);
-
-  for (std::vector<std::string>::iterator i = FileListing.begin(),
-         e = FileListing.end(); i != e; ++i)
-    if (std::find(oldModules.begin(), oldModules.end(), *i) != oldModules.end())
-      NewModules.push_back(ParseBytecodeFile(*i));
-}
diff --git a/television/lib/Snapshot/WriteSnapshot.cpp b/television/lib/Snapshot/WriteSnapshot.cpp
deleted file mode 100644
index fe4c415..0000000
--- a/television/lib/Snapshot/WriteSnapshot.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-//===- Snapshot.cpp - Snapshot Module views and communicate with llvm-tv --===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// * If llvm-tv is not running, start it.
-// * Send update to llvm-tv each time this pass is called on the command line,
-//   e.g.  opt -snapshot -licm -snapshot -gcse -snapshot ... 
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/Bytecode/WriteBytecodePass.h"
-#include "llvm/ADT/StringExtras.h"
-#include "llvm/Support/CommandLine.h"
-#include "llvm/Support/Debug.h"
-#include "llvm/Support/SystemUtils.h"
-#include "llvm-tv/Support/FileUtils.h"
-#include "llvm-tv/Config.h"
-#include <csignal>
-#include <cstdlib>
-#ifndef _GNU_SOURCE
-#define _GNU_SOURCE
-#endif
-#include <cstring>
-#include <dirent.h>
-#include <fstream>
-#include <string>
-#include <unistd.h>
-#include <vector>
-#include <sys/types.h>
-using namespace llvm;
-
-extern char **environ;
-
-namespace {
-  struct Snapshot : public ModulePass {
-    /// getAnalysisUsage - this pass does not require or invalidate any analysis
-    ///
-    virtual void getAnalysisUsage(AnalysisUsage &AU) {
-      AU.setPreservesAll();
-    }
-    
-    /// runOnModule - save the Module in a pre-defined location with our naming
-    /// strategy
-    bool runOnModule(Module &M);
-
-  private:
-    bool sendSignalToLLVMTV();
-    std::string findOption(unsigned Idx);
-  };
-
-  // Keep our place in the list of passes that opt was run with to give the
-  // snapshots appropriate names.
-  static unsigned int PassPosition = 1;
-  /// The name of the command-line option to invoke the snapshot pass
-  const std::string SnapshotCmd = "snapshot";
-  RegisterOpt<Snapshot> X("snapshot", "Snapshot a module, signal llvm-tv");
-}
-
-
-/// runOnModule - save snapshot to a pre-defined directory with a consecutive
-/// number in the name (for alphabetization) and the name of the pass that ran
-/// just before this one. Signal llvm-tv that fresh bytecode file has arrived
-/// for consumption.
-bool Snapshot::runOnModule(Module &M) {
-  // Make sure the snapshots dir exists, which it will unless this
-  // is the first time we've ever run the -snapshot pass.
-  EnsureDirectoryExists (llvmtvPath);
-  EnsureDirectoryExists (snapshotsPath);
-
-  // Assumption: directory only has numbered .bc files, from 0 -> n-1, next one
-  // we add will be n.bc . Subtract 2 for "." and ".."
-  unsigned numFiles = GetNumFilesInDir(snapshotsPath) - 2;
-
-  std::string Filename(snapshotsPath);
-  Filename = Filename + "/" + utostr(numFiles) + "-" +
-    findOption(PassPosition++) + ".bc";
-
-  std::ofstream os(Filename.c_str());
-  WriteBytecodeToFile(&M, os);
-  os.close();
-
-  // Communicate to llvm-tv that we have added a new snapshot
-  if (!sendSignalToLLVMTV()) return false;
-
-  // Since we were not successful in sending a signal to an already-running
-  // instance of llvm-tv, start a new instance and send a signal to it.
-  sys::Path llvmtvExe = FindExecutable("llvm-tv", ""); 
-  if (llvmtvExe.isValid() && !llvmtvExe.isEmpty() && llvmtvExe.isFile() &&
-      llvmtvExe.canExecute()) {
-    int pid = fork();
-    // Child process morphs into llvm-tv
-    if (!pid) {
-      char *argv[1]; argv[0] = 0; 
-      if (execve(llvmtvExe.toString().c_str(), argv, environ) == -1) {
-        perror("execve");
-        return false;
-      }
-    }
-    
-    // parent waits for llvm-tv to write out its pid to a file
-    // and then sends it a signal
-    sleep(3);
-    sendSignalToLLVMTV();
-  } else
-    std::cerr << "Cannot find llvm-tv in the path!\n";
-
-  return false;
-}
-
-/// sendSignalToLLVMTV - read pid from file, send signal to llvm-tv process
-///
-bool Snapshot::sendSignalToLLVMTV() {
-  // See if we can open a file with llvm-tv's pid in it
-  std::ifstream is(llvmtvPID.c_str());
-  int pid = 0;
-  if (is.good() && is.is_open())
-    is >> pid;
-  else
-    return true;
-
-  is.close();
-  if (pid > 0)
-    return (kill(pid, SIGUSR1) == -1);
-
-  return true;
-}
-
-/// findOption - read the environment variable OPTPASSES which should contain
-/// the arguments passed to opt and select all those that start with a
-/// dash. Return the last one before the Idx-th invocation of `-snapshot'
-std::string Snapshot::findOption(unsigned Idx) {
-  unsigned currIdx = 0;
-  char *OptCmdline = getenv("OPTPASSES");
-  if (!OptCmdline) return "noenv";
-  std::vector<std::string> InputArgv;
-  InputArgv.push_back("filler");
-  while (*OptCmdline) {
-    if (*OptCmdline == '-') {
-      size_t len = strcspn(OptCmdline, " ");
-      // Do not add in the '-' or the space after the switch
-      char *arg = strdup(OptCmdline+1);
-      arg[len - 1] = '\0';
-      InputArgv.push_back(std::string(arg));
-      free(arg);
-    }
-    OptCmdline += strcspn(OptCmdline, " ") + 1;
-  }
-
-  std::vector<std::string>::iterator stringPos = InputArgv.begin();
-  while (currIdx < Idx && stringPos != InputArgv.end()) {
-    stringPos = std::find(stringPos+1, InputArgv.end(), SnapshotCmd);
-    ++currIdx;
-  }
-
-  return (stringPos == InputArgv.end()) ? "notfound"
-    : (stringPos == InputArgv.begin()) ? "clean" : *--stringPos;
-}
diff --git a/television/tools/Makefile b/television/tools/Makefile
deleted file mode 100644
index ba884f9..0000000
--- a/television/tools/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-LEVEL := ..
-PARALLEL_DIRS := llvm-tv
-
-include $(LEVEL)/Makefile.common
-
diff --git a/television/tools/llvm-tv/CFGGraphDrawer.cpp b/television/tools/llvm-tv/CFGGraphDrawer.cpp
deleted file mode 100644
index 074f7e1..0000000
--- a/television/tools/llvm-tv/CFGGraphDrawer.cpp
+++ /dev/null
@@ -1,27 +0,0 @@
-#include "CFGGraphDrawer.h"
-#include "TVTreeItem.h"
-#include "llvm/Function.h"
-#include "llvm/ModuleProvider.h"
-#include "llvm/Analysis/CFGPrinter.h"
-#include "llvm/PassManager.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// CFGGraphDrawer implementation
-
-wxImage *CFGGraphDrawer::drawFunctionGraph (Function *fn) {
-  ModuleProvider *MP = new ExistingModuleProvider (fn->getParent ());
-  FunctionPassManager PM (MP);
-  PM.add (createCFGOnlyPrinterPass ());
-  PM.run (*fn);
-  MP->releaseModule (); // Don't delete it when you go away, says I
-  delete MP;
-  return buildwxImageFromDotFile ("cfg." + fn->getName() + ".dot");
-}
-
-std::string CFGGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  std::string title ("Control-flow graph");
-  if (item) title += " of " + item->getTitle ();
-  return title;
-}
diff --git a/television/tools/llvm-tv/CFGGraphDrawer.h b/television/tools/llvm-tv/CFGGraphDrawer.h
deleted file mode 100644
index 1f0ef76..0000000
--- a/television/tools/llvm-tv/CFGGraphDrawer.h
+++ /dev/null
@@ -1,27 +0,0 @@
-//===-- CFGGraphDrawer.h - Creates an image representing a CFG ---*- C++ -*-==//
-//
-// Class for drawing CFG of a Function
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CFGGRAPHDRAWER_H
-#define CFGGRAPHDRAWER_H
-
-#include "GraphDrawer.h"
-
-namespace llvm {
-  class Function;
-}
-
-//===----------------------------------------------------------------------===//
-
-// CFGGraphDrawer interface
-
-class CFGGraphDrawer : public GraphDrawer {
- public:
-  wxImage *drawFunctionGraph (llvm::Function *fn);
-  CFGGraphDrawer (wxWindow *parent) : GraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-#endif // CFGGRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/CallGraphDrawer.cpp b/television/tools/llvm-tv/CallGraphDrawer.cpp
deleted file mode 100644
index 3ebb65d..0000000
--- a/television/tools/llvm-tv/CallGraphDrawer.cpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#include "CallGraphDrawer.h"
-#include "GraphPrinters.h"
-#include "llvm/PassManager.h"
-#include "TVTreeItem.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// CallGraphDrawer implementation
-
-wxImage *CallGraphDrawer::drawModuleGraph (Module *module) {
-  PassManager PM;
-  PM.add (createCallGraphPrinterPass ());
-  PM.run (*module);
-  return buildwxImageFromDotFile ("callgraph.dot");
-}
-
-std::string CallGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  std::string title ("Call graph");
-  if (item) title += " of " + item->getTitle ();
-  return title;
-}
-
diff --git a/television/tools/llvm-tv/CallGraphDrawer.h b/television/tools/llvm-tv/CallGraphDrawer.h
deleted file mode 100644
index 089e57e..0000000
--- a/television/tools/llvm-tv/CallGraphDrawer.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef CALLGRAPHDRAWER_H
-#define CALLGRAPHDRAWER_H
-
-#include "GraphDrawer.h"
-
-namespace llvm {
-  class Module;
-};
-
-//===----------------------------------------------------------------------===//
-
-// CallGraphDrawer interface
-
-class CallGraphDrawer : public GraphDrawer {
-public:
-  wxImage *drawModuleGraph (llvm::Module *M);
-  CallGraphDrawer (wxWindow *parent) : GraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-#endif // CALLGRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/CodeViewer.cpp b/television/tools/llvm-tv/CodeViewer.cpp
deleted file mode 100644
index 390482c..0000000
--- a/television/tools/llvm-tv/CodeViewer.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-#include "CodeViewer.h"
-#include "TVApplication.h"
-#include "TVTreeItem.h"
-#include "TVFrame.h"
-#include "llvm/Function.h"
-#include "llvm/Instruction.h"
-#include "llvm/Value.h"
-#include "llvm/ADT/StringExtras.h"
-#include <wx/listctrl.h>
-#include <map>
-#include <sstream>
-using namespace llvm;
-
-void TVCodeItem::SetLabel() {
-  std::string label;
-  if (!Val)
-    label = "<badref>";
-  else if (BasicBlock *BB = dyn_cast<BasicBlock>(Val))
-    label = BB->getName() + ":";
-  else if (Instruction *I = dyn_cast<Instruction>(Val)) {
-    std::ostringstream out;
-    I->print(out);
-    label = out.str();
-    // Post-processing for more attractive display
-    for (unsigned i = 0; i != label.length(); ++i)
-      if (label[i] == '\n') {                            // \n => space
-        label[i] = ' ';
-      } else if (label[i] == '\t') {                     // \t => 2 spaces
-        label[i] = ' ';
-        label.insert(label.begin()+i+1, ' ');
-      } else if (label[i] == ';') {                      // Delete comments!
-        unsigned Idx = label.find('\n', i+1);            // Find end of line
-        label.erase(label.begin()+i, label.begin()+Idx);
-        --i;
-      }
-
-  } else
-    label = "<invalid value>";
-
-  SetText(label.c_str());
-}
-
-//===----------------------------------------------------------------------===//
-
-void TVCodeListCtrl::refreshView() {
-  // Hide the list while rewriting it from scratch to speed up rendering
-  Hide();
-
-  // Clear out the list and then re-add all the items.
-  long index = 0;
-  ClearAll();
-  for (Items::iterator i = itemList.begin(), e = itemList.end(); i != e; ++i) {
-    InsertItem(index, (**i).m_text.c_str());
-    ItemToIndex[*i] = index;
-    ++index;
-  }
-
-  Show();
-}
-
-template<class T> void wipe (T x) { delete x; }
-
-void TVCodeListCtrl::SetFunction (Function *F) {
-  // Empty out the code list.
-  if (!itemList.empty ())
-    for_each (itemList.begin (), itemList.end (), wipe<TVCodeItem *>);
-  itemList.clear ();
-  ValueToItem.clear ();
-
-  // Populate it with BasicBlocks and Instructions from F.
-  for (Function::iterator BB = F->begin(), BBe = F->end(); BB != BBe; ++BB) {
-    TVCodeItem *TCBB = new TVCodeItem(BB);
-    itemList.push_back(TCBB);
-    ValueToItem[BB] = TCBB;
-    for (BasicBlock::iterator I = BB->begin(), Ie = BB->end(); I != Ie; ++I) {
-      TVCodeItem *TCI = new TVCodeItem(I);
-      itemList.push_back(TCI);
-      ValueToItem[I] = TCI;
-    }
-  }
-
-  // Since the function changed, we had better make sure that the list control
-  // matches what's in the code list.
-  refreshView ();
-}
-
-TVCodeListCtrl::TVCodeListCtrl(wxWindow *_parent, llvm::Function *F)
-  : wxListCtrl(_parent, LLVM_TV_CODEVIEW_LIST, wxDefaultPosition, wxDefaultSize,
-               wxLC_LIST) {
-  SetFunction (F);
-}
-
-TVCodeListCtrl::TVCodeListCtrl(wxWindow *_parent)
-  : wxListCtrl(_parent, LLVM_TV_CODEVIEW_LIST, wxDefaultPosition, wxDefaultSize,
-               wxLC_LIST) {
-}
-
-void TVCodeListCtrl::changeItemTextAttrs (TVCodeItem *item, wxColour *newColor, 
-                                          int newFontWeight) {
-  item->m_itemId = ItemToIndex[item];
-  item->SetTextColour(*newColor);
-  wxFont Font = item->GetFont();
-  Font.SetWeight(newFontWeight);
-  item->SetFont(Font);
-  SetItem(*item);
-}
-
-void TVCodeListCtrl::OnItemSelected(wxListEvent &event) {
-  Value *V = itemList[event.GetIndex ()]->getValue();
-  if (!V) return;
-
-  // Highlight uses in red
-  for (User::use_iterator u = V->use_begin(), e = V->use_end(); u != e; ++u)
-    changeItemTextAttrs (ValueToItem[*u], wxRED, wxBOLD);
-
-  // Highlight definitions of operands in green
-  if (User *U = dyn_cast<User>(V))
-    for (User::op_iterator op = U->op_begin(), e = U->op_end(); op != e; ++op)
-      if (TVCodeItem *TCI = ValueToItem[*op])
-        changeItemTextAttrs (TCI, wxGREEN, wxBOLD);
-}
-
-void TVCodeListCtrl::OnItemDeselected(wxListEvent &event) {
-  Value *V = itemList[event.GetIndex ()]->getValue();
-  if (!V) return;
-
-  // Set uses back to normal
-  for (User::use_iterator u = V->use_begin(), e = V->use_end(); u != e; ++u)
-    changeItemTextAttrs (ValueToItem[*u], wxBLACK, wxNORMAL);
-
-  // Set definitions of operands back to normal
-  if (User *U = dyn_cast<User>(V))
-    for (User::op_iterator op = U->op_begin(), e = U->op_end(); op != e; ++op)
-      if (TVCodeItem *TCI = ValueToItem[*op])
-        changeItemTextAttrs (ValueToItem[*op], wxBLACK, wxNORMAL);
-
-}
-
-BEGIN_EVENT_TABLE (TVCodeListCtrl, wxListCtrl)
-  EVT_LIST_ITEM_SELECTED(LLVM_TV_CODEVIEW_LIST,
-                         TVCodeListCtrl::OnItemSelected)
-  EVT_LIST_ITEM_DESELECTED(LLVM_TV_CODEVIEW_LIST,
-                           TVCodeListCtrl::OnItemDeselected)
-END_EVENT_TABLE ()
-
-//===----------------------------------------------------------------------===//
-
-void TVCodeViewer::displayItem (TVTreeItemData *item) {
-  item->viewCodeOn (this);
-}
-
-void TVCodeViewer::viewFunctionCode (Function *F) {
-  myListCtrl->SetFunction (F);
-}
-
-void TVCodeViewer::viewModuleCode (Module *F) {
-  myListCtrl->ClearAll();
-}
diff --git a/television/tools/llvm-tv/CodeViewer.h b/television/tools/llvm-tv/CodeViewer.h
deleted file mode 100644
index 240dcba..0000000
--- a/television/tools/llvm-tv/CodeViewer.h
+++ /dev/null
@@ -1,74 +0,0 @@
-//===-- CodeViewer.h - Interactive instruction stream viewer ----*- C++ -*-===//
-//
-// The interactive code explorer for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef CODEVIEWER_H
-#define CODEVIEWER_H
-
-#include <wx/wx.h>
-#include <wx/listctrl.h>
-#include <map>
-#include <string>
-#include <vector>
-#include "ItemDisplayer.h"
-
-class TVApplication;
-
-namespace llvm {
-  class Module;
-  class Function;
-  class Value;
-}
-
-/// TVCodeItem - contains an instruction, basic block, or function (which prints
-/// out as the header)
-///
-class TVCodeItem : public wxListItem {
- private:
-  llvm::Value *Val;
-  std::string label;
-
-  void SetLabel();
- public:
-  TVCodeItem(llvm::Value *V) : Val(V) { SetLabel(); }
-  llvm::Value* getValue() { return Val; }
-};
-
-class TVCodeListCtrl : public wxListCtrl {
-  typedef std::vector<TVCodeItem*> Items;
-  Items itemList;
-  std::map<llvm::Value*, TVCodeItem*> ValueToItem;
-  std::map<TVCodeItem*, long> ItemToIndex;
-
-  void refreshView();
-  void changeItemTextAttrs (TVCodeItem *item, wxColour *newColor, int newWgt);
-
- public:
-  void SetFunction (llvm::Function *F);
-  TVCodeListCtrl(wxWindow *_parent);
-  TVCodeListCtrl(wxWindow *_parent, llvm::Function *F);
-  void OnItemSelected(wxListEvent &event);
-  void OnItemDeselected(wxListEvent &event);
-
-  DECLARE_EVENT_TABLE ()
-};
-
-/// TVCodeViewer
-///
-class TVCodeViewer : public ItemDisplayer {
-  TVCodeListCtrl *myListCtrl;
-public:
-  TVCodeViewer (wxWindow *_parent) {
-    myListCtrl = new TVCodeListCtrl (_parent);
-  }
-  virtual ~TVCodeViewer () { delete myListCtrl; }
-  void displayItem (TVTreeItemData *data);
-  void viewFunctionCode (llvm::Function *F);
-  void viewModuleCode (llvm::Module *M);
-  std::string getDisplayTitle (TVTreeItemData *data) { return "Code view"; }
-  wxWindow *getWindow () { return myListCtrl; }
-};
-
-#endif
diff --git a/television/tools/llvm-tv/DSAGraphDrawer.cpp b/television/tools/llvm-tv/DSAGraphDrawer.cpp
deleted file mode 100644
index 10d34de..0000000
--- a/television/tools/llvm-tv/DSAGraphDrawer.cpp
+++ /dev/null
@@ -1,113 +0,0 @@
-//===-- DSGraphDrawer.cpp - DSGraph viewing ----------------------*- C++ -*-==//
-//
-// Classes for viewing DataStructure analysis graphs
-//
-//===----------------------------------------------------------------------===//
-
-#include "DSAGraphDrawer.h"
-#include "TVTreeItem.h"
-#include "GraphPrinters.h"
-#include "llvm/Function.h"
-#include "llvm/Module.h"
-#include "llvm/Pass.h"
-#include "llvm/PassManager.h"
-#include "llvm/Target/TargetData.h"
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// DSGraphDrawer implementation
-wxImage *DSGraphDrawer::drawModuleGraph(Module *M) {
-  PassManager PM;
-  PM.add(new TargetData("llvm-tv", M));
-  PM.add(getModulePass());
-  PM.run(*M);
-  return buildwxImageFromDotFile(getFilename(M));
-}
-
-wxImage *DSGraphDrawer::drawFunctionGraph(Function *F) {
-  Module *M = F->getParent();
-  PassManager PM;
-  PM.add(new TargetData("llvm-tv", M));
-  PM.add(getFunctionPass(F));
-  PM.run(*M);
-  return buildwxImageFromDotFile(getFilename(F));
-}
-
-//===----------------------------------------------------------------------===//
-
-// BUGraphDrawer implementation
-Pass *BUGraphDrawer::getFunctionPass(Function *F) {
-  return createBUDSFunctionPrinterPass(F);
-}
-
-Pass *BUGraphDrawer::getModulePass() {
-  return createBUDSModulePrinterPass();
-}
-
-std::string BUGraphDrawer::getFilename(Function *F) {
-  return "buds." + F->getName() + ".dot";
-}
-
-std::string BUGraphDrawer::getFilename(Module *M) {
-  return "buds.dot";
-}
-
-std::string BUGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  if (item)
-    return "Bottom-up data structure " + item->dsGraphName ();
-  else
-    return "Bottom-up DSGraph";
-}
-
-//===----------------------------------------------------------------------===//
-
-// TDGraphDrawer implementation
-Pass *TDGraphDrawer::getFunctionPass(Function *F) {
-  return createTDDSFunctionPrinterPass(F);
-}
-
-Pass *TDGraphDrawer::getModulePass() {
-  return createTDDSModulePrinterPass();
-}
-
-std::string TDGraphDrawer::getFilename(Function *F) {
-  return "tdds." + F->getName() + ".dot";
-}
-
-std::string TDGraphDrawer::getFilename(Module *M) {
-  return "tdds.dot";
-}
-
-std::string TDGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  if (item)
-    return "Top-down data structure " + item->dsGraphName ();
-  else
-    return "Top-down DSGraph";
-}
-
-//===----------------------------------------------------------------------===//
-
-// LocalGraphDrawer implementation
-Pass *LocalGraphDrawer::getFunctionPass(Function *F) {
-  return createLocalDSFunctionPrinterPass(F);
-}
-
-Pass *LocalGraphDrawer::getModulePass() {
-  return createLocalDSModulePrinterPass();
-}
-
-std::string LocalGraphDrawer::getFilename(Function *F) {
-  return "localds." + F->getName() + ".dot";
-}
-
-std::string LocalGraphDrawer::getFilename(Module *M) {
-  return "localds.dot";
-}
-
-std::string LocalGraphDrawer::getDisplayTitle (TVTreeItemData *item) {
-  if (item)
-    return "Local data structure " + item->dsGraphName ();
-  else 
-    return "Local DSGraph";
-}
diff --git a/television/tools/llvm-tv/DSAGraphDrawer.h b/television/tools/llvm-tv/DSAGraphDrawer.h
deleted file mode 100644
index 5d5f0cb..0000000
--- a/television/tools/llvm-tv/DSAGraphDrawer.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//===-- DSGraphDrawer.h - DSGraph viewing ------------------------*- C++ -*-==//
-//
-// Classes for viewing DataStructure analysis graphs
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef DSAGRAPHDRAWER_H
-#define DSAGRAPHDRAWER_H
-
-#include "GraphDrawer.h"
-#include <wx/wx.h>
-#include <string>
-
-namespace llvm {
-  class Function;
-  class Module;
-  class Pass;
-}
-
-//===----------------------------------------------------------------------===//
-
-// DSGraphDrawer abstract class
-//
-class DSGraphDrawer : public GraphDrawer {
-protected:
-  llvm::Function *F;
-  llvm::Module *M;
-  DSGraphDrawer (wxWindow *parent) : GraphDrawer (parent) { }
-  virtual llvm::Pass *getFunctionPass(llvm::Function *F) = 0;
-  virtual llvm::Pass *getModulePass() = 0;
-  virtual std::string getFilename(llvm::Function *F) = 0;
-  virtual std::string getFilename(llvm::Module *M) = 0;
-public:
-  wxImage *drawFunctionGraph(llvm::Function *F);
-  wxImage *drawModuleGraph(llvm::Module *M);
-};
-
-//===----------------------------------------------------------------------===//
-
-// BUGraphDrawer 
-//
-class BUGraphDrawer : public DSGraphDrawer {
-  llvm::Pass *getFunctionPass(llvm::Function *F);
-  llvm::Pass *getModulePass();
-  std::string getFilename(llvm::Function *F);
-  std::string getFilename(llvm::Module *M);
-public:
-  BUGraphDrawer (wxWindow *parent) : DSGraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-//===----------------------------------------------------------------------===//
-
-// TDGraphDrawer 
-//
-class TDGraphDrawer : public DSGraphDrawer {
-  llvm::Pass *getFunctionPass(llvm::Function *F);
-  llvm::Pass *getModulePass();
-  std::string getFilename(llvm::Function *F);
-  std::string getFilename(llvm::Module *M);
-public:
-  TDGraphDrawer (wxWindow *parent) : DSGraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-//===----------------------------------------------------------------------===//
-
-// LocalGraphDrawer 
-//
-class LocalGraphDrawer : public DSGraphDrawer {
-  llvm::Pass *getFunctionPass(llvm::Function *F);
-  llvm::Pass *getModulePass();
-  std::string getFilename(llvm::Function *F);
-  std::string getFilename(llvm::Module *M);
-public:
-  LocalGraphDrawer (wxWindow *parent) : DSGraphDrawer (parent) { }
-  std::string getDisplayTitle (TVTreeItemData *item);
-};
-
-#endif // DSAGRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/GraphDrawer.cpp b/television/tools/llvm-tv/GraphDrawer.cpp
deleted file mode 100644
index 86e2b22..0000000
--- a/television/tools/llvm-tv/GraphDrawer.cpp
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "wx/image.h"
-#include "GraphDrawer.h"
-#include "TVTreeItem.h"
-#include "llvm/Support/FileUtilities.h"
-#include <unistd.h>
-#include <iostream>
-using namespace llvm;
-
-//===----------------------------------------------------------------------===//
-
-// GraphDrawer shared implementation
-
-extern void FatalErrorBox (const std::string msg);
-
-wxImage *GraphDrawer::buildwxImageFromDotFile (const std::string filename) {
-  sys::Path File (filename);
-  if (! File.readable ())
-    FatalErrorBox ("buildwxImageFromDotFile() got passed a bogus filename: '"
-                   + filename + "'");
-
-  // We have a dot file, turn it into something we can load.
-  std::string cmd = "dot -Tpng " + filename + " -o image.png";
-  if (system (cmd.c_str ()) != 0)
-    FatalErrorBox ("buildwxImageFromDotFile() failed when calling dot");
-  unlink (filename.c_str ());
-
-  wxImage *img = new wxImage;
-  if (!img->LoadFile ("image.png"))
-    FatalErrorBox("buildwxImageFromDotFile() produced a non-loadable PNG file");
-
-  unlink ("image.png");
-  return img;
-}
-
-void GraphDrawer::displayItem (TVTreeItemData *item) {
-  wxImage *graphImage = item->graphOn (this);
-  if (!graphImage) {
-    // If we're drawing into a window, don't leave behind an embarrassing
-    // empty window AND an error message. (But don't destroy the window,
-    // because TVApp will get around to destroying it later.)
-    if (wxFrame *frame = dynamic_cast<wxFrame *>(myPictureCanvas->GetParent ()))
-      frame->Show (false);
-    std::string errMsg = "Sorry, you can't draw that kind of graph on "
-                         + item->getTitle() + ".";
-    wxMessageBox (errMsg.c_str (), "Error");
-    return;
-  }
-  myPictureCanvas->SetImage (graphImage);
-}
diff --git a/television/tools/llvm-tv/GraphDrawer.h b/television/tools/llvm-tv/GraphDrawer.h
deleted file mode 100644
index ce83d343..0000000
--- a/television/tools/llvm-tv/GraphDrawer.h
+++ /dev/null
@@ -1,45 +0,0 @@
-//===-- GraphDrawer.h - Graph viewing abstract class -------------*- C++ -*-==//
-//
-// Superclass for graph-drawing classes.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef GRAPHDRAWER_H
-#define GRAPHDRAWER_H
-
-#include "ItemDisplayer.h"
-#include "PictureCanvas.h"
-#include "wx/wx.h"
-#include <iostream>
-
-namespace llvm {
-  class Module;
-  class Function;
-};
-
-class TVTreeItemData;
-
-/// GraphDrawer abstract class
-///
-class GraphDrawer : public ItemDisplayer {
-  PictureCanvas *myPictureCanvas;
-
-protected:
-  static wxImage *buildwxImageFromDotFile (const std::string filename);
-  GraphDrawer (wxWindow *parent)
-    : myPictureCanvas (new PictureCanvas (parent)) { }
-
-public:
-  virtual ~GraphDrawer () { delete myPictureCanvas; }
-  wxWindow *getWindow () { return myPictureCanvas; }
-  void displayItem (TVTreeItemData *item);
-
-  /// drawModuleGraph, drawFunctionGraph - Subclasses should override
-  /// these methods to return images if they support visualizing the
-  /// corresponding kind of object.
-  ///
-  virtual wxImage *drawModuleGraph (llvm::Module *M) { return 0; }
-  virtual wxImage *drawFunctionGraph (llvm::Function *F) { return 0; }
-};
-
-#endif // GRAPHDRAWER_H
diff --git a/television/tools/llvm-tv/GraphPrinters.cpp b/television/tools/llvm-tv/GraphPrinters.cpp
deleted file mode 100644
index c93a0ae..0000000
--- a/television/tools/llvm-tv/GraphPrinters.cpp
+++ /dev/null
@@ -1,234 +0,0 @@
-//===- GraphPrinters.cpp - DOT printers for various graph types -----------===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines several printers for various different types of graphs used
-// by the LLVM infrastructure.  It uses the generic graph interface to convert
-// the graph into a .dot graph.  These graphs can then be processed with the
-// "dot" tool to convert them to postscript or some other suitable format.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Function.h"
-#include "llvm/Pass.h"
-#include "llvm/Value.h"
-#include "llvm/Analysis/CallGraph.h"
-#include "llvm/Analysis/DataStructure/DataStructure.h"
-#include "llvm/Analysis/DataStructure/DSGraph.h"
-#include "llvm/Support/GraphWriter.h"
-#include <fstream>
-using namespace llvm;
-
-template<typename GraphType>
-static void WriteGraphToFile(std::ostream &O, const std::string &GraphName,
-                             const GraphType &GT) {
-  std::string Filename = GraphName + ".dot";
-  O << "Writing '" << Filename << "'...";
-  std::ofstream F(Filename.c_str());
-  
-  if (F.good())
-    WriteGraph(F, GT);
-  else
-    O << "  error opening file for writing!";
-  O << "\n";
-}
-
-
-//===----------------------------------------------------------------------===//
-//                              Call Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-  template<>
-  struct DOTGraphTraits<CallGraph*> : public DefaultDOTGraphTraits {
-    static std::string getGraphName(CallGraph *F) {
-      return "Call Graph";
-    }
-    
-    static std::string getNodeLabel(CallGraphNode *Node, CallGraph *Graph) {
-      if (Node->getFunction())
-        return ((Value*)Node->getFunction())->getName();
-      else
-        return "Indirect call node";
-    }
-  };
-}
-
-namespace {
-  struct CallGraphPrinter : public ModulePass {
-    virtual bool runOnModule(Module &M) {
-      WriteGraphToFile(std::cerr, "callgraph", &getAnalysis<CallGraph>());
-      return false;
-    }
-
-    void print(std::ostream &OS) const {}
-    
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.addRequired<CallGraph>();
-      AU.setPreservesAll();
-    }
-  };
-
-  RegisterAnalysis<CallGraphPrinter> P2("print-callgraph",
-                                        "Print Call Graph to 'dot' file");
-}
-
-//===----------------------------------------------------------------------===//
-//                     Generic DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-
-  template<class DSType>
-  class DSModulePrinter : public ModulePass {
-  protected:
-    virtual std::string getFilename() = 0;
-
-  public:
-    bool runOnModule(Module &M) {
-      DSType *DS = &getAnalysis<DSType>();
-      std::string File = getFilename();
-      std::ofstream of(File.c_str());
-      if (of.good()) {
-        DS->getGlobalsGraph().print(of);
-        of.close();
-      } else
-        std::cerr << "Error writing to " << File << "!\n";
-      return false;
-    }
-
-    void print(std::ostream &os) const {}
-
-    virtual void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.template addRequired<DSType>();
-      AU.setPreservesAll();
-    }
-  };
-
-  template<class DSType>
-  class DSFunctionPrinter : public ModulePass {
-  protected:
-    Function *F;
-    virtual std::string getFilename(Function &F) = 0;
-
-  public:
-    DSFunctionPrinter(Function *_F) : F(_F) {}
-
-    bool runOnModule(Module &M) { 
-      DSType *DS = &getAnalysis<DSType>();
-      std::string File = getFilename(*F);
-      std::ofstream of(File.c_str());
-      if (of.good()) {
-        if (DS->hasGraph(*F)) {
-          DS->getDSGraph(*F).print(of);
-          of.close();
-        } else
-          // Can be more creative and print the analysis name here
-          std::cerr << "No DSGraph for: " << F->getName() << "\n";
-      } else
-        std::cerr << "Error writing to " << File << "!\n";
-      return false;
-    }
-
-    void print(std::ostream &os) const {}
-
-    void getAnalysisUsage(AnalysisUsage &AU) const {
-      AU.template addRequired<DSType>();
-      AU.setPreservesAll();
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                     BU DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-  struct BUModulePrinter : public DSModulePrinter<BUDataStructures> {
-    std::string getFilename() { return "buds.dot"; }
-  };
-  struct BUFunctionPrinter : public DSFunctionPrinter<BUDataStructures> {
-    BUFunctionPrinter(Function *F) : DSFunctionPrinter<BUDataStructures>(F) {}
-    std::string getFilename(Function &F) {
-      return "buds." + F.getName() + ".dot";
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                     TD DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-  struct TDModulePrinter : public DSModulePrinter<TDDataStructures> {
-    std::string getFilename() { return "tdds.dot"; }
-  };
-  struct TDFunctionPrinter : public DSFunctionPrinter<TDDataStructures> {
-    TDFunctionPrinter(Function *F) : DSFunctionPrinter<TDDataStructures>(F) {}
-    std::string getFilename(Function &F) {
-      return "tdds." + F.getName() + ".dot";
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                   Local DataStructures Graph Printer
-//===----------------------------------------------------------------------===//
-
-namespace {
-  struct LocalModulePrinter : public DSModulePrinter<LocalDataStructures> {
-    std::string getFilename() { return "localds.dot"; }
-  };
-  struct LocalFunctionPrinter : public DSFunctionPrinter<LocalDataStructures> {
-    LocalFunctionPrinter(Function *F) 
-      : DSFunctionPrinter<LocalDataStructures>(F) {}
-    std::string getFilename(Function &F) {
-      return "localds." + F.getName() + ".dot";
-    }
-  };
-}
-
-//===----------------------------------------------------------------------===//
-//                      Pass Creation Methods
-//===----------------------------------------------------------------------===//
-
-namespace llvm {
-
-  Pass *createCallGraphPrinterPass () { return new CallGraphPrinter(); }
-
-  // BU DataStructures
-  //
-  Pass *createBUDSModulePrinterPass () {
-    return new BUModulePrinter();
-  }
-
-  Pass *createBUDSFunctionPrinterPass (Function *F) {
-    return new BUFunctionPrinter(F);
-  }
-
-  // TD DataStructures
-  //
-  Pass *createTDDSModulePrinterPass () {
-    return new TDModulePrinter();
-  }
-
-  Pass *createTDDSFunctionPrinterPass (Function *F) {
-    return new TDFunctionPrinter(F);
-  }
-
-  // Local DataStructures
-  //
-  Pass *createLocalDSModulePrinterPass () {
-    return new LocalModulePrinter();
-  }
-
-  Pass *createLocalDSFunctionPrinterPass (Function *F) {
-    return new LocalFunctionPrinter(F);
-  }
-
-} // end namespace llvm
diff --git a/television/tools/llvm-tv/GraphPrinters.h b/television/tools/llvm-tv/GraphPrinters.h
deleted file mode 100644
index a1d0fdf..0000000
--- a/television/tools/llvm-tv/GraphPrinters.h
+++ /dev/null
@@ -1,40 +0,0 @@
-//===- GraphPrinters.h - DOT printers for various graph types ---*- C++ -*-===//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// This file defines several printers for various different types of graphs used
-// by the LLVM infrastructure.  It uses the generic graph interface to convert
-// the graph into a .dot graph.  These graphs can then be processed with the
-// "dot" tool to convert them to postscript or some other suitable format.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef GRAPHPRINTERS_H
-#define GRAPHPRINTERS_H
-
-#include <iosfwd>
-#include "llvm/Pass.h"
-using namespace llvm;
-
-namespace llvm {
-
-Pass *createCallGraphPrinterPass ();
-
-Pass *createBUDSModulePrinterPass ();
-Pass *createBUDSFunctionPrinterPass (Function *F);
-
-Pass *createTDDSModulePrinterPass ();
-Pass *createTDDSFunctionPrinterPass (Function *F);
-
-Pass *createLocalDSModulePrinterPass ();
-Pass *createLocalDSFunctionPrinterPass (Function *F);
-
-
-} // end namespace llvm
-
-#endif // GRAPHPRINTERS_H
diff --git a/television/tools/llvm-tv/ItemDisplayer.h b/television/tools/llvm-tv/ItemDisplayer.h
deleted file mode 100644
index f8b8903..0000000
--- a/television/tools/llvm-tv/ItemDisplayer.h
+++ /dev/null
@@ -1,30 +0,0 @@
-//===-- ItemDisplayer.h - Interface for tabbed-view components --*- C++ -*-===//
-//
-// The interface for tabbed views.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef ITEMDISPLAYER_H
-#define ITEMDISPLAYER_H
-
-#include <string>
-
-class TVTreeItemData;
-class wxWindow;
-
-class ItemDisplayer {
- public:
-  virtual void displayItem (TVTreeItemData *item) = 0;
-
-  /// getWindow - ItemDisplayers are responsible for explicitly keeping track of
-  /// whatever "window" they are displaying the item into.
-  ///
-  virtual wxWindow *getWindow () = 0;
-
-  /// getDisplayTitle - Return a title appropriate for when this
-  /// ItemDisplayer displays the given item, or if item is NULL, any item.
-  ///
-  virtual std::string getDisplayTitle (TVTreeItemData *item) = 0;
-};
-
-#endif // ITEMDISPLAYER_H
diff --git a/television/tools/llvm-tv/MakeMacOSBundle b/television/tools/llvm-tv/MakeMacOSBundle
deleted file mode 100755
index 7de0dbd..0000000
--- a/television/tools/llvm-tv/MakeMacOSBundle
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# make a MacOS bundle llvm-tv.app used to encapsulate llvm-tv
-# brg Tue Apr 27 15:10:22 CDT 2004
-#
-APP="$1"
-WX="$2"
-BINARY="$3"
-make_dir () {
-  dir=$1
-  if [ ! -d $dir ]
-  then
-    mkdir $dir
-  fi
-}
-make_dir ${APP}.app
-CONTENTS=${APP}.app/Contents
-make_dir $CONTENTS
-make_dir ${CONTENTS}/MacOS
-make_dir ${CONTENTS}/Resources
-# don't know what we need this for...
-#/Developer/Tools/Rez -t APPL Carbon.r $WX/lib/libwx_macd-2.4.0.r -o $APP
-cp $BINARY ${CONTENTS}/MacOS/${APP}
-sed -e "s/IDENTIFIER/llvm-tv/" \
-    -e "s/EXECUTABLE/$APP/" \
-    -e "s/VERSION/1.0/" $WX/src/mac/Info.plist.in > ${CONTENTS}/Info.plist
-echo -n "APPL????" > ${CONTENTS}/PkgInfo
-cp $WX/lib/libwx_macd-2.4.0.rsrc ${CONTENTS}/Resources/${APP}.rsrc
-cp $WX/src/mac/wxmac.icns ${CONTENTS}/Resources/wxmac.icns
-exit 0
diff --git a/television/tools/llvm-tv/Makefile b/television/tools/llvm-tv/Makefile
deleted file mode 100644
index eaec9aa..0000000
--- a/television/tools/llvm-tv/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-LEVEL = ../..
-TOOLNAME = llvm-tv
-LLVMLIBS = LLVMAnalysis.a LLVMBCReader LLVMBCWriter LLVMDataStructure \
-           LLVMipa.a LLVMSupport.a LLVMTarget.a LLVMCore LLVMTransformUtils.a \
-           LLVMSystem.a LLVMbzip2
-
-# note: delete when FileUtils is assimilated into libsupport
-USEDLIBS = LLVMTVSnapshot
-
-CPPFLAGS = $(shell wx-config --cflags)
-TOOLLINKOPTSB = $(shell wx-config --libs)
-WXDIR = $(shell wx-config --prefix)
-WXLIB = $(WXDIR)/lib
-
-include $(LEVEL)/Makefile.common
-
-all :: $(LLVMToolDir)/llvm-tv.exe \
-       $(LLVMToolDir)/opt-snap
-
-LLVMTV = $(PROJ_OBJ_ROOT)/Debug/bin/llvm-tv
-
-$(LLVMToolDir)/llvm-tv.exe: Makefile
-	echo exec env LD_LIBRARY_PATH=$(WXLIB):\$$LD_LIBRARY_PATH $(LLVMTV) \
-		"2&>1 > /dev/null" > $@
-	chmod u+x $@
-
-$(LLVMToolDir)/opt-snap: Makefile
-	echo exec env LD_LIBRARY_PATH=$(WXLIB):\$$LD_LIBRARY_PATH \
-		OPTPASSES=\"$$\*\" opt -load=$(LibDir)/libLLVMTVSnapshot.so $$\* > $@
-	chmod u+x $@
-
-ifeq ($(OS),Darwin)
-all :: mac-app
-clean :: clean-mac-app
-endif
-
-mac-app:
-	@./MakeMacOSBundle llvm-tv "$(WXDIR)" "$(LLVMToolDir)/llvm-tv"
-
-clean-mac-app:
-	rm -rf llvm-tv.app
diff --git a/television/tools/llvm-tv/PictureCanvas.cpp b/television/tools/llvm-tv/PictureCanvas.cpp
deleted file mode 100644
index 7124bfd..0000000
--- a/television/tools/llvm-tv/PictureCanvas.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
-#include "wx/image.h"
-#include "PictureCanvas.h"
-
-//===----------------------------------------------------------------------===//
-
-// PictureCanvas implementation
-
-BEGIN_EVENT_TABLE (PictureCanvas, wxScrolledWindow)
-END_EVENT_TABLE ()
-
-void PictureCanvas::OnDraw (wxDC &aDC) {
-  if (!myBitmap) return;
-  aDC.DrawBitmap (*myBitmap, 0, 0, false);
-}
-
-void PictureCanvas::imageChanged () {
-  if (myBitmap)
-    delete myBitmap; // Don't leak memory.
-
-  if (!myImage)
-    return; // Maybe there isn't a new image.
-
-  myBitmap = new wxBitmap (*myImage);
-  SetVirtualSize (myImage->GetWidth (), myImage->GetHeight ());
-  SetScrollRate (1, 1);
-  if (wxFrame *frame = dynamic_cast<wxFrame *> (GetParent ())) {
-    frame->SetSizeHints (-1, -1, myImage->GetWidth (), myImage->GetHeight ());
-    frame->Refresh ();
-  }
-}
diff --git a/television/tools/llvm-tv/PictureCanvas.h b/television/tools/llvm-tv/PictureCanvas.h
deleted file mode 100644
index 0985e5a..0000000
--- a/television/tools/llvm-tv/PictureCanvas.h
+++ /dev/null
@@ -1,44 +0,0 @@
-//===-- PictureCanvas.h - Host of graph images -------------------*- C++ -*-==//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// Visual pane for viewing analysis graphs
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PICTURECANVAS_H
-#define PICTURECANVAS_H
-
-#include "wx/wx.h"
-#include <iostream>
-#include <functional>
-
-//===----------------------------------------------------------------------===//
-
-// PictureCanvas interface
-
-class PictureCanvas : public wxScrolledWindow {
-  wxImage *myImage;
-  wxBitmap *myBitmap;
-
-  void imageChanged ();
- public:
-  PictureCanvas ()
-    : wxScrolledWindow (0), myImage (0), myBitmap (0) {
-  }
-  PictureCanvas (wxWindow *parent, wxImage *image = 0)
-    : wxScrolledWindow (parent), myImage (image), myBitmap (0) {
-    imageChanged ();
-  }
-  void SetImage (wxImage *img) { myImage = img; imageChanged (); }
-  void OnDraw (wxDC &aDC);
-
-  DECLARE_EVENT_TABLE ()
-};
-
-#endif // PICTURECANVAS_H
diff --git a/television/tools/llvm-tv/PictureFrame.cpp b/television/tools/llvm-tv/PictureFrame.cpp
deleted file mode 100644
index 9b4dd51..0000000
--- a/television/tools/llvm-tv/PictureFrame.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-#include "PictureFrame.h"
-#include "TVApplication.h"
-
-// PictureFrame implementation
-
-bool PictureFrame::OnClose (wxCloseEvent &event) {
-  myApp->GoodbyeFrom (this);
-  Destroy ();
-  return true;
-}
-
-BEGIN_EVENT_TABLE (PictureFrame, wxFrame)
-  EVT_CLOSE (PictureFrame::OnClose)
-END_EVENT_TABLE ()
diff --git a/television/tools/llvm-tv/PictureFrame.h b/television/tools/llvm-tv/PictureFrame.h
deleted file mode 100644
index 7ae2aa6..0000000
--- a/television/tools/llvm-tv/PictureFrame.h
+++ /dev/null
@@ -1,39 +0,0 @@
-//===-- PictureFrame.h - Window containing PictureCanvas ---------*- C++ -*-==//
-// 
-//                     The LLVM Compiler Infrastructure
-//
-// This file was developed by the LLVM research group and is distributed under
-// the University of Illinois Open Source License. See LICENSE.TXT for details.
-// 
-//===----------------------------------------------------------------------===//
-//
-// Window container for PictureCanvas objects.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef PICTUREFRAME_H
-#define PICTUREFRAME_H
-
-#include "PictureCanvas.h"
-#include "wx/wx.h"
-
-class TVApplication;
-
-/// PictureFrame - just a window that contains a PictureCanvas.
-///
-class PictureFrame : public wxFrame {
-  TVApplication *myApp;
-  void setupAppearance () {
-    SetSize (wxRect (200, 200, 300, 300));
-    Show (TRUE);
-  }
- public:
-  PictureFrame (TVApplication *app, const char *windowTitle = "")
-    : wxFrame (NULL, -1, windowTitle), myApp (app) {
-    setupAppearance ();
-  }
-  bool OnClose (wxCloseEvent &event);
-  DECLARE_EVENT_TABLE ()
-};
-
-#endif // PICTUREFRAME_H
diff --git a/television/tools/llvm-tv/TVApplication.cpp b/television/tools/llvm-tv/TVApplication.cpp
deleted file mode 100644
index 3193b7b..0000000
--- a/television/tools/llvm-tv/TVApplication.cpp
+++ /dev/null
@@ -1,131 +0,0 @@
-//===-- TVApplication.cpp - Main application class for llvm-tv ------------===//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CodeViewer.h"
-#include "TVApplication.h"
-#include "TVFrame.h"
-#include "llvm-tv/Support/FileUtils.h"
-#include "llvm-tv/Config.h"
-#include <wx/image.h>
-#include <cerrno>
-#include <iostream>
-#include <fstream>
-#include <functional>
-#include <signal.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-
-///==---------------------------------------------------------------------==///
-
-static TVApplication *TheApp;
-
-void sigHandler(int sigNum) {
-  TheApp->ReceivedSignal();
-}
-
-void TVApplication::ReceivedSignal () {
-  // Whenever we catch our prearranged signal, refresh the snapshot list.
-  myFrame->refreshSnapshotList();
-}
-
-/// FatalErrorBox - pop up an error message and quit.
-///
-void FatalErrorBox (const std::string msg) {
-  wxMessageBox(msg.c_str (), "Fatal Error", wxOK | wxICON_ERROR);
-  exit (1);
-}
-
-static void setUpMenus (wxFrame *frame) {
-  wxMenuBar *menuBar = new wxMenuBar ();
-
-  wxMenu *fileMenu = new wxMenu ("", 0);
-  fileMenu->Append (wxID_OPEN, "Add module...");
-  fileMenu->Append (LLVM_TV_REFRESH, "Refresh list");
-  fileMenu->Append (wxID_EXIT, "Quit");
-  menuBar->Append (fileMenu, "File");
-
-  wxMenu *viewMenu = new wxMenu ("", 0);
-  viewMenu->Append (LLVM_TV_CALLGRAPHVIEW, "View call graph");
-  viewMenu->Append (LLVM_TV_CFGVIEW, "View control-flow graph");
-  viewMenu->Append (LLVM_TV_BUDS_VIEW, "View BU datastructure graph");
-  viewMenu->Append (LLVM_TV_TDDS_VIEW, "View TD datastructure graph");
-  viewMenu->Append (LLVM_TV_LOCALDS_VIEW, "View Local datastructure graph");
-  viewMenu->Append (LLVM_TV_CODEVIEW, "View code (interactive)");
-  menuBar->Append (viewMenu, "View");
-
-  wxMenu *helpMenu = new wxMenu ("", 0);
-  helpMenu->Append (wxID_HELP_CONTENTS, "Help with LLVM-TV");
-  helpMenu->Append (wxID_ABOUT, "About LLVM-TV");
-  menuBar->Append (helpMenu, "Help");
-
-  frame->SetMenuBar (menuBar);
-}
-
-IMPLEMENT_APP (TVApplication)
-
-/// saveMyPID - Save my process ID into a temporary file.
-static void saveMyPID () {
-  EnsureDirectoryExists (llvmtvPath);
-
-  std::ofstream pidFile (llvmtvPID.c_str ());
-  if (pidFile.good () && pidFile.is_open ()) {
-    pidFile << getpid ();
-    pidFile.close ();
-  } else {
-    std::cerr << "Warning: could not save PID into " << llvmtvPID << "\n";
-  }
-}
-
-// eraseMyPID - Erase the PID file created by saveMyPID.
-static void eraseMyPID () {
-  unlink (llvmtvPID.c_str ());
-}
-
-void TVApplication::GoodbyeFrom (wxWindow *dyingWindow) {
-  std::vector<wxWindow *>::iterator where =
-    find (allMyWindows.begin(), allMyWindows.end(), dyingWindow);
-  if (where != allMyWindows.end ())
-    allMyWindows.erase (where);
-}
-
-void TVApplication::Quit () {
-  // Destroy all the picture windows, then the toplevel window.
-  for_each (allMyWindows.begin (), allMyWindows.end (),
-            std::mem_fun (&wxWindow::Destroy));
-  myFrame->Destroy ();
-}
-
-bool TVApplication::OnInit () {
-  // Save my PID into the file where the snapshot-making pass knows to
-  // look for it.
-  saveMyPID ();
-  atexit (eraseMyPID);
-
-  wxInitAllImageHandlers ();
-
-  // Build top-level window.
-  myFrame = new TVFrame (this, "LLVM Visualizer");
-  SetTopWindow (myFrame);
-
-  // Build top-level window's menu bar.
-  setUpMenus (myFrame);
-
-  // Read the snapshot list out of the given directory,
-  // and load the snapshot list view into the frame.
-  EnsureDirectoryExists (snapshotsPath);
-  
-  snapshotList = new TVSnapshotList(snapshotsPath);
-  
-  myFrame->initializeSnapshotListAndView();
-
-  // Set up signal handler so that we can get notified when
-  // the -snapshot pass hands us new snapshot bytecode files.
-  TheApp = this;
-  signal(SIGUSR1, sigHandler);
-
-  return true;
-}
diff --git a/television/tools/llvm-tv/TVApplication.h b/television/tools/llvm-tv/TVApplication.h
deleted file mode 100644
index 06624fe..0000000
--- a/television/tools/llvm-tv/TVApplication.h
+++ /dev/null
@@ -1,52 +0,0 @@
-//===-- TVApplication.h - Main application class for llvm-tv -----*- C++ -*--=//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVAPPLICATION_H
-#define TVAPPLICATION_H
-
-#include "TVSnapshotList.h"
-#include "wx/wx.h"
-#include <string>
-#include <vector>
-
-///==---------------------------------------------------------------------==///
-
-namespace llvm {
-  class Function;
-  class Module;
-}
-
-class TVFrame;
-class TVTreeItemData;
-class ItemDisplayer;
-
-
-/// FatalErrorBox - pop up an error message and quit.
-///
-void FatalErrorBox (const std::string msg);
-
-/// TVApplication - This class shows a window containing a status bar and a menu
-/// bar, and a list of files from a directory, that can be refreshed
-/// using a menu item.
-///
-class TVApplication : public wxApp {
-  TVFrame *myFrame;
-  std::vector<wxWindow *> allMyWindows;
-  std::vector<ItemDisplayer *> allMyDisplayers;
-  TVSnapshotList *snapshotList;
-
-public:
-  bool OnInit ();
-  void GoodbyeFrom (wxWindow *dyingWindow);
-  void ReceivedSignal ();
-  template <class Grapher> void OpenGraphView(TVTreeItemData *item);
-  void Quit ();
-  TVSnapshotList* getSnapshotList() { return snapshotList; }
-};
-
-DECLARE_APP (TVApplication)
-
-#endif // TVAPPLICATION_H
diff --git a/television/tools/llvm-tv/TVFrame.cpp b/television/tools/llvm-tv/TVFrame.cpp
deleted file mode 100644
index 0b68b2c..0000000
--- a/television/tools/llvm-tv/TVFrame.cpp
+++ /dev/null
@@ -1,283 +0,0 @@
-//===-- TVFrame.cpp - Main window class for LLVM-TV -----------------------===//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#include "CallGraphDrawer.h"
-#include "CFGGraphDrawer.h"
-#include "CodeViewer.h"
-#include "DSAGraphDrawer.h"
-#include "PictureFrame.h"
-#include "TVApplication.h"
-#include "TVFrame.h"
-#include "TVTextCtrl.h"
-#include "TVTreeItem.h"
-#include "llvm-tv/Config.h"
-#include <cassert>
-#include <dirent.h>
-#include <errno.h>
-#include <sstream>
-
-/// TreeCtrl constructor - creates the root and adds it to the tree
-///
-TVTreeCtrl::TVTreeCtrl(wxWindow *parent, TVFrame *frame, const wxWindowID id,
-                       const wxPoint& pos, const wxSize& size,
-                       long style)
-  : wxTreeCtrl(parent, id, pos, size, style), myFrame (frame) {
-  wxTreeItemId rootId = AddRoot("Snapshots", -1, -1,TVTreeRootItem::instance());
-}
-
-/// AddSnapshotsToTree - Given a list of snapshots the tree is populated
-///
-void TVTreeCtrl::AddSnapshotsToTree(TVSnapshotList *list) {
-  wxTreeItemId rootId = GetRootItem();
-  for (TVSnapshotList::iterator I = list->begin(), E = list->end();
-       I != E; ++I) {
-    // Get the Module associated with this snapshot and add it to the tree
-    Module *M = I->getModule();
-    wxTreeItemId id = AppendItem(rootId, I->label(), -1, -1,
-                                 new TVTreeModuleItem(I->label(), M));
-
-    // Loop over functions in the module and add them to the tree as children
-    for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) {
-      Function *F = I;
-      if (!F->isExternal()) {
-        const char *FuncName = F->getName().c_str();
-        AppendItem(id, FuncName, -1, -1, new TVTreeFunctionItem(FuncName, I));
-      }
-    }
-  }   
-}
-
-/// updateSnapshotList - Update the tree with the current snapshot list
-///
-void TVTreeCtrl::updateSnapshotList(TVSnapshotList *myList) {
-  DeleteChildren(GetRootItem());
-  AddSnapshotsToTree(myList);
-}
-
-/// GetSelectedItemData - Return the currently-selected visualizable
-/// object (TVTreeItemData object).
-///
-TVTreeItemData *TVTreeCtrl::GetSelectedItemData () {
-  return dynamic_cast<TVTreeItemData *> (GetItemData (GetSelection ()));
-}
-
-/// OnSelChanged - Inform the parent frame that the selection has changed,
-/// and pass the newly selected item to it.
-///
-void TVTreeCtrl::OnSelChanged(wxTreeEvent &event) {
-  myFrame->updateDisplayedItem (GetSelectedItemData ());
-}
-
-BEGIN_EVENT_TABLE(TVTreeCtrl, wxTreeCtrl)
-  EVT_TREE_SEL_CHANGED(LLVM_TV_TREE_CTRL, TVTreeCtrl::OnSelChanged)
-END_EVENT_TABLE ()
-
-///==---------------------------------------------------------------------==///
-
-void TVTextCtrl::displayItem (TVTreeItemData *item) {
-  std::ostringstream Out;
-  item->print (Out);
-  myTextCtrl->SetValue ("");
-  myTextCtrl->AppendText (Out.str ().c_str ());
-  myTextCtrl->ShowPosition (0);
-  myTextCtrl->SetInsertionPoint (0);
-}
-
-///==---------------------------------------------------------------------==///
-
-/// updateDisplayedItem - Updates right-hand pane with a view of the item that
-/// is now selected.
-///
-void TVFrame::updateDisplayedItem (TVTreeItemData *newlySelectedItem) {
-  // Tell the current visualizer widget to display the selected
-  // LLVM object in its window, which is displayed inside the notebook.
-  assert (newlySelectedItem
-          && "newlySelectedItem was null in updateDisplayedItem()");
-  notebook->SetSelectedItem (newlySelectedItem);
-}
-
-void TVFrame::refreshSnapshotList () {
-  
-  if (!myApp->getSnapshotList()->refreshList())
-    FatalErrorBox ("trying to open directory " + myApp->getSnapshotList()->getSnapshotDirName() + ": "
-                   + strerror(errno));
-  if (myTreeCtrl != 0)
-    myTreeCtrl->updateSnapshotList(myApp->getSnapshotList());
-}
-
-void TVFrame::initializeSnapshotListAndView () {
-  refreshSnapshotList ();
-  SetStatusText ("Snapshot list has been loaded.");
-}
-
-//==------------------------------------------------------------------------==//
-
-void TVNotebook::displaySelectedItemOnPage (int page) {
-  if (selectedItem)
-    displayers[page]->displayItem (selectedItem);
-}
-
-void TVNotebook::SetSelectedItem (TVTreeItemData *newSelectedItem) {
-  selectedItem = newSelectedItem;
-  displaySelectedItemOnPage (GetSelection ());
-}
-
-bool TVNotebook::AddItemDisplayer (ItemDisplayer *displayer) {
-  int pageIndex = GetPageCount ();
-  displayers.resize (1 + pageIndex);
-  displayers[pageIndex] = displayer;
-  return AddPage (displayer->getWindow (),
-                  displayer->getDisplayTitle (0).c_str (), true);
-}
-
-void TVNotebook::OnSelChanged (wxNotebookEvent &event) {
-  int newPage = event.GetSelection ();
-  displayers[newPage]->getWindow ()->SetSizeHints (-1, -1, -1, -1, -1, -1);
-  displaySelectedItemOnPage (newPage);
-  event.Skip ();
-}
-
-BEGIN_EVENT_TABLE (TVNotebook, wxNotebook)
-  EVT_NOTEBOOK_PAGE_CHANGED(LLVM_TV_NOTEBOOK, TVNotebook::OnSelChanged)
-END_EVENT_TABLE ()
-
-//==------------------------------------------------------------------------==//
-
-static const wxString Explanation
-  ("Click on a Module or Function in the left-hand pane\n"
-   "to display its code in the right-hand pane. Then, you\n"
-   "can choose from the View menu to see graphical code views.\n"); 
-
-/// TVFrame constructor - used to set up typical appearance of visualizer's
-/// top-level window.
-///
-TVFrame::TVFrame (TVApplication *app, const char *title)
-  : wxFrame (NULL, -1, title), myApp (app) {
-  // Set up appearance
-  CreateStatusBar ();
-  SetSize (wxRect (100, 100, 500, 200));
-  Show (FALSE);
-  splitterWindow = new wxSplitterWindow(this, LLVM_TV_SPLITTER_WINDOW,
-                                        wxDefaultPosition, wxDefaultSize,
-                                        wxSP_3D);
-
-  // Create tree view of snapshots
-  myTreeCtrl = new TVTreeCtrl(splitterWindow, this, LLVM_TV_TREE_CTRL);
-  Resize();
-
-  // Create right-hand pane's display widget and stick it in a notebook control.
-  notebook = new TVNotebook (splitterWindow);
-  notebook->AddItemDisplayer (new TVTextCtrl (notebook, Explanation));
-  notebook->AddItemDisplayer (new TDGraphDrawer (notebook));
-  notebook->AddItemDisplayer (new BUGraphDrawer (notebook));
-  notebook->AddItemDisplayer (new LocalGraphDrawer (notebook));
-  notebook->AddItemDisplayer (new TVCodeViewer (notebook));
-
-  // Split window vertically
-  splitterWindow->SplitVertically(myTreeCtrl, notebook, 200);
-  Show (TRUE);
-}
-
-/// OnHelp - display the help dialog
-///
-void TVFrame::OnHelp (wxCommandEvent &event) {
-  wxMessageBox (Explanation, "Help with LLVM-TV");
-}
-
-/// OnExit - respond to a request to exit the program.
-///
-void TVFrame::OnExit (wxCommandEvent &event) {
-  myApp->Quit ();
-}
-
-/// OnExit - respond to a request to display the About box.
-///
-void TVFrame::OnAbout (wxCommandEvent &event) {
-  wxMessageBox("LLVM Visualization Tool\n\n"
-               "By Misha Brukman, Tanya Brethour, and Brian Gaeke\n"
-               "Copyright (C) 2004 University of Illinois at Urbana-Champaign\n"
-               "http://llvm.cs.uiuc.edu", "About LLVM-TV");
-}
-
-/// OnRefresh - respond to a request to refresh the list
-///
-void TVFrame::OnRefresh (wxCommandEvent &event) {
-  refreshSnapshotList ();
-}
-
-void TVFrame::OnOpen (wxCommandEvent &event) {
-  wxFileDialog d (this, "Choose a bytecode file to display");
-  int result = d.ShowModal ();
-  if (result == wxID_CANCEL) return;
-  // FIXME: the rest of this method can be moved into the "snapshots
-  // list" object
-  std::string command = std::string("cp ") + std::string(d.GetPath ().c_str ()) + " " + snapshotsPath;
-  system (command.c_str ());
-  refreshSnapshotList ();
-}
-
-void TVFrame::Resize() {
-  wxSize size = GetClientSize();
-  myTreeCtrl->SetSize(0, 0, size.x, 2*size.y/3);
-}
-
-// This method of TVApplication is placed in this file so that it can
-// be instantiated by all its callers.
-template<class Grapher>
-void TVApplication::OpenGraphView (TVTreeItemData *item) {
-  PictureFrame *wind = new PictureFrame (this);
-  allMyWindows.push_back (wind);
-  ItemDisplayer *drawer = new Grapher (wind);
-  wind->SetTitle (drawer->getDisplayTitle (item).c_str ());
-  allMyDisplayers.push_back (drawer);
-  drawer->displayItem (item);
-}
-
-void TVFrame::CallGraphView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new call graph view window.
-  myApp->OpenGraphView<CallGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::CFGView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new CFG view window.
-  myApp->OpenGraphView<CFGGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::BUDSView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new BUDS view window.
-  myApp->OpenGraphView<BUGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::TDDSView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new TDDS view window.
-  myApp->OpenGraphView<TDGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::LocalDSView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new Local DS view window.
-  myApp->OpenGraphView<LocalGraphDrawer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-void TVFrame::CodeView(wxCommandEvent &event) {
-  // Get the selected LLVM object and open up a new CodeViewer window.
-  myApp->OpenGraphView<TVCodeViewer> (myTreeCtrl->GetSelectedItemData ());
-}
-
-BEGIN_EVENT_TABLE (TVFrame, wxFrame)
-  EVT_MENU (wxID_OPEN, TVFrame::OnOpen)
-  EVT_MENU (LLVM_TV_REFRESH, TVFrame::OnRefresh)
-  EVT_MENU (wxID_EXIT, TVFrame::OnExit)
-
-  EVT_MENU (wxID_HELP_CONTENTS, TVFrame::OnHelp)
-  EVT_MENU (wxID_ABOUT, TVFrame::OnAbout)
-
-  EVT_MENU (LLVM_TV_CALLGRAPHVIEW, TVFrame::CallGraphView)
-  EVT_MENU (LLVM_TV_CFGVIEW, TVFrame::CFGView)
-  EVT_MENU (LLVM_TV_BUDS_VIEW, TVFrame::BUDSView)
-  EVT_MENU (LLVM_TV_TDDS_VIEW, TVFrame::TDDSView)
-  EVT_MENU (LLVM_TV_LOCALDS_VIEW, TVFrame::LocalDSView)
-  EVT_MENU (LLVM_TV_CODEVIEW, TVFrame::CodeView)
-END_EVENT_TABLE ()
diff --git a/television/tools/llvm-tv/TVFrame.h b/television/tools/llvm-tv/TVFrame.h
deleted file mode 100644
index 4b9512a..0000000
--- a/television/tools/llvm-tv/TVFrame.h
+++ /dev/null
@@ -1,97 +0,0 @@
-//===-- TVFrame.h - Main window class for llvm-tv ----------------*- C++ -*-==//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVFRAME_H
-#define TVFRAME_H
-
-#include "TVSnapshotList.h"
-#include "TVWindowIDs.h"
-#include "wx/wx.h"
-#include "wx/listctrl.h"
-#include "wx/splitter.h"
-#include "wx/treectrl.h"
-#include "wx/notebook.h"
-#include "ItemDisplayer.h"
-#include <string>
-#include <vector>
-
-/// TVTreeCtrl - A specialization of wxTreeCtrl that displays a list of LLVM
-/// Modules and Functions from a snapshot
-///
-class TVFrame;
-class TVTreeCtrl : public wxTreeCtrl {
-  TVFrame *myFrame;
-public:
-  TVTreeCtrl::TVTreeCtrl(wxWindow *parent, TVFrame *frame, const wxWindowID id,
-                         const wxPoint& pos = wxDefaultPosition,
-                         const wxSize& size = wxDefaultSize,
-                         long style = wxTR_HIDE_ROOT | wxTR_DEFAULT_STYLE
-                                    | wxSUNKEN_BORDER);
-  virtual ~TVTreeCtrl() { }
-  void AddSnapshotsToTree(TVSnapshotList*);
-  void updateSnapshotList(TVSnapshotList*);
-  void OnSelChanged(wxTreeEvent &event);
-  TVTreeItemData *GetSelectedItemData ();
-
-  DECLARE_EVENT_TABLE();
-};
-
-///==---------------------------------------------------------------------==///
-
-/// TVNotebook - The class which is responsible for the "tab view"
-/// containing visualizers, which appears on the right-hand side
-/// of the main LLVM-TV window.
-///
-class TVNotebook : public wxNotebook {
-  std::vector<ItemDisplayer *> displayers;
-  TVTreeItemData *selectedItem;
-
-  void displaySelectedItemOnPage (int page);
-public:
-  TVNotebook (wxWindow *_parent)
-    : wxNotebook (_parent, LLVM_TV_NOTEBOOK) { }
-  void OnSelChanged (wxNotebookEvent &event);
-  bool AddItemDisplayer (ItemDisplayer *displayWidget);
-  void SetSelectedItem (TVTreeItemData *newSelectedItem);
-  DECLARE_EVENT_TABLE ()
-};
-
-///==---------------------------------------------------------------------==///
-
-/// TVFrame - The main application window for LLVM-TV, which is responsible
-/// for displaying the tree view, tab view, status bar, and menu bar.
-///
-class TVApplication;
-class TVFrame : public wxFrame {
-  TVApplication *myApp;
-  
-  wxSplitterWindow *splitterWindow; // divides this into left & right sides
-  TVTreeCtrl *myTreeCtrl;           // left side - displays tree view of module
-  TVNotebook *notebook;             // right side - tab views w/ item displayers
-
-  void Resize();
- public:
-  TVFrame (TVApplication *app, const char *title);
-  void OnExit (wxCommandEvent &event);
-  void CallGraphView (wxCommandEvent &event);
-  void CFGView (wxCommandEvent &event);
-  void BUDSView (wxCommandEvent &event);
-  void TDDSView (wxCommandEvent &event);
-  void LocalDSView (wxCommandEvent &event);
-  void CodeView (wxCommandEvent &event);
-  void OnAbout (wxCommandEvent &event);
-  void OnHelp (wxCommandEvent &event);
-  void OnOpen (wxCommandEvent &event);
-  void OnRefresh (wxCommandEvent &event);
-  void CreateTree(long style, std::vector<TVSnapshot>&);
-  void refreshSnapshotList ();
-  void initializeSnapshotListAndView ();
-  void updateDisplayedItem (TVTreeItemData *newlyDisplayedItem);
-
-  DECLARE_EVENT_TABLE ();
-};
-
-#endif // TVFRAME_H
diff --git a/television/tools/llvm-tv/TVHtmlWindow.h b/television/tools/llvm-tv/TVHtmlWindow.h
deleted file mode 100644
index 045dc17..0000000
--- a/television/tools/llvm-tv/TVHtmlWindow.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef TVHTMLWINDOW_H
-#define TVHTMLWINDOW_H
-
-#include "TVWindowIDs.h"
-#include "ItemDisplayer.h"
-#include "wx/html/htmlwin.h"
-
-class TVHtmlWindow : public ItemDisplayer {
-  wxHtmlWindow *myHtmlWindow;
- public:
-  TVHtmlWindow (wxWindow *_parent, const wxString &_init = "") {
-    myHtmlWindow = new wxHtmlWindow (_parent, LLVM_TV_HTML_WINDOW);
-    myHtmlWindow->AppendToPage (_init);
-  }
-  void displayItem (TVTreeItemData *item);
-  wxWindow *getWindow () { return myHtmlWindow; }
-  std::string getDisplayTitle (TVTreeItemData *item) { return "HTML view"; }
-};
-
-#endif // TVHTMLWINDOW_H
diff --git a/television/tools/llvm-tv/TVSnapshot.cpp b/television/tools/llvm-tv/TVSnapshot.cpp
deleted file mode 100644
index 64b91f8..0000000
--- a/television/tools/llvm-tv/TVSnapshot.cpp
+++ /dev/null
@@ -1,13 +0,0 @@
-#include "TVSnapshot.h"
-#include "llvm/Bytecode/Reader.h"
-#include "llvm-tv/Config.h"
-using namespace llvm;
-
-void TVSnapshot::readBytecodeFile () {
-  std::string errorStr;
-  M = ParseBytecodeFile (filename, &errorStr);
-  if (!M)
-    throw std::string ("Error reading bytecode from '" + filename + "': "
-                       + errorStr);
-}
-
diff --git a/television/tools/llvm-tv/TVSnapshot.h b/television/tools/llvm-tv/TVSnapshot.h
deleted file mode 100644
index b7f6f37..0000000
--- a/television/tools/llvm-tv/TVSnapshot.h
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- TVSnapshot.h - Wrapper class for llvm-tv snapshots -------*- C++ -*-==//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVSNAPSHOT_H
-#define TVSNAPSHOT_H
-
-#include <string>
-#include <vector>
-#include <libgen.h>
-#include "llvm/Module.h"
-using namespace llvm;
-
-/// TVSnapshot - Wrapper class for snapshots.
-///
-class TVSnapshot {
-  Module *M;
-  std::string filename;
-  std::string myLabel;
-
-  void readBytecodeFile ();
-  void fixLabel () { myLabel = basename ((char*)myLabel.c_str ()) ; }
- public:
-  //TVSnapshot () : M (0), filename (), myLabel (filename) { }
-  TVSnapshot (const std::string &_name) : M (0), filename (_name), myLabel (filename) { fixLabel(); }
-  TVSnapshot (const char *_name) : M (0), filename (_name), myLabel (filename) { fixLabel(); }
-  const char *label () const { return myLabel.c_str (); } 
-  unsigned getTimestamp () const { return (unsigned) strtol (label(), 0, 0); }
-  bool operator < (const TVSnapshot &s) const {
-    return getTimestamp () < s.getTimestamp ();
-  }
-  Module *getModule () {
-    if (!M)
-      readBytecodeFile ();
-    return M;
-  }
-};
-
-#endif // TVSNAPSHOT_H
diff --git a/television/tools/llvm-tv/TVSnapshotList.cpp b/television/tools/llvm-tv/TVSnapshotList.cpp
deleted file mode 100644
index be0a119..0000000
--- a/television/tools/llvm-tv/TVSnapshotList.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
-//===-- TVSnapshotList.cpp - List of snapshots class for llvm-tv -*- C++ -*--=//
-//
-// Encapsulates a list of snapshots and the directory they are in.
-//
-//===----------------------------------------------------------------------===//
-
-#include "TVSnapshotList.h"
-#include <dirent.h>
-
-
-//Each time this function is called the directory is rescanned
-//for any new snapshots
-bool TVSnapshotList::refreshList() {
-    // re-load the list of snapshots
-    const char *directoryName = mySnapshotDirName.c_str();
-    clearList();
-    DIR *d = opendir(directoryName);
-    if (!d)
-      return false;
-    
-    while (struct dirent *de = readdir (d))
-      if (memcmp(de->d_name, ".", 2) && memcmp(de->d_name, "..", 3))
-	addSnapshot(mySnapshotDirName + "/" + de->d_name);
-    
-    sortList();
-    
-    closedir (d);
-    return true;
-}
-
-//Sort the snapshot list
-void TVSnapshotList::sortList() {
-  sort (mySnapshotList.begin (), mySnapshotList.end ());
-}
-
-
-//Add a snapshot to our vector of snapshots
-void TVSnapshotList::addSnapshot(std::string snapshotName) { 
-  mySnapshotList.push_back(snapshotName); 
-}
-
diff --git a/television/tools/llvm-tv/TVSnapshotList.h b/television/tools/llvm-tv/TVSnapshotList.h
deleted file mode 100644
index f1413e4..0000000
--- a/television/tools/llvm-tv/TVSnapshotList.h
+++ /dev/null
@@ -1,37 +0,0 @@
-//===-- TVSnapshotList.h - List of snapshots class for llvm-tv ---*- C++ -*--=//
-//
-// Encapsulates a list of snapshots and the directory they are in.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVSNAPSHOTLIST_H
-#define TVSNAPSHOTLIST_H
-
-#include <string>
-#include <vector>
-#include "TVSnapshot.h"
-
-/// Containts a list of snapshots and the directory they are in.
-/// Put into a class to easily pass between the application and frame
-///
-class TVSnapshotList {
-  std::vector<TVSnapshot> mySnapshotList;
-  std::string mySnapshotDirName;
-public:
-  TVSnapshotList(std::string dir) :  mySnapshotDirName(dir) {}
-  std::string getSnapshotDirName() { return mySnapshotDirName; }
-  void setSnapshotDirName(std::string dir) { mySnapshotDirName = dir; }
-  void addSnapshot(std::string snapshotName);
-  void clearList() { mySnapshotList.clear(); }
-  void sortList();
-  bool refreshList();
-
-  //Iterators
-  typedef std::vector<TVSnapshot>::iterator iterator;
-  iterator begin() { return mySnapshotList.begin(); }
-  iterator end() { return mySnapshotList.end(); }
-
-};
-
-
-#endif 
diff --git a/television/tools/llvm-tv/TVTextCtrl.h b/television/tools/llvm-tv/TVTextCtrl.h
deleted file mode 100644
index 6ba2d93..0000000
--- a/television/tools/llvm-tv/TVTextCtrl.h
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef TVTEXTCTRL_H
-#define TVTEXTCTRL_H
-
-#include "TVWindowIDs.h"
-#include "ItemDisplayer.h"
-#include "wx/textctrl.h"
-
-class TVTextCtrl : public ItemDisplayer {
-  wxTextCtrl *myTextCtrl;
- public:
-  TVTextCtrl (wxWindow *_parent, const wxString &_value = "") {
-    myTextCtrl = new wxTextCtrl (_parent, LLVM_TV_TEXT_CTRL, _value,
-      wxDefaultPosition, wxDefaultSize,
-      wxTE_READONLY | wxTE_MULTILINE | wxHSCROLL);
-  }
-  void displayItem (TVTreeItemData *item);
-  wxWindow *getWindow () { return myTextCtrl; }
-  std::string getDisplayTitle (TVTreeItemData *item) { return "Text view"; }
-};
-
-#endif // TVTEXTCTRL_H
diff --git a/television/tools/llvm-tv/TVTreeItem.cpp b/television/tools/llvm-tv/TVTreeItem.cpp
deleted file mode 100644
index 5e8838c..0000000
--- a/television/tools/llvm-tv/TVTreeItem.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include "TVTreeItem.h"
-#include "llvm/Module.h"
-using namespace llvm;
-
-static TVTreeRootItem* theInstance = 0;
-
-TVTreeRootItem* TVTreeRootItem::instance() {
-  if (theInstance == 0) {
-    theInstance = new TVTreeRootItem("Snapshot Root");
-  }
-  return theInstance;
-}
-
-void TVTreeModuleItem::print(std::ostream &os) {
-  myModule->print(os);
-}
-
-void TVTreeFunctionItem::print(std::ostream &os) { 
-  myFunc->print(os);
-}
-
-std::string TVTreeFunctionItem::getTitle () {
-  return myFunc->getName () + "()";
-}
diff --git a/television/tools/llvm-tv/TVTreeItem.h b/television/tools/llvm-tv/TVTreeItem.h
deleted file mode 100644
index e53c1e7..0000000
--- a/television/tools/llvm-tv/TVTreeItem.h
+++ /dev/null
@@ -1,89 +0,0 @@
-//===-- TVTreeItem.h - Nodes for the tree view -------------------*- C++ -*-==//
-//
-// The gui for llvm-tv.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef TVTREEITEM_H
-#define TVTREEITEM_H
-
-#include "GraphDrawer.h"
-#include "CodeViewer.h"
-#include <wx/wx.h>
-#include <wx/treectrl.h>
-#include <ostream>
-#include <string>
-
-namespace llvm {
-  class Function;
-  class GlobalValue;
-  class Module;
-}
-
-/// TVTreeItemData - Base class for LLVM TV Tree Data
-///  
-class TVTreeItemData : public wxTreeItemData {
-public:
-  const wxChar *GetDesc() const { return m_desc.c_str(); }
-  virtual void print(std::ostream&) { }
-  virtual wxImage *graphOn(GraphDrawer *grapher) { return 0; }
-  virtual void viewCodeOn(TVCodeViewer *viewer) { }
-  virtual std::string getTitle () { return "an untitled object"; }
-  virtual std::string dsGraphName () { return "graph of " + getTitle (); }
-
-protected:
-  TVTreeItemData(const wxString& desc) : m_desc(desc) { }
-  void printFunctionHeader(llvm::Function *F);
-  void printFunction(llvm::Function *F);
-  void printModule(llvm::Module *M);
-  wxString m_desc;
-};
-
-/// TVTreeRootItem - Tree Item representing root of the hierarchy (Singleton)
-///
-class TVTreeRootItem : public TVTreeItemData {
-public:
-  static TVTreeRootItem* instance();
-protected:
-  TVTreeRootItem(const wxString& desc) : TVTreeItemData(desc) {}
-};
-
-/// TVTreeModuleItem - Tree Item containing a Module
-///  
-class TVTreeModuleItem : public TVTreeItemData {
-private:
-  llvm::Module *myModule;
-public:
-  TVTreeModuleItem(const wxString& desc, llvm::Module *mod) 
-    : TVTreeItemData(desc), myModule(mod) {}
-  
-  void print(std::ostream &out);
-  wxImage *graphOn(GraphDrawer *grapher) {
-    return grapher->drawModuleGraph (myModule);
-  }
-  void viewCodeOn(TVCodeViewer *viewer) { viewer->viewModuleCode (myModule); }
-
-  virtual std::string getTitle () { return m_desc.c_str(); }
-  virtual std::string dsGraphName () { return "globals graph"; }
-};
-
-
-/// TVTreeFunctionItem - Tree Item containing a Function
-///  
-class TVTreeFunctionItem : public TVTreeItemData {
-private:
-  llvm::Function *myFunc;
-public:
-  TVTreeFunctionItem(const wxString& desc, llvm::Function *func)
-    : TVTreeItemData(desc),  myFunc(func) {}
-  
-  void print(std::ostream &out);
-  wxImage *graphOn(GraphDrawer *grapher) {
-    return grapher->drawFunctionGraph (myFunc); 
-  }
-  void viewCodeOn(TVCodeViewer *viewer) { viewer->viewFunctionCode (myFunc); }
-
-  virtual std::string getTitle ();
-};
-
-#endif
diff --git a/television/tools/llvm-tv/TVWindowIDs.h b/television/tools/llvm-tv/TVWindowIDs.h
deleted file mode 100644
index 2d38731..0000000
--- a/television/tools/llvm-tv/TVWindowIDs.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef TVWINDOWIDS_H
-#define TVWINDOWIDS_H
-
-#include "wx/wx.h"
-
-/// Event IDs we use in the application
-///
-enum { 
-  LLVM_TV_REFRESH = wxID_HIGHEST + 1,
-  LLVM_TV_TREE_CTRL,
-  LLVM_TV_TEXT_CTRL,
-  LLVM_TV_HTML_WINDOW,
-  LLVM_TV_SPLITTER_WINDOW,
-  LLVM_TV_CALLGRAPHVIEW,
-  LLVM_TV_CFGVIEW,
-  LLVM_TV_BUDS_VIEW,
-  LLVM_TV_TDDS_VIEW,
-  LLVM_TV_LOCALDS_VIEW,
-  LLVM_TV_CODEVIEW,
-  LLVM_TV_CODEVIEW_LIST,
-  LLVM_TV_NOTEBOOK
-};
-
-#endif // TVWINDOWIDS_H