cluster: STABLE31 - Drop fence-agents and cleanup some more bits

Fabio M. Di Nitto fabbione at fedoraproject.org
Wed Oct 6 18:48:50 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=4ba847f2c66447f06257a390e387c16ffefb2be0
Commit:        4ba847f2c66447f06257a390e387c16ffefb2be0
Parent:        2cedffe916f3a8feb3edc99a922847271c2da06c
Author:        Fabio M. Di Nitto <fdinitto at redhat.com>
AuthorDate:    Wed Oct 6 20:48:19 2010 +0200
Committer:     Fabio M. Di Nitto <fdinitto at redhat.com>
CommitterDate: Wed Oct 6 20:48:19 2010 +0200

Drop fence-agents and cleanup some more bits

See https://www.redhat.com/archives/linux-cluster/2010-October/msg00012.html

Signed-off-by: Fabio M. Di Nitto <fdinitto at redhat.com>
---
 Makefile                                           |    1 -
 configure                                          |   99 -
 doc/COPYRIGHT                                      |   83 -
 fence/Makefile                                     |    2 +-
 fence/agents/Makefile                              |    6 -
 fence/agents/alom/Makefile                         |    7 -
 fence/agents/alom/fence_alom.py                    |   86 -
 fence/agents/apc/Makefile                          |    7 -
 fence/agents/apc/fence_apc.py                      |  243 -
 fence/agents/apc_snmp/Makefile                     |    7 -
 fence/agents/apc_snmp/README                       |   45 -
 fence/agents/apc_snmp/fence_apc_snmp.py            |  206 -
 fence/agents/apc_snmp/powernet369.mib              |31109 --------------------
 fence/agents/baytech/Makefile                      |    5 -
 fence/agents/baytech/fence_baytech.8               |   84 -
 fence/agents/baytech/fence_baytech.pl              |  683 -
 fence/agents/bladecenter/Makefile                  |    7 -
 fence/agents/bladecenter/fence_bladecenter.py      |  136 -
 fence/agents/bladecenter_snmp/Makefile             |    7 -
 .../bladecenter_snmp/fence_bladecenter_snmp.py     |   88 -
 fence/agents/brocade/Makefile                      |    5 -
 fence/agents/brocade/fence_brocade.8               |   84 -
 fence/agents/brocade/fence_brocade.pl              |  255 -
 fence/agents/bullpap/Makefile                      |    5 -
 fence/agents/bullpap/fence_bullpap.8               |   73 -
 fence/agents/bullpap/fence_bullpap.pl              |  366 -
 fence/agents/cisco_mds/Makefile                    |    7 -
 fence/agents/cisco_mds/fence_cisco_mds.py          |  126 -
 fence/agents/cisco_ucs/Makefile                    |    7 -
 fence/agents/cisco_ucs/fence_cisco_ucs.py          |  138 -
 fence/agents/cpint/Makefile                        |    5 -
 fence/agents/cpint/fence_cpint.8                   |   54 -
 fence/agents/cpint/fence_cpint.pl                  |  143 -
 fence/agents/drac/Makefile                         |    5 -
 fence/agents/drac/fence_drac.8                     |  105 -
 fence/agents/drac/fence_drac.pl                    |  678 -
 fence/agents/drac/test_drac.sh                     |   83 -
 fence/agents/drac5/Makefile                        |    7 -
 fence/agents/drac5/fence_drac5.py                  |  142 -
 fence/agents/egenera/Makefile                      |    5 -
 fence/agents/egenera/fence_egenera.8               |   78 -
 fence/agents/egenera/fence_egenera.pl              |  439 -
 fence/agents/eps/Makefile                          |    7 -
 fence/agents/eps/fence_eps.py                      |  129 -
 fence/agents/ibmblade/Makefile                     |   16 -
 fence/agents/ibmblade/fence_ibmblade.8             |    1 -
 fence/agents/ifmib/Makefile                        |    7 -
 fence/agents/ifmib/README                          |   45 -
 fence/agents/ifmib/fence_ifmib.py                  |  149 -
 fence/agents/ilo/Makefile                          |    7 -
 fence/agents/ilo/fence_ilo.py                      |  126 -
 fence/agents/ilo_mp/Makefile                       |    7 -
 fence/agents/ilo_mp/fence_ilo_mp.py                |   84 -
 fence/agents/intelmodular/Makefile                 |    7 -
 fence/agents/intelmodular/fence_intelmodular.py    |   99 -
 fence/agents/ipmilan/Makefile                      |   33 -
 fence/agents/ipmilan/expect.c                      |  342 -
 fence/agents/ipmilan/expect.h                      |   52 -
 fence/agents/ipmilan/ipmilan.c                     | 1147 -
 fence/agents/ldom/Makefile                         |    7 -
 fence/agents/ldom/fence_ldom.py                    |  139 -
 fence/agents/lib/Makefile                          |    7 -
 fence/agents/lib/fence2man.xsl                     |   53 -
 fence/agents/lib/fence2rng.xsl                     |   19 -
 fence/agents/lib/fencing.py.py                     |  928 -
 fence/agents/lib/fencing_snmp.py.py                |  131 -
 fence/agents/lpar/Makefile                         |    7 -
 fence/agents/lpar/fence_lpar.py                    |  185 -
 fence/agents/manual/Makefile                       |   21 -
 fence/agents/manual/fence_ack_manual.8             |   39 -
 fence/agents/manual/fence_ack_manual.sh            |   37 -
 fence/agents/mcdata/Makefile                       |    5 -
 fence/agents/mcdata/fence_mcdata.8                 |   84 -
 fence/agents/mcdata/fence_mcdata.pl                |  293 -
 fence/agents/node_assassin/Makefile                |   50 -
 fence/agents/node_assassin/fence_na.conf.in        |   84 -
 fence/agents/node_assassin/fence_na.lib.in         |  919 -
 fence/agents/node_assassin/fence_na.pl             |  162 -
 fence/agents/node_assassin/fence_na.pod.in         |  188 -
 fence/agents/nss_wrapper/Makefile                  |   26 -
 fence/agents/nss_wrapper/fence_nss_wrapper.c       |  482 -
 fence/agents/rackswitch/Makefile                   |   26 -
 fence/agents/rackswitch/do_rack.c                  |  752 -
 fence/agents/rackswitch/do_rack.h                  |   27 -
 fence/agents/rackswitch/fence_rackswitch.8         |   70 -
 fence/agents/rhevm/Makefile                        |    7 -
 fence/agents/rhevm/fence_rhevm.py                  |  145 -
 fence/agents/rsa/Makefile                          |    7 -
 fence/agents/rsa/fence_rsa.py                      |   92 -
 fence/agents/rsb/Makefile                          |    5 -
 fence/agents/rsb/fence_rsb.8                       |   76 -
 fence/agents/rsb/fence_rsb.py                      |  408 -
 fence/agents/sanbox2/Makefile                      |    7 -
 fence/agents/sanbox2/fence_sanbox2.py              |  167 -
 fence/agents/scsi/Makefile                         |    7 -
 fence/agents/scsi/fence_scsi.8                     |  109 -
 fence/agents/scsi/fence_scsi.pl                    |  659 -
 fence/agents/virsh/Makefile                        |    7 -
 fence/agents/virsh/fence_virsh.py                  |  107 -
 fence/agents/vixel/Makefile                        |    5 -
 fence/agents/vixel/fence_vixel.8                   |   72 -
 fence/agents/vixel/fence_vixel.pl                  |  212 -
 fence/agents/vmware/Makefile                       |    8 -
 fence/agents/vmware/fence_vmware.py                |  342 -
 fence/agents/vmware/fence_vmware_helper.pl         |  276 -
 fence/agents/wti/Makefile                          |    7 -
 fence/agents/wti/fence_wti.py                      |  159 -
 fence/agents/xcat/Makefile                         |    5 -
 fence/agents/xcat/fence_xcat.8                     |   63 -
 fence/agents/xcat/fence_xcat.pl                    |  197 -
 fence/agents/xvm/Makefile                          |   58 -
 fence/agents/xvm/README                            |  182 -
 fence/agents/xvm/TODO                              |   33 -
 fence/agents/xvm/debug.c                           |   18 -
 fence/agents/xvm/debug.h                           |   15 -
 fence/agents/xvm/fence_xvmd.8                      |  124 -
 fence/agents/xvm/fence_xvmd.c                      |  994 -
 fence/agents/xvm/mcast.c                           |  366 -
 fence/agents/xvm/mcast.h                           |   16 -
 fence/agents/xvm/options-ccs.c                     |   97 -
 fence/agents/xvm/options.c                         |  774 -
 fence/agents/xvm/options.h                         |   65 -
 fence/agents/xvm/simple_auth.c                     |  395 -
 fence/agents/xvm/simple_auth.h                     |   17 -
 fence/agents/xvm/tcp.c                             |  282 -
 fence/agents/xvm/tcp.h                             |    9 -
 fence/agents/xvm/tests/hvm.xml                     |   32 -
 fence/agents/xvm/tests/linux.xml                   |   31 -
 fence/agents/xvm/virt.c                            |  202 -
 fence/agents/xvm/virt.h                            |   60 -
 fence/agents/xvm/vm_states.c                       |  414 -
 fence/agents/xvm/xml.c                             |  316 -
 fence/agents/xvm/xvm.h                             |   65 -
 fence/agents/zvm/Makefile                          |    5 -
 fence/agents/zvm/fence_zvm.8                       |   64 -
 fence/agents/zvm/fence_zvm.pl                      |  353 -
 make/defines.mk.input                              |   10 -
 make/fencebuild.mk                                 |   43 -
 make/install.mk                                    |    8 -
 make/release.mk                                    |   24 -
 make/uninstall.mk                                  |    6 -
 scripts/fenceparse                                 |   42 -
 142 files changed, 1 insertions(+), 50988 deletions(-)

diff --git a/Makefile b/Makefile
index 3cf0730..5d4b50f 100644
--- a/Makefile
+++ b/Makefile
@@ -57,7 +57,6 @@ uninstall:
 clean:
 	set -e && for i in ${REALSUBDIRS}; do \
 		contrib_code=1 \
-		legacy_code=1 \
 		${MAKE} -C $$i $@;\
 	done
 
diff --git a/configure b/configure
index d6d5295..2e9f8bc 100755
--- a/configure
+++ b/configure
@@ -55,14 +55,8 @@ my %options = (
 	openaisincdir => \$openaisincdir,
 	openaislibdir => \$openaislibdir,
 	corosyncbin => \$corosyncbin,
-	virtincdir => \$virtincdir,
-	virtlibdir => \$virtlibdir,
 	zlibincdir => \$zlibincdir,
 	zliblibdir => \$zliblibdir,
-	nssincdir => \$nssincdir,
-	nsslibdir => \$nsslibdir,
-	nsprincdir => \$nsprincdir,
-	nsprlibdir => \$nsprlibdir,
 	ldapincdir => \$ldapincdir,
 	ldaplibdir => \$ldaplibdir,
 	libexecdir => \$libexecdir,
@@ -76,11 +70,8 @@ my %options = (
 	logrotatedir => \$logrotatedir,
 	syslogfacility => \$syslogfacility,
 	sysloglevel => \$sysloglevel,
-	snmpbin => \$snmpbin,
 	confdir => \$confdir,
 	conffile => \$conffile,
-	fence_agents => \$fence_agents,
-	fenceagentslibdir => \$fenceagentslibdir,
 	enable_contrib => \$enable_contrib,
 	enable_pacemaker => \$enable_pacemaker,
 	somajor => \$somajor,
@@ -92,7 +83,6 @@ my %options = (
 	without_dlm => \$without_dlm,
 	without_group => \$without_group,
 	without_fence => \$without_fence,
-	without_fence_agents => \$without_fence_agents,
 	without_rgmanager => \$without_rgmanager,
 	without_bindings => \$without_bindings,
 	disable_kernel_check => \$disable_kernel_check,
@@ -134,14 +124,8 @@ my $err = &GetOptions (\%options,
 		    'openaisincdir=s',
 		    'openaislibdir=s',
 		    'corosyncbin=s',
-		    'virtincdir=s',
-		    'virtlibdir=s',
 		    'zlibincdir=s',
 		    'zliblibdir=s',
-		    'nssincdir=s',
-		    'nsslibdir=s',
-		    'nsprincdir=s',
-		    'nsprlibdir=s',
 		    'ldapincdir=s',
 		    'ldaplibdir=s',
 		    'libexecdir=s',
@@ -155,14 +139,11 @@ my $err = &GetOptions (\%options,
 		    'logrotatedir=s',
 		    'syslogfacility=s',
 		    'sysloglevel=s',
-		    'snmpbin=s',
 		    'confdir=s',
 		    'conffile=s',
 		    'somajor=s',
 		    'sominor=s',
 		    'release_version=s',
-		    'fence_agents=s',
-		    'fenceagentslibdir=s',
 		    'enable_contrib',
 		    'enable_pacemaker',
 		    'without_common',
@@ -171,7 +152,6 @@ my $err = &GetOptions (\%options,
 		    'without_dlm',
 		    'without_group',
 		    'without_fence',
-		    'without_fence_agents',
 		    'without_rgmanager',
 		    'without_bindings',
 		    'disable_kernel_check');
@@ -199,7 +179,6 @@ if ($help || !$err) {
   print "--logrotatedir=\tthe base directory for logrorate.d files.  (Default: /etc/logrotate.d/)\n";
   print "--syslogfacility=\tset the default syslog facility.  (Default: LOG_LOCAL4)\n";
   print "--sysloglevel=\tset the default syslog level.  (Default: LOG_INFO)\n";
-  print "--snmpbin=\tthe base directory for snmp binaries (Ex: /usr/bin/snmpwalk).  (Default: {prefix}/bin)\n";
   print "--confdir=\tthe cluster config directory.  (Default: /etc/cluster)\n";
   print "--conffile=\tthe cluster config file.  (Default: cluster.conf)\n";
   print "--mandir=\tthe base directory for man pages.  (Default: {prefix}/share/man)\n";
@@ -237,19 +216,10 @@ if ($help || !$err) {
   print "--openaisincdir=\tthe base directory for openais include files.  (Default: {incdir})\n";
   print "--openaislibdir=\tthe base directory for openais libraries.  (Default: {libdir}/openais)\n";
   print "--corosyncbin=\tlocation of corosync executable file.  (Default: /usr/sbin/corosync)\n";
-  print "--nssincdir=\tthe base directory for libnss include files.  (Default: {incdir}/nss3)\n";
-  print "--nsslibdir=\tthe base directory for libnss libraries.  (Default: {libdir})\n";
-  print "--nsprincdir=\tthe base directory for libnspr include files.  (Default: {incdir}/nspr4)\n";
-  print "--nsprlibdir=\tthe base directory for libnspr libraries.  (Default: {libdir})\n";
-  print "--virtincdir=\tthe base directory for libvirt include files.  (Default: {incdir}/libvirt)\n";
-  print "--virtlibdir=\tthe base directory for libvirt libraries.  (Default: {libdir})\n";
   print "--zlibincdir=\tthe base directory for libz include files.  (Default: {incdir})\n";
   print "--zliblibdir=\tthe base directory for libz libraries.  (Default: {libdir})\n";
   print "--ldapincdir=\tthe base directory for ldap include files.  (Default: {incdir})\n";
   print "--ldaplibdir=\tthe base directory for ldap libraries.  (Default: {libdir})\n";
-  print "--fence_agents=\tlist of fence agents to configure.  (Default: all)\n";
-  print "\t\tUse --fence_agents=help for a list\n";
-  print "--fenceagentslibdir=\tspecify directory where to install common fence python lib.  (Default: {prefix}/share/fence)\n";
   print "--enable_contrib\tEnable build of community contributed code/tools.  (Default: no)\n";
   print "--enable_pacemaker\tEnable building of Pacemaker-specific pieces\n";
   print "--without_common\tDisable common building  (Default: enabled)\n";
@@ -258,7 +228,6 @@ if ($help || !$err) {
   print "--without_dlm\tDisable dlm building  (Default: enabled)\n";
   print "--without_group\tDisable group building  (Default: enabled)\n";
   print "--without_fence\tDisable fence building  (Default: enabled)\n";
-  print "--without_fence_agents\tDisable fence_agents building  (Default: enabled)\n";
   print "--without_rgmanager\tDisable rgmanager building  (Default: enabled)\n";
   print "--without_bindings\tDisable perl/python bindings building  (Default: enabled)\n";
   print "--disable_kernel_check\tDisable kernel version check  (Default: enabled)\n";
@@ -486,24 +455,6 @@ if (!$openaislibdir) {
 if (!$corosyncbin) {
   $corosyncbin="/usr/sbin/corosync";
 }
-if (!$nssincdir) {
-  $nssincdir="${incdir}/nss3";
-}
-if (!$nsslibdir) {
-  $nsslibdir="${libdir}";
-}
-if (!$nsprincdir) {
-  $nsprincdir="${incdir}/nspr4";
-}
-if (!$nsprlibdir) {
-  $nsprlibdir="${libdir}";
-}
-if (!$virtincdir) {
-  $virtincdir="${incdir}/libvirt";
-}
-if (!$virtlibdir) {
-  $virtlibdir="${libdir}";
-}
 if (!$zlibincdir) {
   $zlibincdir="${incdir}";
 }
@@ -547,21 +498,12 @@ if (!$syslogfacility) {
 if (!$sysloglevel) {
   $sysloglevel="LOG_INFO";
 }
-if (!$snmpbin) {
-  $snmpbin="${prefix}/bin";
-}
 if (!$confdir) {
   $confdir="/etc/cluster";
 }
 if (!$conffile) {
   $conffile="cluster.conf";
 }
-if (!$fence_agents) {
-  $fence_agents="all";
-}
-if (!$fenceagentslibdir) {
-  $fenceagentslibdir="${prefix}/share/fence";
-}
 if (!$enable_contrib) {
   $enable_contrib="";
 }
@@ -586,11 +528,6 @@ if (!$without_group) {
 if (!$without_fence) {
   $without_fence="";
 }
-if (!$without_fence_agents) {
-  $without_fence_agents="";
-} else {
-  $fence_agents="none";
-}
 if (!$without_rgmanager) {
   $without_rgmanager="";
 }
@@ -610,33 +547,6 @@ if (defined($release_version) && not length $release_version) {
   $release_version="";
 }
 
-if ((!$fence_agents) || ($fence_agents eq "all") || ($fence_agents eq "help")) {
-  @args = "find fence/agents -mindepth 2 -maxdepth 2 -name Makefile -printf '%h'";
-  open (IFILE, "@args |");
-  while (<IFILE>) {
-    chomp;
-    s|fence\/agents\/| |g;
-    s|lib ||g;
-    s|nss_wrapper ||g;
-    $all_fence = $_;
-  }
-  close IFILE;
-}
-
-if ($fence_agents eq "help") {
-  print "Available fence agents:\n$all_fence\n";
-  exit 0;
-}
-
-if ((!$fence_agents) || ($fence_agents eq "all")) {
-  print "\nThe following fence agents will be build on this system:\n$all_fence\n";
-  $fence_agents = $all_fence
-}
-
-if ($fence_agents eq "none") {
-  $fence_agents = "";
-}
-
 open IFILE, "<make/defines.mk.input" or die "Can't redirect stdin";
 open OFILE, ">${objdir}/make/defines.mk" or die "Can't redirect stdout";
 
@@ -677,12 +587,6 @@ while (<IFILE>) {
   $_ =~ s/\@COROSYNCBIN\@/$corosyncbin/;
   $_ =~ s/\@LDAPINCDIR\@/$ldapincdir/;
   $_ =~ s/\@LDAPLIBDIR\@/$ldaplibdir/;
-  $_ =~ s/\@NSSINCDIR\@/$nssincdir/;
-  $_ =~ s/\@NSSLIBDIR\@/$nsslibdir/;
-  $_ =~ s/\@NSPRINCDIR\@/$nsprincdir/;
-  $_ =~ s/\@NSPRLIBDIR\@/$nsprlibdir/;
-  $_ =~ s/\@VIRTINCDIR\@/$virtincdir/;
-  $_ =~ s/\@VIRTLIBDIR\@/$virtlibdir/;
   $_ =~ s/\@ZLIBINCDIR\@/$zlibincdir/;
   $_ =~ s/\@ZLIBLIBDIR\@/$zliblibdir/;
   $_ =~ s/\@LIBEXECDIR\@/$libexecdir/;
@@ -697,11 +601,8 @@ while (<IFILE>) {
   $_ =~ s/\@LOGROTATEDIR\@/$logrotatedir/;
   $_ =~ s/\@SYSLOGFACILITY\@/$syslogfacility/;
   $_ =~ s/\@SYSLOGLEVEL\@/$sysloglevel/;
-  $_ =~ s/\@SNMPBIN\@/$snmpbin/;
   $_ =~ s/\@CONFDIR\@/$confdir/;
   $_ =~ s/\@CONFFILE\@/$conffile/;
-  $_ =~ s/\@FENCE_AGENTS\@/$fence_agents/;
-  $_ =~ s/\@FENCEAGENTSLIBDIR\@/$fenceagentslibdir/;
   $_ =~ s/\@ENABLE_CONTRIB\@/$enable_contrib/;
   $_ =~ s/\@ENABLE_PACEMAKER\@/$enable_pacemaker/;
   $_ =~ s/\@DISABLE_COMMON\@/$without_common/;
diff --git a/doc/COPYRIGHT b/doc/COPYRIGHT
index 6881eb6..92b5e30 100644
--- a/doc/COPYRIGHT
+++ b/doc/COPYRIGHT
@@ -36,30 +36,6 @@ cman/daemon/fnvhash.c
 dlm/doc/example.c:
  Author: Daniel Phillips <phillips at redhat.com>
 
-fence/agents/apc_snmp/powernet369.mib:
- Copyright (c) 2005 American Power Conversion, Inc.
- PowerNet is a Trademark of American Power Conversion Corp.
-
-fence/agents/ifmib/fence_ifmib.py:
- Copyright (C) 2008-2010 Ross Vandegrift.
- Written by Ross Vandegrift <ross at kallisti.us>
-
-fence/agents/ipmilan/expect.{c,h}:
- Copyright (C) 2000 Alan Robertson <alanr at unix.sh>
-
-fence/agents/node_assassin/*
- Copyright (C) 2009-2010 Madison Kelly/Alteeve's Niche!
- Author: Digimer <digimer at alteeve.com>
-
-fence/agents/xvm/tcp.c:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2002-2010 Red Hat, Inc.  All rights reserved.
- Author: Jeff Moyer <jmoyer at redhat.com>
-
-fence/man/fence_ifmib.8:
- Copyright (C) 2008-2010 Ross Vandegrift.
- Written by Ross Vandegrift <ross at kallisti.us>
-
 From rgmanager/AUTHORS:
 
 Lon Hohberger           lhh at redhat.com
@@ -131,65 +107,6 @@ rgmanager/src/utils/syscall.h
  Copyright (C) 1997-2003 Sistina Software, Inc.  All rights reserved.
  Copyright (C) 2004-2010 Red Hat, Inc.  All rights reserved.
  
-rgmanager/src/resources/ASEHAagent.sh:
- Sybase Availability Agent for Red Hat Cluster v15.0.2
- Copyright (C) - 2007
- Sybase, Inc. All rights reserved.
-
- Sybase Availability Agent for Red Hat Cluster v15.0.2 is licensed
- under the GNU General Public License Version 2.
-
- Author(s):
-  Jian-ping Hui <jphui at sybase.com>
-
-rgmanager/src/resources/clusterfs.sh:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2002-2010 Red Hat, Inc.  All rights reserved.
-
-rgmanager/src/resources/follow-service.sl
- Author:
-  Marc Grimme, Mark Hlawatschek, October 2008
- Copyright (C) 2008-2010 ATIX AG
-
-rgmanager/src/resources/fs.sh:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2002-2010 Red Hat, Inc.  All rights reserved.
-
-rgmanager/src/resources/ip.sh:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2004-2010 Red Hat, Inc.  All rights reserved.
-
-rgmanager/src/resources/netfs.sh:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2002-2010 Red Hat, Inc.  All rights reserved.
-
-rgmanager/src/resources/netexport.sh:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2002-2010 Red Hat, Inc.  All rights reserved.
-
-rgmanager/src/resources/ocf-shellfuncs:
- Copyright (C) 2004 SUSE LINUX AG, Lars Marowsky-Bree. All Rights Reserved.
-
-rgmanager/src/resources/oracledb.sh:
- Author(s):
-  Hardy Merrill <hmerrill at redhat.com>
-  Michael Moon <Michael dot Moon at oracle.com>
-
-rgmanager/src/resources/SAPDatabase:
- Author: Alexander Krauth
- Copyright (C) 2006 Alexander Krauth
-
-rgmanager/src/resources/SAPInstance:
- Author: Alexander Krauth
- Copyright (C) 2006 Alexander Krauth
-
-rgmanager/src/resources/smb.sh:
- Copyright (C) 2000 Mission Critical Linux
- Copyright (C) 2002-2010 Red Hat, Inc.  All rights reserved.
- Author(s):
-  Lon Hohberger (lhh at redhat.com)
-  Tim Burke (tburke at redhat.com)
-
 Authors as known by current RCS as of the time of writing:
 
 Abhijith Das <adas at redhat.com>
diff --git a/fence/Makefile b/fence/Makefile
index dd9b33d..b3f9a61 100644
--- a/fence/Makefile
+++ b/fence/Makefile
@@ -1,4 +1,4 @@
 include ../make/defines.mk
 include $(OBJDIR)/make/passthrough.mk
 
-SUBDIRS=agents libfence libfenced fenced fence_node fence_tool man
+SUBDIRS=libfence libfenced fenced fence_node fence_tool man
diff --git a/fence/agents/Makefile b/fence/agents/Makefile
deleted file mode 100644
index 25ccfc0..0000000
--- a/fence/agents/Makefile
+++ /dev/null
@@ -1,6 +0,0 @@
-include ../../make/defines.mk
-include $(OBJDIR)/make/passthrough.mk
-
-ifdef fence_agents
-SUBDIRS = lib nss_wrapper ${fence_agents}
-endif
diff --git a/fence/agents/alom/Makefile b/fence/agents/alom/Makefile
deleted file mode 100644
index d92eeb7..0000000
--- a/fence/agents/alom/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_alom
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/alom/fence_alom.py b/fence/agents/alom/fence_alom.py
deleted file mode 100644
index 6223608..0000000
--- a/fence/agents/alom/fence_alom.py
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/python
-
-# The Following Agent Has Been Tested On:
-#
-# Sun(tm) Advanced Lights Out Manager CMT v1.6.1
-# as found on SUN T2000 Niagara
-
-import sys, re, pexpect, time
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Sun Advanced Lights Out Manager (ALOM)"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	result = ""
-	try:
-		conn.sendline("showplatform")
-                conn.log_expect(options, options["-c"], int(options["-Y"]))
-		status = re.search("standby",conn.before.lower())
-		result=(status!=None and "off" or "on")
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	return result
-
-def set_power_status(conn, options):
-	try:
-		cmd_line=(options["-o"]=="on" and "poweron" or "poweroff -f -y")
-		conn.sendline(cmd_line)
-		conn.log_expect(options, options["-c"],int(options["-g"]))
-		#Get the machine some time between poweron and poweroff
-		time.sleep(int(options["-g"]))
-		
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-		
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"secure", "identity_file", "test", "inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-	
-	pinput = process_input(device_opt)
-	pinput["-x"] = 1
-	options = check_input(device_opt, pinput)
-
-	# Default command is sc>
-	if (not options.has_key("-c")):
-		options["-c"] = "sc\>\ "
-
-	options["telnet_over_ssh"] = 1
-	
-	docs = { }
-	docs["shortdesc"] = "Fence agent for Sun ALOM"
-	docs["longdesc"] = "fence_alom is an I/O Fencing \
-agent which can be used with ALOM connected machines."
-	docs["vendorurl"] = "http://www.sun.com"
-	show_docs(options, docs)
-		
-	# Operate the fencing device
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status,None)
-
-	# Logout from system
-	try:
-		conn.sendline("logout")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass	                                         
-
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/apc/Makefile b/fence/agents/apc/Makefile
deleted file mode 100644
index fabf52c..0000000
--- a/fence/agents/apc/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_apc
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/apc/fence_apc.py b/fence/agents/apc/fence_apc.py
deleted file mode 100755
index d10dd5f..0000000
--- a/fence/agents/apc/fence_apc.py
+++ /dev/null
@@ -1,243 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  Model       Firmware
-## +---------------------------------------------+
-##  AP7951	AOS v2.7.0, PDU APP v2.7.3
-##  AP7941      AOS v3.5.7, PDU APP v3.5.6
-##  AP9606	AOS v2.5.4, PDU APP v2.7.3
-##
-## @note: ssh is very slow on AP79XX devices protocol (1) and 
-##        cipher (des/blowfish) have to be defined
-#####
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New APC Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	exp_result = 0
-	outlets = {}
-	try:
-		conn.send("1\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-
-		version = 0
-		admin = 0
-		switch = 0;
-
-		if (None != re.compile('.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before)):
-			switch = 1;
-			if (None != re.compile('.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before)):
-				if (0 == options.has_key("-s")):
-					fail_usage("Failed: You have to enter physical switch number")
-			else:
-				if (0 == options.has_key("-s")):
-					options["-s"] = "1"
-
-		if (None == re.compile('.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before)):
-			version = 2
-		else:
-			version = 3
-
-		if (None == re.compile('.*Outlet Control/Configuration.*', re.IGNORECASE | re.S).match(conn.before)):
-			admin = 0
-		else:
-			admin = 1
-
-		if switch == 0:
-			if version == 2:
-				if admin == 0:
-					conn.send("2\r\n")
-				else:
-					conn.send("3\r\n")
-			else:
-				conn.send("2\r\n")
-				conn.log_expect(options, options["-c"], int(options["-Y"]))
-				conn.send("1\r\n")
-		else:
-			conn.send(options["-s"]+"\r\n")
-			
-		while True:
-			exp_result = conn.log_expect(options, [ options["-c"],  "Press <ENTER>" ], int(options["-Y"]))
-			lines = conn.before.split("\n");
-			show_re = re.compile('(^|\x0D)\s*(\d+)- (.*?)\s+(ON|OFF)\s*')
-			for x in lines:
-				res = show_re.search(x)
-				if (res != None):
-					outlets[res.group(2)] = (res.group(3), res.group(4))
-			conn.send("\r\n")
-			if exp_result == 0:
-				break
-		conn.send(chr(03))		
-		conn.log_expect(options, "- Logout", int(options["-Y"]))
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	if ["list", "monitor"].count(options["-o"]) == 1:
-		return outlets
-	else:
-		try:
-			(_, status) = outlets[options["-n"]]
-			return status.lower().strip()
-		except KeyError:
-			fail(EC_STATUS)
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "1",
-		'off': "2"
-	}[options["-o"]]
-
-	try:
-		conn.send("1\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-
-		version = 0
-		admin2 = 0
-		admin3 = 0
-		switch = 0
-
-		if (None != re.compile('.* MasterSwitch plus.*', re.IGNORECASE | re.S).match(conn.before)):
-			switch = 1;
-			## MasterSwitch has different schema for on/off actions
-			action = {
-				'on' : "1",
-				'off': "3"
-			}[options["-o"]]
-			if (None != re.compile('.* MasterSwitch plus 2', re.IGNORECASE | re.S).match(conn.before)):
-				if (0 == options.has_key("-s")):
-					fail_usage("Failed: You have to enter physical switch number")
-			else:
-				if (0 == options.has_key("-s")):
-					options["-s"] = 1
-
-		if (None == re.compile('.*Outlet Management.*', re.IGNORECASE | re.S).match(conn.before)):
-			version = 2
-		else:
-			version = 3
-
-		if (None == re.compile('.*Outlet Control/Configuration.*', re.IGNORECASE | re.S).match(conn.before)):
-			admin2 = 0
-		else:
-			admin2 = 1
-
-		if switch == 0:
-			if version == 2:
-				if admin2 == 0:
-					conn.send("2\r\n")
-				else:
-					conn.send("3\r\n")
-			else:
-				conn.send("2\r\n")
-				conn.log_expect(options, options["-c"], int(options["-Y"]))
-				if (None == re.compile('.*2- Outlet Restriction.*', re.IGNORECASE | re.S).match(conn.before)):
-					admin3 = 0
-				else:
-					admin3 = 1
-				conn.send("1\r\n")
-		else:
-			conn.send(options["-s"] + "\r\n")
-
-		while 1 == conn.log_expect(options, [ options["-c"],  "Press <ENTER>" ], int(options["-Y"])):
-			conn.send("\r\n")
-		conn.send(options["-n"]+"\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-
-		if switch == 0:
-			if admin2 == 1:
-				conn.send("1\r\n")
-				conn.log_expect(options, options["-c"], int(options["-Y"]))
-			if admin3 == 1:
-				conn.send("1\r\n")
-				conn.log_expect(options, options["-c"], int(options["-Y"]))
-		else:
-			conn.send("1\r\n")
-			conn.log_expect(options, options["-c"], int(options["-Y"]))
-			
-		conn.send(action+"\r\n")
-		conn.log_expect(options, "Enter 'YES' to continue or <ENTER> to cancel :", int(options["-Y"]))
-		conn.send("YES\r\n")
-		conn.log_expect(options, "Press <ENTER> to continue...", int(options["-Y"]))
-		conn.send("\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-		conn.send(chr(03))
-		conn.log_expect(options, "- Logout", int(options["-Y"]))
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"secure", "port", "identity_file", "switch", "test", "separator",
-			"inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific defaults
-	#####
-	options["ssh_options"] = "-1 -c blowfish"
-
-	if 0 == options.has_key("-c"):
-		options["-c"] = "\n>"
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for APC over telnet/ssh"
-	docs["longdesc"] = "fence_apc is an I/O Fencing agent \
-which can be used with the APC network power switch. It logs into device \
-via telnet/ssh  and reboots a specified outlet. Lengthy telnet/ssh connections \
-should be avoided while a GFS cluster  is  running  because  the  connection \
-will block any necessary fencing actions."
-	docs["vendorurl"] = "http://www.apc.com"
-	show_docs(options, docs)
-
-	## Support for -n [switch]:[plug] notation that was used before
-	if (options.has_key("-n") == 1) and (-1 != options["-n"].find(":")):
-		(switch, plug) = options["-n"].split(":", 1)
-		options["-s"] = switch;
-		options["-n"] = plug;
-
-	##
-	## Operate the fencing device
-	####
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status, get_power_status)
-
-	##
-	## Logout from system
-	##
-	## In some special unspecified cases it is possible that 
-	## connection will be closed before we run close(). This is not 
-	## a problem because everything is checked before.
-	######
-	try:
-		conn.sendline("4")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/apc_snmp/Makefile b/fence/agents/apc_snmp/Makefile
deleted file mode 100644
index 3834702..0000000
--- a/fence/agents/apc_snmp/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_apc_snmp
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/apc_snmp/README b/fence/agents/apc_snmp/README
deleted file mode 100644
index 75aa37a..0000000
--- a/fence/agents/apc_snmp/README
+++ /dev/null
@@ -1,45 +0,0 @@
-This is an snmp based fence agent for APC power switches to be used
-with RHEL4 Red Hat Cluster Suite.
-
-The reasons to use this agent rather than the current fence_apc agent are:
-1) This script has been tested with EVERY powerswitch that APC currently
-makes.
-2) It will work on many older models that are no longer supported by APC.
-I have been told that it even works with the AP9200 switch. Older switches
-usually don't do well with the fence_apc script.
-3) This agent works with large power switches that have more than 8 outlets.
-The fence_apc script will also, in the next update -- this script will work for you now.
-
-If feedback on this beta version of the agent is good, and if ganged switches 
-can be supported, then this agent may replace fence_apc.
-
-In order to use this agent, you will need to have net-snmp-utils installed 
-on every node in your cluster. net-snmp-utils is scheduled for inclusion 
-in the base RHEL distribution for Update 4, and is yummable in FC5.
-
-After net-snmp-utils is installed, there will be a directory named:
-/usr/share/snmp/mibs/
-
-Place the accompanying powernet369.mib file in this directory.
-
-To use the agent, cp the agent to the /sbin directory on every
-cluster node. The interface for the fence_apc_snmp agent is identical to
-the existing fence_apc agent, so if you are using APC for fencing in 
-your cluster, you *could* backup your current fence_apc agent, and 
-rename this agent from fence_apc_snmp to fence_apc, and it should just work.
-
-NOTE: The fence_apc_snmp agent does not yet support ganged or 'daisy-chained'
-APC switches. 
-
-If you would rather not copy over your fence_apc agent, you can still use 
-the fence_apc_snmp agent by dropping it into /sbin on every node, and then
-defining a <fencedevice> in the cluster.conf file with agent="fence_apc_snmp"
-as an attribute, and use it that way. Note, please, that the GUI does
-not support this agent yet, and you will have to edit your cluster.conf 
-by hand and then propagate it yourself. If you need help with this, email
-me on linux-cluster or at the address below.
-
-Big thanks to Nate Straz who laid the foundation for this agent.
-
-Please let me know how this agent works.
---Jim Parsons - jparsons at redhat.com
diff --git a/fence/agents/apc_snmp/fence_apc_snmp.py b/fence/agents/apc_snmp/fence_apc_snmp.py
deleted file mode 100644
index 71e978e..0000000
--- a/fence/agents/apc_snmp/fence_apc_snmp.py
+++ /dev/null
@@ -1,206 +0,0 @@
-#!/usr/bin/python
-
-# The Following agent has been tested on:
-# - APC Switched Rack PDU (MB:v3.7.0 PF:v2.7.0 PN:apc_hw02_aos_270.bin AF1:v2.7.3 AN1:apc_hw02_aos_270.bin
-#    AF1:v2.7.3 AN1:apc_hw02_rpdu_273.bin MN:AP7930 HR:B2) - SNMP v1
-# - APC Web/SNMP Management Card (MB:v3.8.6 PF:v3.5.8 PN:apc_hw02_aos_358.bin AF1:v3.5.7 AN1:apc_hw02_aos_358.bin
-#    AF1:v3.5.7 AN1:apc_hw02_rpdu_357.bin MN:AP7900 HR:B2) - SNMP v1 and v3 (noAuthNoPrivacy,authNoPrivacy, authPrivacy)
-# - APC Switched Rack PDU (MB:v3.7.0 PF:v2.7.0 PN:apc_hw02_aos_270.bin AF1:v2.7.3 AN1:apc_hw02_rpdu_273.bin
-#    MN:AP7951 HR:B2) - SNMP v1
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-from fencing_snmp import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="APC SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-### CONSTANTS ###
-# oid defining fence device
-OID_SYS_OBJECT_ID='.1.3.6.1.2.1.1.2.0'
-
-### GLOBAL VARIABLES ###
-# Device - see ApcRPDU, ApcMSP, ApcMS
-device=None
-
-# Port ID
-port_id=None
-# Switch ID
-switch_id=None
-
-# Classes describing Device params
-class ApcRPDU:
-	# Rack PDU
-	status_oid=      '.1.3.6.1.4.1.318.1.1.12.3.5.1.1.4.%d'
-	control_oid=     '.1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.%d'
-	outlet_table_oid='.1.3.6.1.4.1.318.1.1.12.3.5.1.1.2'
-	ident_str="APC rPDU"
-	state_on=1
-	state_off=2
-	turn_on=1
-	turn_off=2
-	has_switches=False
-
-class ApcMSP:
-	# Master Switch+
-	status_oid=      '.1.3.6.1.4.1.318.1.1.6.7.1.1.5.%d.1.%d'
-	control_oid=     '.1.3.6.1.4.1.318.1.1.6.5.1.1.5.%d.1.%d'
-	outlet_table_oid='.1.3.6.1.4.1.318.1.1.6.7.1.1.4'
-	ident_str="APC Master Switch+"
-	state_on=1
-	state_off=2
-	turn_on=1
-	turn_off=3
-	has_switches=True
-
-class ApcMS:
-	# Master Switch - seems oldest, but supported on every APC PDU
-	status_oid=      '.1.3.6.1.4.1.318.1.1.4.4.2.1.3.%d'
-	control_oid=     '.1.3.6.1.4.1.318.1.1.4.4.2.1.3.%d'
-	outlet_table_oid='.1.3.6.1.4.1.318.1.1.4.4.2.1.4'
-	ident_str="APC Master Switch (fallback)"
-	state_on=1
-	state_off=2
-	turn_on=1
-	turn_off=2
-	has_switches=False
-
-### FUNCTIONS ###
-def apc_set_device(conn,options):
-	global device
-
-	agents_dir={'.1.3.6.1.4.1.318.1.3.4.5':ApcRPDU,
-		    '.1.3.6.1.4.1.318.1.3.4.4':ApcMSP,
-		    None:ApcMS}
-
-	# First resolve type of APC
-	apc_type=conn.walk(OID_SYS_OBJECT_ID)
-
-	if (not ((len(apc_type)==1) and (agents_dir.has_key(apc_type[0][1])))):
-		apc_type=[[None,None]]
-
-	device=agents_dir[apc_type[0][1]]
-
-	conn.log_command("Trying %s"%(device.ident_str))
-
-def apc_resolv_port_id(conn,options):
-	global port_id,switch_id,device
-
-	if (device==None):
-		apc_set_device(conn,options)
-
-	# Now we resolv port_id/switch_id
-	if ((options["-n"].isdigit()) and ((not device.has_switches) or (options["-s"].isdigit()))):
-		port_id=int(options["-n"])
-
-		if (device.has_switches):
-			switch_id=int(options["-s"])
-	else:
-		table=conn.walk(device.outlet_table_oid,30)
-
-		for x in table:
-			if (x[1].strip('"')==options["-n"]):
-				t=x[0].split('.')
-				if (device.has_switches):
-					port_id=int(t[len(t)-1])
-					switch_id=int(t[len(t)-3])
-				else:
-					port_id=int(t[len(t)-1])
-
-	if (port_id==None):
-		fail_usage("Can't find port with name %s!"%(options["-n"]))
-
-def get_power_status(conn,options):
-	global port_id,switch_id,device
-
-	if (port_id==None):
-		apc_resolv_port_id(conn,options)
-
-	oid=((device.has_switches) and device.status_oid%(switch_id,port_id) or device.status_oid%(port_id))
-
-	(oid,status)=conn.get(oid)
-	return (status==str(device.state_on) and "on" or "off")
-
-def set_power_status(conn, options):
-	global port_id,switch_id,device
-
-	if (port_id==None):
-		apc_resolv_port_id(conn,options)
-
-	oid=((device.has_switches) and device.control_oid%(switch_id,port_id) or device.control_oid%(port_id))
-
-	conn.set(oid,(options["-o"]=="on" and device.turn_on or device.turn_off))
-
-
-def get_outlets_status(conn, options):
-	global device
-
-	result={}
-
-	if (device==None):
-		apc_set_device(conn,options)
-
-	res_ports=conn.walk(device.outlet_table_oid,30)
-
-	for x in res_ports:
-		t=x[0].split('.')
-
-		port_num=((device.has_switches) and "%s:%s"%(t[len(t)-3],t[len(t)-1]) or "%s"%(t[len(t)-1]))
-
-                port_name=x[1].strip('"')
-                port_status=""
-                result[port_num]=(port_name,port_status)
-
-        return result
-
-# Define new options
-def apc_snmp_define_defaults():
-	all_opt["snmp_version"]["default"]="1"
-	all_opt["community"]["default"]="private"
-
-# Main agent method
-def main():
-	device_opt = [ "help", "version", "agent", "quiet", "verbose", "debug",
-		       "action", "ipaddr", "login", "passwd", "passwd_script",
-		       "test", "port", "separator", "no_login", "no_password",
-		       "snmp_version", "community", "snmp_auth_prot", "snmp_sec_level",
-		       "snmp_priv_prot", "snmp_priv_passwd", "snmp_priv_passwd_script",
-		       "udpport","inet4_only","inet6_only",
-		       "power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	snmp_define_defaults ()
-	apc_snmp_define_defaults()
-
-	options=check_input(device_opt,process_input(device_opt))
-
-        ## Support for -n [switch]:[plug] notation that was used before
-	if ((options.has_key("-n")) and (-1 != options["-n"].find(":"))):
-		(switch, plug) = options["-n"].split(":", 1)
-		if ((switch.isdigit()) and (plug.isdigit())):
-		        options["-s"] = switch
-			options["-n"] = plug
-
-	if (not (options.has_key("-s"))):
-		options["-s"]="1"
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for APC over SNMP"
-	docs["longdesc"] = "fence_apc_snmp is an I/O Fencing agent \
-which can be used with the APC network power switch. It logs \
-into a device via SNMP and reboots a specified outlet. It supports \
-SNMP v1 and v3 with all combinations of  authenticity/privacy settings."
-	docs["vendorurl"] = "http://www.apc.com"
-	show_docs(options, docs)
-
-	# Operate the fencing device
-	result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
-
-	sys.exit(result)
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/apc_snmp/powernet369.mib b/fence/agents/apc_snmp/powernet369.mib
deleted file mode 100644
index ab948f8..0000000
--- a/fence/agents/apc_snmp/powernet369.mib
+++ /dev/null
@@ -1,31109 +0,0 @@
--- *************************************************************************
--- AMERICAN POWER CONVERSION PowerNet-MIB
--- *************************************************************************
--- Copyright (c) 2005 American Power Conversion, Inc.
--- PowerNet is a Trademark of American Power Conversion Corp.
---
--- Title: APC TOP LEVEL PowerNet MIB
---
--- Version : 3.6.9
---
--- Generated by script: tomib.awk
---
--- Input File: powernetPS.mib
---
--- Created: Wednesday, January, 26, 2005
---
--- Revision History:
--- *************************************************************************
-
---          - v3.2.0 Added functionality for MasterSwitch Plus
---          - v3.3.0 Added functionality for MX28B (dcDM3) and 3-phase UPS
---          - v3.3.2 New traps for Symmetra PX UPS
--- 07/15/01 - v3.4.0 Added transfer switch
---          - v3.4.3 Added functionality for External and Integrated Environmental Monitor
--- 06/14/02 - v3.4.4 Added dcmim2(Siemens) branch, Battery Manager(Reading) traps, and
---                         Psx Traps for PDU and RM-PDU and Netlock branch/traps
--- 06/18/02 - v3.5.0a Sync Control Group support
--- 08/06/02 - v3.5.0a Environmental Management System branch/traps
--- 09/16/02 - v3.5.0b Fixed some odds/ends ... going to RM-PDU for MS additions
--- 09/25/02 - v3.5.0c MS3 additions
--- 11/05/02 - v3.5.0e More Environmental Management System/A-Link devices(ARU)
--- 11/22/02 - v3.5.0g Added General APC device status OID
--- 11/27/02 - v3.5.0h Wrapped up MS3 ((Controlled or Metered) Rack PDU) changes
--- 12/26/02 - v3.5.1a Changed MS3 name again, Controlled to Switched Rack PDU
--- 01/07/03 - v3.6.0a Added OIDs/Traps for UPS Switchable Outlet Groups.
--- 01/09/03 -         Adding the General APC device discovery OIDs (hidden)
--- 01/28/03 - v3.6.0c Made some small trap pair fixes for Switched Rack PDU (MS3) 
--- 02/13/03 - v3.6.0d Mods from the review and some EMS fixes.
---                    Added OID for the new 20kVA Symmetra 3 Phase type.
---                    Added OIDs to upsAdvConfig for Symmetra type UPSs.
---                    Added upsDiagnostics branch OID for Symmetra module information.
--- 04/05/03 - v3.6.2  Added OID for the new Smart-UPS 7500 and 10000 types.
--- 06/04/03 - v3.6.3  Added OIDs/Traps for AirFM.
--- 06/24/03 - v3.6.4  Moved some AirFM temps and humidities from system level to module level.
--- 10/24/03 - v3.6.4a Added OIDs/Traps for xPDU.
--- 10/27/03 - v3.6.4f Added AirPA OIDs.
--- 11/03/03 - v3.6.4g Merge of 3.6.4e and 3.6.4f
--- 11/07/03 - v3.6.4h Additional review corrections
--- 12/01/03 - v3.6.5a Added group OIDs for Air FM.  Added C & F OIDs for Air PA setpoint.
--- 12/19/03 - v3.6.5b Review corrections.
--- 02/23/04 - v3.6.5c Added Modbus to experimental and multiple CB(bank) rPDU support
--- 05/05/04 - v3.6.6  Adding EMS status OID and trap for H/W issues, redefined duplicate 
---                     trap #228 (to ARU Device config change) and minor clean-up
--- 05/12/04 - v3.6.7a Added Air FM alarm status OIDs.
--- 06/03/04 - v3.6.7b Added UPS Config for Simple Signal Shutdowns and Number of External
---                    batteries.  Added Mute option to the UPS Config Audible Alarm.
--- 07/12/04 - v3.6.7d Removed Air FM alarm status OIDs due to delay in release.
--- 07/14/04 - v3.6.7d Added a detailed description to the UPSAdvConfigAlarm OID
--- 07/14/04 - v3.6.7e Added Custom Event traps
--- 08/04/04 - v3.6.7  Tag for final builds, see v3.6.7 beta build notes for changes
--- 08/26/04 - v3.6.8a Added new traps for UPS internal over temperature fault and cleared.
--- 09/01/04 - v3.6.8b Adding new thresholds for EMS probe config & status
--- 09/08/04 - v3.6.8c Corrections from MIB review.
--- 09/30/04 - v3.6.8d Added new traps for AIS ^F Message events.
--- 10/21/04 - v3.6.8e EMS.  Added missing traps and new Rate functionality.
--- 10/22/04 - v3.6.8f Added resetNetworkLeaveModeAndRestart option to the mcontrolRestartAgent OID.
--- 10/28/04 - v3.6.8g Updated EMS sections from mib committee review.
--- 11/22/04 - v3.6.8  Tag for final build.
--- 12/02/04 - v3.6.9a Added OIDs and traps for BMS-HVA.
--- 12/20/04 - v3.6.9c corrections to xPDU.
--- 12/20/04 - v3.6.9c added OIDs and traps for xATS.
--- 01/03/05 - v3.6.9d removed traps for xATS.
--- 01/03/05 - v3.6.9e correction to xATS entries, that removed underscores (mib browser incompatibility)
--- 01/07/05 - v3.6.9f
--- 01/14/05 - v3.6.9g add xPDU OIDs and traps and some corrections.
--- 01/14/05 - v3.6.9g modifications to xATS OIDs and traps.
-
--- *************************************************************************
--- *************************************************************************
--- PowerNet-MIB { iso org(3) dod(6) internet(1) private(4)
---    enterprises(1) apc(318) }
-
-PowerNet-MIB DEFINITIONS ::= BEGIN
-
-IMPORTS
-   enterprises, IpAddress, Gauge, TimeTicks             FROM RFC1155-SMI
-   DisplayString                                        FROM RFC1213-MIB
-   OBJECT-TYPE                                          FROM RFC-1212
-   TRAP-TYPE                                            FROM RFC-1215;
-
-apc                            OBJECT IDENTIFIER ::=  { enterprises 318 }
-
-products                       OBJECT IDENTIFIER ::=  { apc 1 }
-apcmgmt                        OBJECT IDENTIFIER ::=  { apc 2 }
-
-hardware                       OBJECT IDENTIFIER ::=  { products 1 }
-software                       OBJECT IDENTIFIER ::=  { products 2 }
-system                         OBJECT IDENTIFIER ::=  { products 3 }
-experimental                   OBJECT IDENTIFIER ::=  { products 4 }
-
-mconfig                        OBJECT IDENTIFIER ::=  { apcmgmt 1 }
-mcontrol                       OBJECT IDENTIFIER ::=  { apcmgmt 2 }
-mtrapargs                      OBJECT IDENTIFIER ::=  { apcmgmt 3 }
-mfiletransfer                  OBJECT IDENTIFIER ::=  { apcmgmt 4 }
-
-mconfigClock                   OBJECT IDENTIFIER ::=  { mconfig 6 }
-
-mfiletransferStatus            OBJECT IDENTIFIER ::=  { mfiletransfer 1 }
-mfiletransferConfig            OBJECT IDENTIFIER ::=  { mfiletransfer 2 }
-mfiletransferControl           OBJECT IDENTIFIER ::=  { mfiletransfer 3 }
-
-mfiletransferConfigSettings    OBJECT IDENTIFIER ::=  { mfiletransferConfig 1 }
-mfiletransferConfigTFTP        OBJECT IDENTIFIER ::=  { mfiletransferConfig 2 }
-mfiletransferConfigFTP         OBJECT IDENTIFIER ::=  { mfiletransferConfig 3 }
-
-ups                            OBJECT IDENTIFIER ::=  { hardware 1 }
-measureUps                     OBJECT IDENTIFIER ::=  { hardware 2 }
-miniSNMPadapter                OBJECT IDENTIFIER ::=  { hardware 3 }
-masterswitch                   OBJECT IDENTIFIER ::=  { hardware 4 }
-masterswitchVM                 OBJECT IDENTIFIER ::=  { hardware 5 }
-masterswitchMSP                OBJECT IDENTIFIER ::=  { hardware 6 }
-dcDM3                          OBJECT IDENTIFIER ::=  { hardware 7 }
-automaticTransferSwitch        OBJECT IDENTIFIER ::=  { hardware 8 }
-dc2                            OBJECT IDENTIFIER ::=  { hardware 9 }
-environmentalMonitor           OBJECT IDENTIFIER ::=  { hardware 10 }
-netlock                        OBJECT IDENTIFIER ::=  { hardware 11 }
-rPDU                           OBJECT IDENTIFIER ::=  { hardware 12 }
-airConditioners                OBJECT IDENTIFIER ::=  { hardware 13 }
-rARU                           OBJECT IDENTIFIER ::=  { hardware 14 }
-xPDU                           OBJECT IDENTIFIER ::=  { hardware 15 }
-battMan                        OBJECT IDENTIFIER ::=  { hardware 16 }
-xATS                           OBJECT IDENTIFIER ::=  { hardware 17 }
-generator                      OBJECT IDENTIFIER ::=  { hardware 18 }
-
-powerNetSubAgent               OBJECT IDENTIFIER ::=  { software 1 }
-
-powerNetSoftwareSystem         OBJECT IDENTIFIER ::=  { powerNetSubAgent 1 }
-powerNetSoftwareConfig         OBJECT IDENTIFIER ::=  { powerNetSubAgent 2 }
-
-backUPS                        OBJECT IDENTIFIER ::=  { system  1 }
-smartUPS                       OBJECT IDENTIFIER ::=  { system  2 }
-matrixUPS                      OBJECT IDENTIFIER ::=  { system  3 }
-masterSwitch                   OBJECT IDENTIFIER ::=  { system  4 }
-symmetraUPS                    OBJECT IDENTIFIER ::=  { system  5 }
-dp100E                         OBJECT IDENTIFIER ::=  { system  6 }
-dp300E                         OBJECT IDENTIFIER ::=  { system  7 }
-monitors                       OBJECT IDENTIFIER ::=  { system  8 }
-redundantSwitch                OBJECT IDENTIFIER ::=  { system  9 }
-dcPower                        OBJECT IDENTIFIER ::=  { system  10 }
-automaticXferSwitch            OBJECT IDENTIFIER ::=  { system  11 }
-netLock                        OBJECT IDENTIFIER ::=  { system  12 }
-symmetra3PhaseUPS              OBJECT IDENTIFIER ::=  { system  13 }
-networkAir                     OBJECT IDENTIFIER ::=  { system  14 }
-infraXurePDU                   OBJECT IDENTIFIER ::=  { system  15 }
-ais5000UPS                     OBJECT IDENTIFIER ::=  { system  16 }
-smartUPS3Phase                 OBJECT IDENTIFIER ::=  { system  17 }
-battManager                    OBJECT IDENTIFIER ::=  { system  18 }
-infraXureATS                   OBJECT IDENTIFIER ::=  { system  19 }
-
-battManIdent                   OBJECT IDENTIFIER ::=  { battMan 1 }
-battManSystemCalib             OBJECT IDENTIFIER ::=  { battMan 2 }
-battManUnitCalib               OBJECT IDENTIFIER ::=  { battMan 3 }
-battManStringCalib             OBJECT IDENTIFIER ::=  { battMan 4 }
-battManBatteryCalib            OBJECT IDENTIFIER ::=  { battMan 5 }
-battManConfig                  OBJECT IDENTIFIER ::=  { battMan 6 }
-battManAlarm                   OBJECT IDENTIFIER ::=  { battMan 7 }
-battManSystemStatus            OBJECT IDENTIFIER ::=  { battMan 8 }
-battManStringStatus            OBJECT IDENTIFIER ::=  { battMan 9 }
-battManBatteryStatus           OBJECT IDENTIFIER ::=  { battMan 10 }
-battManInputContactStatus      OBJECT IDENTIFIER ::=  { battMan 11 }
-battManControl                 OBJECT IDENTIFIER ::=  { battMan 12 }
-battManTestResults             OBJECT IDENTIFIER ::=  { battMan 13 }
-
-xPDUIdent                      OBJECT IDENTIFIER ::=  { xPDU 1 }
-xPDUDevice                     OBJECT IDENTIFIER ::=  { xPDU 2 }
-xPDUACMonitoringPoint          OBJECT IDENTIFIER ::=  { xPDU 3 }
-xPDUCircuitBreakers            OBJECT IDENTIFIER ::=  { xPDU 4 }
-xPDUInputContacts              OBJECT IDENTIFIER ::=  { xPDU 5 }
-xPDUOutputRelays               OBJECT IDENTIFIER ::=  { xPDU 6 }
-xPDUMiscGroup                  OBJECT IDENTIFIER ::=  { xPDU 7 }
-
-xPDUMainInput                  OBJECT IDENTIFIER ::=  { xPDUACMonitoringPoint 1 }
-xPDUBypassInput                OBJECT IDENTIFIER ::=  { xPDUACMonitoringPoint 2 }
-xPDUUPSInput                   OBJECT IDENTIFIER ::=  { xPDUACMonitoringPoint 3 }
-xPDUSystemOutput               OBJECT IDENTIFIER ::=  { xPDUACMonitoringPoint 4 }
-xPDUGroundMonitorPoint         OBJECT IDENTIFIER ::=  { xPDUACMonitoringPoint 5 }
-
-xPDUSystemBreakers             OBJECT IDENTIFIER ::=  { xPDUCircuitBreakers 1 }
-xPDUBranchBreakers             OBJECT IDENTIFIER ::=  { xPDUCircuitBreakers 2 }
-
-xATSIdent                      OBJECT IDENTIFIER ::=  { xATS 1 }
-xATSDevice                     OBJECT IDENTIFIER ::=  { xATS 2 }
-xATSSwitch                     OBJECT IDENTIFIER ::=  { xATS 3 }
-xATSACMonitoringPoint          OBJECT IDENTIFIER ::=  { xATS 4 }
-xATSTesting                    OBJECT IDENTIFIER ::=  { xATS 5 }
-xATSInputContacts              OBJECT IDENTIFIER ::=  { xATS 6 }
-xATSOutputRelays               OBJECT IDENTIFIER ::=  { xATS 7 }
-xATSMisc                       OBJECT IDENTIFIER ::=  { xATS 8 }
-
-xATSSwitchStatus               OBJECT IDENTIFIER ::=  { xATSSwitch 1 }
-xATSSwitchSettings             OBJECT IDENTIFIER ::=  { xATSSwitch 2 }
-xATSSwitchTimers               OBJECT IDENTIFIER ::=  { xATSSwitch 3 }
-xATSSwitchBlockMap             OBJECT IDENTIFIER ::=  { xATSSwitch 4 }
-xATSSwitchStatistics           OBJECT IDENTIFIER ::=  { xATSSwitch 5 }
-
-xATSSource1                    OBJECT IDENTIFIER ::=  { xATSACMonitoringPoint 1 }
-xATSSource2                    OBJECT IDENTIFIER ::=  { xATSACMonitoringPoint 2 }
-xATSSystemOutput               OBJECT IDENTIFIER ::=  { xATSACMonitoringPoint 3 }
-
-xATSTestingStatus              OBJECT IDENTIFIER ::=  { xATSTesting 1 }
-xATSTestingResults             OBJECT IDENTIFIER ::=  { xATSTesting 2 }
-xATSTestingSchedule            OBJECT IDENTIFIER ::=  { xATSTesting 3 }
-xATSTestingSimulatePowerFail   OBJECT IDENTIFIER ::=  { xATSTesting 4 }
-
-xATSGenerator                  OBJECT IDENTIFIER ::=  { generator 1 }
-
-xATSGeneratorIdent             OBJECT IDENTIFIER ::=  { xATSGenerator 1 }
-xATSGeneratorStatus            OBJECT IDENTIFIER ::=  { xATSGenerator 2 }
-xATSGeneratorAdvStatus         OBJECT IDENTIFIER ::=  { xATSGenerator 3 }
-xATSGeneratorOutput            OBJECT IDENTIFIER ::=  { xATSGenerator 4 }
-xATSGeneratorSettings          OBJECT IDENTIFIER ::=  { xATSGenerator 5 }
-xATSGeneratorService           OBJECT IDENTIFIER ::=  { xATSGenerator 6 }
-xATSGeneratorFuelSystem        OBJECT IDENTIFIER ::=  { xATSGenerator 7 }
-
-
-smartUPS250                    OBJECT IDENTIFIER ::=  { smartUPS  1 }
-smartUPS400                    OBJECT IDENTIFIER ::=  { smartUPS  2 }
-smartUPS600                    OBJECT IDENTIFIER ::=  { smartUPS  3 }
-smartUPS900                    OBJECT IDENTIFIER ::=  { smartUPS  4 }
-smartUPS1250                   OBJECT IDENTIFIER ::=  { smartUPS  5 }
-smartUPS2000                   OBJECT IDENTIFIER ::=  { smartUPS  6 }
-
-smartUPS450                    OBJECT IDENTIFIER ::=  { smartUPS  7 }
-smartUPS700                    OBJECT IDENTIFIER ::=  { smartUPS  8 }
-smartUPS1000                   OBJECT IDENTIFIER ::=  { smartUPS  9 }
-smartUPS1400                   OBJECT IDENTIFIER ::=  { smartUPS  10 }
-smartUPS2200                   OBJECT IDENTIFIER ::=  { smartUPS  11 }
-smartUPS3000                   OBJECT IDENTIFIER ::=  { smartUPS  12 }
-smartUPS5000                   OBJECT IDENTIFIER ::=  { smartUPS  13 }
-smartUPS7500                   OBJECT IDENTIFIER ::=  { smartUPS  14 }
-smartUPS10000                  OBJECT IDENTIFIER ::=  { smartUPS  15 }
-smartUPS1500                   OBJECT IDENTIFIER ::=  { smartUPS  16 }
-
-matrixUPS3000                  OBJECT IDENTIFIER ::=  { matrixUPS 1 }
-matrixUPS5000                  OBJECT IDENTIFIER ::=  { matrixUPS 2 }
-
-masterSwitchV1                 OBJECT IDENTIFIER ::=  { masterSwitch 1}
-masterSwitchV2                 OBJECT IDENTIFIER ::=  { masterSwitch 2}
-masterSwitchVM                 OBJECT IDENTIFIER ::=  { masterSwitch 3}
-masterSwitchMSP                OBJECT IDENTIFIER ::=  { masterSwitch 4}
-masterSwitchrPDU               OBJECT IDENTIFIER ::=  { masterSwitch 5}
-
-symmetraUPS4kVA                OBJECT IDENTIFIER ::=  { symmetraUPS 1 }
-symmetraUPS8kVA                OBJECT IDENTIFIER ::=  { symmetraUPS 2 }
-symmetraUPS12kVA               OBJECT IDENTIFIER ::=  { symmetraUPS 3 }
-symmetraUPS16kVA               OBJECT IDENTIFIER ::=  { symmetraUPS 4 }
-
-environmental                  OBJECT IDENTIFIER ::=  { monitors  1 }
-environmentalMgtSystem         OBJECT IDENTIFIER ::=  { monitors  2 }
-emu2                           OBJECT IDENTIFIER ::=  { monitors  3 }
-
-dm3                            OBJECT IDENTIFIER ::=  { dcPower  1 }
-dcmim2                         OBJECT IDENTIFIER ::=  { dcPower  2 }
-
-symmetra3PhaseUPS40kVA         OBJECT IDENTIFIER ::=  { symmetra3PhaseUPS 1 }
-symmetra3PhaseUPS60kVA         OBJECT IDENTIFIER ::=  { symmetra3PhaseUPS 2 }
-symmetra3PhaseUPS80kVA         OBJECT IDENTIFIER ::=  { symmetra3PhaseUPS 3 }
-symmetra3PhaseUPS20kVA         OBJECT IDENTIFIER ::=  { symmetra3PhaseUPS 4 }
-
-airFMSeries                    OBJECT IDENTIFIER ::=  { networkAir 1 }
-rackAirRemovalUnit             OBJECT IDENTIFIER ::=  { networkAir 2 }
-airPASeries                    OBJECT IDENTIFIER ::=  { networkAir 3 }  
-
-ais5000UPS10kVA                OBJECT IDENTIFIER ::=  { ais5000UPS  1 }
-ais5000UPS20kVA                OBJECT IDENTIFIER ::=  { ais5000UPS  2 }
-ais5000UPS30kVA                OBJECT IDENTIFIER ::=  { ais5000UPS  3 }
-ais5000UPS40kVA                OBJECT IDENTIFIER ::=  { ais5000UPS  4 }
-ais5000UPS60kVA                OBJECT IDENTIFIER ::=  { ais5000UPS  5 }
-ais5000UPS80kVA                OBJECT IDENTIFIER ::=  { ais5000UPS  6 }
-ais5000UPS100kVA               OBJECT IDENTIFIER ::=  { ais5000UPS  7 }
-
-smartUPS3Phase10kVA            OBJECT IDENTIFIER ::=  { smartUPS3Phase  1 }
-smartUPS3Phase15kVA            OBJECT IDENTIFIER ::=  { smartUPS3Phase  2 }
-smartUPS3Phase20kVA            OBJECT IDENTIFIER ::=  { smartUPS3Phase  3 }
-smartUPS3Phase30kVA            OBJECT IDENTIFIER ::=  { smartUPS3Phase  4 }
-smartUPS3Phase40kVA            OBJECT IDENTIFIER ::=  { smartUPS3Phase  5 }
-
-upsIdent                       OBJECT IDENTIFIER ::=  { ups 1 }
-upsBattery                     OBJECT IDENTIFIER ::=  { ups 2 }
-upsInput                       OBJECT IDENTIFIER ::=  { ups 3 }
-upsOutput                      OBJECT IDENTIFIER ::=  { ups 4 }
-upsConfig                      OBJECT IDENTIFIER ::=  { ups 5 }
-upsControl                     OBJECT IDENTIFIER ::=  { ups 6 }
-upsTest                        OBJECT IDENTIFIER ::=  { ups 7 }
-upsComm                        OBJECT IDENTIFIER ::=  { ups 8 }
-upsPhase                       OBJECT IDENTIFIER ::=  { ups 9 }
-upsSyncCtrlGroup               OBJECT IDENTIFIER ::=  { ups 10 }
-upsState                       OBJECT IDENTIFIER ::=  { ups 11 }
-upsOutletGroups                OBJECT IDENTIFIER ::=  { ups 12 }
-upsDiagnostics                 OBJECT IDENTIFIER ::=  { ups 13 }
-
-upsBasicIdent                  OBJECT IDENTIFIER ::=  { upsIdent 1 }
-upsAdvIdent                    OBJECT IDENTIFIER ::=  { upsIdent 2 }
-
-upsBasicBattery                OBJECT IDENTIFIER ::=  { upsBattery 1 }
-upsAdvBattery                  OBJECT IDENTIFIER ::=  { upsBattery 2 }
-
-upsBasicInput                  OBJECT IDENTIFIER ::=  { upsInput 1 }
-upsAdvInput                    OBJECT IDENTIFIER ::=  { upsInput 2 }
-
-upsBasicOutput                 OBJECT IDENTIFIER ::=  { upsOutput 1 }
-upsAdvOutput                   OBJECT IDENTIFIER ::=  { upsOutput 2 }
-
-upsBasicConfig                 OBJECT IDENTIFIER ::=  { upsConfig 1 }
-upsAdvConfig                   OBJECT IDENTIFIER ::=  { upsConfig 2 }
-
-upsBasicControl                OBJECT IDENTIFIER ::=  { upsControl 1 }
-upsAdvControl                  OBJECT IDENTIFIER ::=  { upsControl 2 }
-
-upsBasicTest                   OBJECT IDENTIFIER ::=  { upsTest 1 }
-upsAdvTest                     OBJECT IDENTIFIER ::=  { upsTest 2 }
-
-upsPhaseResetValues            OBJECT IDENTIFIER ::=  { upsPhase 1 }
-upsPhaseInput                  OBJECT IDENTIFIER ::=  { upsPhase 2 }
-upsPhaseOutput                 OBJECT IDENTIFIER ::=  { upsPhase 3 }
-
-upsSyncCtrlGroupConfig         OBJECT IDENTIFIER ::=  { upsSyncCtrlGroup 1 }
-upsSyncCtrlGroupStatus         OBJECT IDENTIFIER ::=  { upsSyncCtrlGroup 2 }
-
-upsBasicState                  OBJECT IDENTIFIER ::=  { upsState 1 }
-upsAdvState                    OBJECT IDENTIFIER ::=  { upsState 2 }
-
-upsOutletGroupStatus           OBJECT IDENTIFIER ::=  { upsOutletGroups 1 }
-upsOutletGroupConfig           OBJECT IDENTIFIER ::=  { upsOutletGroups 2 }
-upsOutletGroupControl          OBJECT IDENTIFIER ::=  { upsOutletGroups 3 }
-
-upsDiagnosticIM                OBJECT IDENTIFIER ::=  { upsDiagnostics 1 }
-upsDiagnosticPowerModules      OBJECT IDENTIFIER ::=  { upsDiagnostics 2 }
-upsDiagnosticBatteries         OBJECT IDENTIFIER ::=  { upsDiagnostics 3 }
-upsDiagnosticSubsystem         OBJECT IDENTIFIER ::=  { upsDiagnostics 4 }
-upsDiagnosticExternalDevices   OBJECT IDENTIFIER ::=  { upsDiagnostics 5 }
-upsDiagnosticComBus            OBJECT IDENTIFIER ::=  { upsDiagnostics 6 }
-
-upsDiagSwitchGear              OBJECT IDENTIFIER ::=  { upsDiagnosticExternalDevices 1 }
-upsDiagMCCBBox                 OBJECT IDENTIFIER ::=  { upsDiagnosticExternalDevices 2 }
-upsDiagTransformer             OBJECT IDENTIFIER ::=  { upsDiagnosticExternalDevices 3 }
-
-mUpsEnviron                    OBJECT IDENTIFIER ::=  { measureUps 1 }
-mUpsContact                    OBJECT IDENTIFIER ::=  { measureUps 2 }
-
-serialPort                     OBJECT IDENTIFIER ::=  { miniSNMPadapter 1}
-
-serialPort1                    OBJECT IDENTIFIER ::=  { serialPort 1}
-serialPort2                    OBJECT IDENTIFIER ::=  { serialPort 2}
-
-serialPort2Config              OBJECT IDENTIFIER ::=  { serialPort2 1}
-serialPort2Control             OBJECT IDENTIFIER ::=  { serialPort2 2}
-
-sPDUIdent                      OBJECT IDENTIFIER ::=  { masterswitch 1 }
-sPDUMasterControl              OBJECT IDENTIFIER ::=  { masterswitch 2 }    
-sPDUMasterConfig               OBJECT IDENTIFIER ::=  { masterswitch 3 }
-sPDUOutletControl              OBJECT IDENTIFIER ::=  { masterswitch 4 }
-sPDUOutletConfig               OBJECT IDENTIFIER ::=  { masterswitch 5 }
-
-sPDUIdentVM                    OBJECT IDENTIFIER ::=  { masterswitchVM 1 }
-sPDUMasterControlVM            OBJECT IDENTIFIER ::=  { masterswitchVM 2 }    
-sPDUMasterConfigVM             OBJECT IDENTIFIER ::=  { masterswitchVM 3 }
-sPDUMasterStatusVM             OBJECT IDENTIFIER ::=  { masterswitchVM 4 }
-sPDUOutletControlVM            OBJECT IDENTIFIER ::=  { masterswitchVM 5 }
-sPDUOutletConfigVM             OBJECT IDENTIFIER ::=  { masterswitchVM 6 }
-sPDUOutletStatusVM             OBJECT IDENTIFIER ::=  { masterswitchVM 7 }
-
-sPDUIdentMSP                   OBJECT IDENTIFIER ::=  { masterswitchMSP 1 }
-sPDUMasterControlMSP           OBJECT IDENTIFIER ::=  { masterswitchMSP 2 }    
-sPDUMasterConfigMSP            OBJECT IDENTIFIER ::=  { masterswitchMSP 3 }
-sPDUMasterStatusMSP            OBJECT IDENTIFIER ::=  { masterswitchMSP 4 }
-sPDUOutletControlMSP           OBJECT IDENTIFIER ::=  { masterswitchMSP 5 }
-sPDUOutletConfigMSP            OBJECT IDENTIFIER ::=  { masterswitchMSP 6 }
-sPDUOutletStatusMSP            OBJECT IDENTIFIER ::=  { masterswitchMSP 7 }
-
-sPDUOutletConfigMSPall         OBJECT IDENTIFIER ::=  { sPDUOutletConfigMSP 1 }
-sPDUOutletConfigMSPgs          OBJECT IDENTIFIER ::=  { sPDUOutletConfigMSP 2 }
-sPDUOutletConfigMSPannun       OBJECT IDENTIFIER ::=  { sPDUOutletConfigMSP 3 }
-sPDUOutletConfigMSPmups        OBJECT IDENTIFIER ::=  { sPDUOutletConfigMSP 4 }
-
-rPDUIdent                      OBJECT IDENTIFIER ::=  { rPDU 1 }
-rPDULoad                       OBJECT IDENTIFIER ::=  { rPDU 2 }    
-rPDUOutlet                     OBJECT IDENTIFIER ::=  { rPDU 3 }
-rPDUPowerSupply                OBJECT IDENTIFIER ::=  { rPDU 4 }
-
-rPDULoadDevice                 OBJECT IDENTIFIER ::=  { rPDULoad 1 }
-rPDULoadPhaseConfig            OBJECT IDENTIFIER ::=  { rPDULoad 2 }    
-rPDULoadStatus                 OBJECT IDENTIFIER ::=  { rPDULoad 3 }
-rPDULoadBankConfig             OBJECT IDENTIFIER ::=  { rPDULoad 4 }    
-
-rPDUOutletDevice               OBJECT IDENTIFIER ::=  { rPDUOutlet 1 }
-rPDUOutletPhase                OBJECT IDENTIFIER ::=  { rPDUOutlet 2 }
-rPDUOutletControl              OBJECT IDENTIFIER ::=  { rPDUOutlet 3 }
-rPDUOutletConfig               OBJECT IDENTIFIER ::=  { rPDUOutlet 4 }    
-rPDUOutletStatus               OBJECT IDENTIFIER ::=  { rPDUOutlet 5 }
-rPDUOutletBank                 OBJECT IDENTIFIER ::=  { rPDUOutlet 6 }
-
-rPDUPowerSupplyDevice          OBJECT IDENTIFIER ::=  { rPDUPowerSupply 1 }
-
-dm3Ident                       OBJECT IDENTIFIER ::=  { dcDM3 1 }
-dm3Config                      OBJECT IDENTIFIER ::=  { dcDM3 2 }
-dm3Status                      OBJECT IDENTIFIER ::=  { dcDM3 3 }
-
-dm3IdentSystem                 OBJECT IDENTIFIER ::=  { dm3Ident 1}
-
-dm3ConfigSystem                OBJECT IDENTIFIER ::=  { dm3Config 1 }
-dm3ConfigLVD                   OBJECT IDENTIFIER ::=  { dm3Config 2 }
-dm3ConfigBattery               OBJECT IDENTIFIER ::=  { dm3Config 3 }
-dm3ConfigPowerModules          OBJECT IDENTIFIER ::=  { dm3Config 4 }
-dm3ConfigRelays                OBJECT IDENTIFIER ::=  { dm3Config 5 }
-dm3ConfigDistribution          OBJECT IDENTIFIER ::=  { dm3Config 6 }
-
-dm3ConfigRectifier             OBJECT IDENTIFIER ::=  { dm3ConfigPowerModules 1 }
-dm3ConfigConverter             OBJECT IDENTIFIER ::=  { dm3ConfigPowerModules 2 }
-
-dm3ConfigRectThresh            OBJECT IDENTIFIER ::=  { dm3ConfigRectifier 1 }
-dm3ConfigRectAlarms            OBJECT IDENTIFIER ::=  { dm3ConfigRectifier 2 }
-
-dm3ConfigConvThresh            OBJECT IDENTIFIER ::=  { dm3ConfigConverter 1 }
-dm3ConfigConvAlarms            OBJECT IDENTIFIER ::=  { dm3ConfigConverter 2 }
-
-dm3ConfigOutputRelays          OBJECT IDENTIFIER ::=  { dm3ConfigRelays 1 }
-dm3ConfigInputRelays           OBJECT IDENTIFIER ::=  { dm3ConfigRelays 2 }
-
-dm3ConfigBreakers              OBJECT IDENTIFIER ::=  { dm3ConfigDistribution 1 }
-dm3ConfigFuses                 OBJECT IDENTIFIER ::=  { dm3ConfigDistribution 2 }
-
-dm3StatusSystem                OBJECT IDENTIFIER ::=  { dm3Status 1 }
-dm3StatusAlarms                OBJECT IDENTIFIER ::=  { dm3Status 2 }
-dm3StatusBattery               OBJECT IDENTIFIER ::=  { dm3Status 3 }
-dm3StatusOEM                   OBJECT IDENTIFIER ::=  { dm3Status 4 }
-dm3StatusLVD                   OBJECT IDENTIFIER ::=  { dm3Status 5 }
-dm3StatusPowerModules          OBJECT IDENTIFIER ::=  { dm3Status 6 }
-dm3StatusRelays                OBJECT IDENTIFIER ::=  { dm3Status 7 }
-dm3StatusDistribution          OBJECT IDENTIFIER ::=  { dm3Status 8 }
-
-dm3StatusRectifier             OBJECT IDENTIFIER ::=  { dm3StatusPowerModules 1 }
-dm3StatusConverter             OBJECT IDENTIFIER ::=  { dm3StatusPowerModules 2 }
-
-dm3StatusOutputRelays          OBJECT IDENTIFIER ::=  { dm3StatusRelays 1 }
-dm3StatusInputRelays           OBJECT IDENTIFIER ::=  { dm3StatusRelays 2 }
-
-dm3StatusBreakers              OBJECT IDENTIFIER ::=  { dm3StatusDistribution 1 }
-dm3StatusFuses                 OBJECT IDENTIFIER ::=  { dm3StatusDistribution 2 }
-
-atsIdent                       OBJECT IDENTIFIER ::=  { automaticTransferSwitch 1 }
-atsCalibration                 OBJECT IDENTIFIER ::=  { automaticTransferSwitch 2 } 
-atsControl                     OBJECT IDENTIFIER ::=  { automaticTransferSwitch 3 }    
-atsConfig                      OBJECT IDENTIFIER ::=  { automaticTransferSwitch 4 }
-atsStatus                      OBJECT IDENTIFIER ::=  { automaticTransferSwitch 5 }
-
-atsCalibrationInput            OBJECT IDENTIFIER ::=  { atsCalibration 1 }
-atsCalibrationPowerSupply      OBJECT IDENTIFIER ::=  { atsCalibration 2 }
-atsCalibrationOutput           OBJECT IDENTIFIER ::=  { atsCalibration 3 }
-
-atsStatusDeviceStatus          OBJECT IDENTIFIER ::=  { atsStatus 1 }
-atsStatusResetValues           OBJECT IDENTIFIER ::=  { atsStatus 2 }
-atsStatusInput                 OBJECT IDENTIFIER ::=  { atsStatus 3 }
-atsStatusOutput                OBJECT IDENTIFIER ::=  { atsStatus 4 }
-
-dcmim2Ident                    OBJECT IDENTIFIER ::=  { dc2 1 }
-dcmim2Control                  OBJECT IDENTIFIER ::=  { dc2 2 }
-dcmim2Config                   OBJECT IDENTIFIER ::=  { dc2 3 }
-dcmim2Status                   OBJECT IDENTIFIER ::=  { dc2 4 }
-
-dcmim2IdentSystem              OBJECT IDENTIFIER ::=  { dcmim2Ident 1 }
-
-dcmim2ControlSystem            OBJECT IDENTIFIER ::=  { dcmim2Control 1 }
-
-dcmim2ConfigSystem             OBJECT IDENTIFIER ::=  { dcmim2Config 1 }
-dcmim2ConfigBattery            OBJECT IDENTIFIER ::=  { dcmim2Config 2 }
-dcmim2ConfigLVD                OBJECT IDENTIFIER ::=  { dcmim2Config 3 }
-
-dcmim2StatusSystem             OBJECT IDENTIFIER ::=  { dcmim2Status 1 }
-dcmim2StatusRectifier          OBJECT IDENTIFIER ::=  { dcmim2Status 2 }
-dcmim2StatusBattery            OBJECT IDENTIFIER ::=  { dcmim2Status 3 }
-dcmim2StatusLVD                OBJECT IDENTIFIER ::=  { dcmim2Status 4 }
-dcmim2StatusAlarms             OBJECT IDENTIFIER ::=  { dcmim2Status 5 }
-
-external                       OBJECT IDENTIFIER ::=  { environmentalMonitor 1 }
-integrated                     OBJECT IDENTIFIER ::=  { environmentalMonitor 2 }
-envMgtSystem                   OBJECT IDENTIFIER ::=  { environmentalMonitor 3 }
-
-emIdent                        OBJECT IDENTIFIER ::=  { external 1 }
-emConfig                       OBJECT IDENTIFIER ::=  { external 2 }
-emStatus                       OBJECT IDENTIFIER ::=  { external 3 }
-
-iemIdent                       OBJECT IDENTIFIER ::=  { integrated 1 }
-iemConfig                      OBJECT IDENTIFIER ::=  { integrated 2 }
-iemStatus                      OBJECT IDENTIFIER ::=  { integrated 3 }
-
-emsIdent                        OBJECT IDENTIFIER ::=  { envMgtSystem 1 }
-
-emsOutputRelayControl           OBJECT IDENTIFIER ::=  { envMgtSystem 2 }
-emsOutletControl                OBJECT IDENTIFIER ::=  { envMgtSystem 3 }
-emsSensorControl                OBJECT IDENTIFIER ::=  { envMgtSystem 4 }
-emsAlarmDeviceControl           OBJECT IDENTIFIER ::=  { envMgtSystem 5 }
-
-emsConfig                       OBJECT IDENTIFIER ::=  { envMgtSystem 6 }
-emsProbeConfig                  OBJECT IDENTIFIER ::=  { envMgtSystem 7 }
-emsInputContactConfig           OBJECT IDENTIFIER ::=  { envMgtSystem 8 }
-emsOutputRelayConfig            OBJECT IDENTIFIER ::=  { envMgtSystem 9 }
-emsOutletConfig                 OBJECT IDENTIFIER ::=  { envMgtSystem 10 }
-emsSensorConfig                 OBJECT IDENTIFIER ::=  { envMgtSystem 11 }
-
-emsStatus                       OBJECT IDENTIFIER ::=  { envMgtSystem 12 }
-emsProbeStatus                  OBJECT IDENTIFIER ::=  { envMgtSystem 13 }
-emsInputContactStatus           OBJECT IDENTIFIER ::=  { envMgtSystem 14 }
-emsOutputRelayStatus            OBJECT IDENTIFIER ::=  { envMgtSystem 15 }
-emsOutletStatus                 OBJECT IDENTIFIER ::=  { envMgtSystem 16 }
-emsAlarmDeviceStatus            OBJECT IDENTIFIER ::=  { envMgtSystem 17 }
-emsSensorStatus                 OBJECT IDENTIFIER ::=  { envMgtSystem 18 }
-
-nlIdent                        OBJECT IDENTIFIER ::=  { netlock 1 }
-nlStatus                       OBJECT IDENTIFIER ::=  { netlock 2 }
-
-airFM                           OBJECT IDENTIFIER ::=  { airConditioners 1 }
-airFMIdent                      OBJECT IDENTIFIER ::=  { airFM 1 }
-airFMStatus                     OBJECT IDENTIFIER ::=  { airFM 2 }
-airFMGroup                      OBJECT IDENTIFIER ::=  { airFM 3 }
-
-airPA                           OBJECT IDENTIFIER ::= { airConditioners 2 }
-airPAIdent                      OBJECT IDENTIFIER ::= { airPA 1 }
-airPAStatus                     OBJECT IDENTIFIER ::= { airPA 2 }
-
-rARUIdent                      OBJECT IDENTIFIER ::=  { rARU 1 }
-rARUConfig                     OBJECT IDENTIFIER ::=  { rARU 2 }
-rARUStatus                     OBJECT IDENTIFIER ::=  { rARU 3 }
-
-
--- object types
-
--- the products group
--- the experimental group
-
-
-
--- the apcmgmt group
--- the mconfig group
-
-mconfigNumTrapReceivers OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of managers to send traps to."
-   ::= { mconfig 1 }
-
-mconfigTrapReceiverTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MconfigTrapReceiverEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of managers to send traps to.  The number of
-       entries is given by the value of mconfigNumTrapReceivers.
-      Maximum number of Trap Receivers is four."
-   ::= { mconfig 2 }
-
-mconfigTrapReceiverEntry OBJECT-TYPE
-   SYNTAX MconfigTrapReceiverEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The managers to send traps to."
-   INDEX  { trapIndex}
-   ::= { mconfigTrapReceiverTable 1 }
-
-MconfigTrapReceiverEntry ::=
-   SEQUENCE {
-      trapIndex
-         INTEGER,
-      receiverAddr
-         IpAddress,
-      communityString
-          DisplayString,
-      severity
-         INTEGER,
-      acceptThisReceiver
-         INTEGER, 
-      receiveTrapType
-         INTEGER
-   }
-
-trapIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to a trap receiver entry."
-   ::= { mconfigTrapReceiverEntry 1 }
-
-receiverAddr OBJECT-TYPE
-   SYNTAX IpAddress
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The IP address of the manager to send a trap to."
-   ::= { mconfigTrapReceiverEntry 2 }
-
-communityString OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The community name to use in the trap when
-       sent to the manager."
-   ::= { mconfigTrapReceiverEntry 3 }
-
-severity OBJECT-TYPE
-   SYNTAX INTEGER {
-      information(1),
-      warning(2),
-      severe(3)
-   }
-   ACCESS read-only
-   STATUS obsolete
-   DESCRIPTION
-      "The severity threshold of traps to send to the manager.
-       traps are labeled in severity as informational(1), warning(2),
-       severe(3).  Only traps of equal or greater severity than
-       this value are sent to the manager."
-   ::= { mconfigTrapReceiverEntry 4 }
-
-acceptThisReceiver OBJECT-TYPE
-   SYNTAX INTEGER   {
-      yes (1),
-      no  (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "An entry will become active if yes, and will
-       be deleted if no."
-   ::= { mconfigTrapReceiverEntry 5 }
-
-
-receiveTrapType OBJECT-TYPE
-   SYNTAX INTEGER   {
-      powernet (1),
-      ietf     (2),
-      both     (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The node in this entry will receive traps defined in APC
-       PowerNet MIB, if this OID is set to yes."
-   ::= { mconfigTrapReceiverEntry 6 }
-
-mconfigBOOTPEnabled OBJECT-TYPE
-   SYNTAX INTEGER {
-      yes (1),
-      no  (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The value of yes(1) indicates the PowerNet Adapter is configured to
-       obtain its IP configuration parameters from a BOOTP server.
-       
-       The value of no(2) indicates adapter will assume IP configuration parameters 
-       values saved in adapter's eeprom, which was originally configured at local
-       console."
-   ::= { mconfig 3 }
-
-mconfigTFTPServerIP OBJECT-TYPE
-   SYNTAX IpAddress
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The IP address of TFTP server. If mconfigBOOTPEnabled is yes(1), then this IP address
-       is provided by BOOTP server and not allowed to be modified; otherwise, this IP address
-       can be modified.
-       
-       Before using TFTP to load new code image, the image file should be placed in proper
-       directory of the specified TFTP server. This OID is only supported by AP9605, AP9205, 
-       and AP9603 PowerNet SNMP Adapters."
-   ::= { mconfig 4 }
-
-newCodeAuthentViaTFTP OBJECT-TYPE
-   SYNTAX INTEGER {
-      unknown                (1),
-      validNewAgentCodeImage (2),
-      sameAgentCodeImage     (3),
-      invalidAgentCodeImage  (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Once mcontrolRestartAgent is set to loadAndExecuteNewAgent (3), PowerNet adapter will
-       start to load the remote image file, for authentication only, instead of saving the code 
-       into flash memory. Only if a validNewAgentCodeImage (1) is found will the agent reboot
-       the PowerNet adapter and invoke the loader to load and save new code into the flash memory. 
-       Otherwise, the current agent code will continue to run.
-       
-       This OID shows the result of the above authentication process.  
-                validNewAgentCodeImage (1) means the code image on TFTP server 
-                is a valid APC agent code and is different version from the current agent.
-                Once agent identifies this, loader will start to update flash memory with
-                the new agent code.
-       
-                sameAgentCodeImage  (2)  means the code image on TFTP server is exactly the
-                same as the currently running agent. Currently running agent will not invoke
-                loader to load the same again.
-                
-                invalidAgentCodeImage  (3) means the code image on TFTP server is NOT a valid
-                APC agent code. Thus, current agent will not load it into the flash memory.
-                
-       The value of this OID will be associated with TRAP codeImageAuthentDone.
-       This OID is only supported by AP9605, AP9205, and AP9603 PowerNet SNMP Adapters."
-       
-   ::= { mconfig 5 }
-
-mconfigClockDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The current date in the mm/dd/yyyy format. Example: 01/01/2000."
-   ::= { mconfigClock 1 }
-
-mconfigClockTime OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The current time in the hh:mm:ss am/pm format. Example: 12:00:00 am."
-   ::= { mconfigClock 2 }
-
-mcontrolRestartAgent OBJECT-TYPE
-   SYNTAX INTEGER   {
-      restartCurrentAgent    (1),
-      continueCurrentAgent   (2),
-      loadAndExecuteNewAgent (3),
-      restartWithoutAgent    (4),
-      resetNetworkAndRestart (5),
-      resetNetworkLeaveModeAndRestart (6)
-  }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to restartCurrentAgent (1) will restart the same SNMP
-       agent code currently saved in flash memory. Setting this OID to
-       loadAndExecuteNewAgent (3) will enable adapter to load a new agent code
-       into the flash memory and start to execute this new agent code.
-       Bootp/tftp is the default protocol. loadAndExecuteNewAgent is only
-       supported by AP9605, AP9205, and AP9603 PowerNet SNMP Adapters. Setting
-       this OID to restartWithoutAgent (4) will restart the system and not
-       start the agent. The subsequent time the system restarts the agent will
-       also automatically restart. Setting this OID to
-       resetNetworkAndRestart (5) will set the Boot Mode, IP Address, Subnet
-       Mask, and Default Gateway to defaults, expire any existing DHCP lease
-       and then restart the system. Setting this OID to
-       resetNetworkLeaveModeAndRestart (6) will leave the Boot Mode at the
-       current setting, set the IP Address, Subnet Mask, and Default Gateway to
-       defaults, expire any existing DHCP lease and then restart the system."
-
-   ::= { mcontrol 1 }
-
--- The mtrapargs group
--- These OIDs allows APC traps to be sent with additional arguments
--- which may not be defined in the APC MIB.
-      
-mtrapargsInteger OBJECT-TYPE
-   SYNTAX INTEGER    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an integer argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 1 }
-
-mtrapargsIpAddress OBJECT-TYPE
-   SYNTAX IpAddress   
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an IP address argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0.0.0.0."
-   ::= { mtrapargs 2 }
-
-mtrapargsString OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an octet string argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return a NULL string."
-   ::= { mtrapargs 3 }
-
-mtrapargsGauge OBJECT-TYPE
-   SYNTAX  Gauge 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with a Gauge argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 4 }
-
-mtrapargsTimeTicks OBJECT-TYPE
-   SYNTAX TimeTicks  
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with a TimeTicks argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 5 }
-
-mtrapargsInteger02 OBJECT-TYPE
-   SYNTAX INTEGER    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an integer argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 6 }
-
-mtrapargsInteger03 OBJECT-TYPE
-   SYNTAX INTEGER    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an integer argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 7 }
-
-mtrapargsIpAddress02 OBJECT-TYPE
-   SYNTAX IpAddress   
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an IP address argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0.0.0.0."
-   ::= { mtrapargs 8 }
-
-mtrapargsIpAddress03 OBJECT-TYPE
-   SYNTAX IpAddress   
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an IP address argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0.0.0.0."
-   ::= { mtrapargs 9 }
-   
-mtrapargsString02 OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an octet string argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return a NULL string."
-   ::= { mtrapargs 10 }
-
-mtrapargsString03 OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with an octet string argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return a NULL string."
-   ::= { mtrapargs 11 }
-
-mtrapargsGauge02 OBJECT-TYPE
-   SYNTAX  Gauge 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with a Gauge argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 12 }
-
-mtrapargsGauge03 OBJECT-TYPE
-   SYNTAX  Gauge 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with a Gauge argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 13 }
-
-mtrapargsTimeTicks02 OBJECT-TYPE
-   SYNTAX TimeTicks  
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with a TimeTicks argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 14 }
-
-mtrapargsTimeTicks03 OBJECT-TYPE
-   SYNTAX TimeTicks  
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID allows APC traps to be sent with a TimeTicks argument
-       that my not be defined in the APC MIB.
-      
-       A get of this OID will return 0."
-   ::= { mtrapargs 15 }
-   
--- the mfiletransfer group
--- the mfiletransferStatus group
-mfiletransferStatusLastTransferResult OBJECT-TYPE
-   SYNTAX INTEGER {
-      lastFileTransferResultSuccessful                 (1),
-      lastFileTransferResultNotAvailable               (2),
-      lastFileTransferResultFailureUnknown             (3),
-      lastFileTransferResultFailureServerInaccessible  (4),
-      lastFileTransferResultFailureServerAccessDenied  (5),
-      lastFileTransferResultFailureFileNotFound        (6),
-      lastFileTransferResultFailureFileTypeUnknown     (7),
-      lastFileTransferResultFailureFileCorrupted       (8)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Once mfiletransferControlInitiateFileTransfer is set to a value other than doNotInitiateFileTransfer
-      a file transfer of mfiletransferConfigSettingsFilename will be attempted from either a TFTP or FTP
-      server.
-       
-      This OID shows the last attempted file transfer result.
-        lastFileTransferResultSuccessful (1) means the file transfer was successful.
-        lastFileTransferResultNotAvailable (2) means that there have been no previous file transfers.
-        lastFileTransferResultFailureUnknown (3) means that the last file transfer failed for an unknown reason.
-        lastFileTransferResultFailureServerInaccessible (4) means that the TFTP or FTP server could not be found on the network.
-        lastFileTransferResultFailureServerAccessDenied (5) means that the TFTP or FTP server denied access.
-        lastFileTransferResultFailureFileNotFound (6) means that the file could not be located.
-        lastFileTransferResultFailureFileTypeUnknown (7) means the file was examined, but the contents were unknown.
-        lastFileTransferResultFailureFileCorrupt (8) means the transferred file was corrupt."
-       
-   ::= { mfiletransferStatus 1 }
-   
--- the mfiletransferConfig group
--- the mfiletransferConfigSettings group
-
-mfiletransferConfigSettingsFilename  OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The path and name of the file to transfer using the mfiletransferControlInitiateFileTransfer OID.
-      If the file to transfer exists in the default server directory then the path may be omitted."
-
-   ::= { mfiletransferConfigSettings 1 }
-
--- the mfiletransferConfigTFTP group
-
-mfiletransferConfigTFTPServerAddress     OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The IP Address in dotted decimal notation of the TFTP server involved in the file transfer."
-
-   ::= { mfiletransferConfigTFTP 1 }
-
--- the mfiletransferConfigFTP group
-
-mfiletransferConfigFTPServerAddress  OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The IP Address in dotted decimal notation of the FTP server involved in the file transfer."
-
-   ::= { mfiletransferConfigFTP 1 }
-
-mfiletransferConfigFTPServerUser     OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The user identification for logging into the FTP server specified with mfiletransferConfigFTPServerAddress."
-
-   ::= { mfiletransferConfigFTP 2 }
-
-mfiletransferConfigFTPServerPassword     OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The password for logging into the FTP server specified with mfiletransferConfigFTPServerAddress."
-
-   ::= { mfiletransferConfigFTP 3 }
-
--- the mfiletransferControl group
-
-mfiletransferControlInitiateFileTransfer OBJECT-TYPE
-   SYNTAX INTEGER   {
-      doNotInitiateFileTransfer             (1),
-      initiateFileTransferDownloadViaTFTP   (2),
-      initiateFileTransferDownloadViaFTP    (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to doNotInitiateFileTransfer (1) will do nothing.
-       
-      Setting this OID to initiateFileTransferDownloadViaTFTP (2) will attempt to transfer the file named in 
-      mfiletransferConfigSettingsFilename from the TFTP Server identified in mfiletransferConfigTFTPAddress.
-       
-      Setting this OID to initiateFileTransferDownloadViaFTP (3) will attempt to transfer the file named in 
-      mfiletransferConfigSettingsFilename from the FTP Server identified in mfiletransferConfigFTPAddress 
-      using mfiletransferConfigFTPUser and mfiletransferConfigFTPPassword for the FTP Server login process."
-
-   ::= { mfiletransferControl 1 }
-
--- the battManIdent group
-
-battManIdentProductName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the battery manager."
-   ::= { battManIdent 1 }
-
-battManIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery manager network interface hardware revision. 
-       This value is set at the factory." 
-   ::= { battManIdent 2 }
-
-battManIdentFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery manager network interface firmware revision. 
-       This value is set at the factory and can change with firmware update." 
-   ::= {  battManIdent 3 }
-
-battManIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date the battery manager was manufactured in mm/dd/yyyy format. 
-       This value is set at the factory." 
-   ::= { battManIdent 4 }
-   
-battManIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery manager model number character string. 
-       This value is set at the factory."
-   ::= { battManIdent 5 }
-
-battManIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery manager serial number character string. 
-       This value is set at the factory."
-   ::= { battManIdent 6 }
-
--- the battManCalib group
--- system calibration
-
-battManOhmicValueCorrectionFactor OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The system ohmic value correction factor in percent."
-   ::= { battManSystemCalib 1 }
-
--- unit calibration
-
-battManUnitCalibTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManUnitCalibTable."
-   ::= { battManUnitCalib 1 }
-   
-battManUnitCalibTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManUnitCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting calibration information from each unit in the system."
-   ::= { battManUnitCalib 2 }
-   
-battManUnitCalibTableEntry OBJECT-TYPE
-   SYNTAX BattManUnitCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The unit to get data from."
-   INDEX { battManUnitCalibIndex }
-   ::= { battManUnitCalibTable 1 }
-   
-BattManUnitCalibTableEntry ::=
-   SEQUENCE {
-       battManUnitCalibIndex           INTEGER,
-       battManUnitSerialNumber         DisplayString,
-       battManBatteryVoltageZeroCalib  INTEGER,                                 
-       battManBatteryVoltageSpanCalib  INTEGER
-   }       
-
-battManUnitCalibIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of unit calibration entries in the table."
-   ::= { battManUnitCalibTableEntry 1 }
-
-battManUnitSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The serial number of the unit."
-   ::= { battManUnitCalibTableEntry 2 }
-
-battManBatteryVoltageZeroCalib OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The unit battery voltage zero calibration in millivolts."
-   ::= { battManUnitCalibTableEntry 3 }
-
-battManBatteryVoltageSpanCalib OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The unit battery voltage span calibration in percent."
-   ::= { battManUnitCalibTableEntry 4 }
-
--- string calibration table
-
-battManStringCalibTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManStringCalibTable."
-   ::= { battManStringCalib 1 }
-   
-battManStringCalibTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManStringCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting calibration information from each string in the system."
-   ::= { battManStringCalib 2 }
-   
-battManStringCalibTableEntry OBJECT-TYPE
-   SYNTAX BattManStringCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManStringCalibIndex }
-   ::= { battManStringCalibTable 1 }
-   
-BattManStringCalibTableEntry ::=
-   SEQUENCE {
-       battManStringCalibIndex             INTEGER,
-       battManDCCurrentZeroCalib           INTEGER,                                 
-       battManACCurrentZeroCalib           INTEGER,
-       battManProbeRange                   INTEGER
-   }       
-
-battManStringCalibIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of string calibration entries in the table."
-   ::= { battManStringCalibTableEntry 1 }
-
-battManDCCurrentZeroCalib OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The string DC current zero calibration in tenths of amps."
-   ::= { battManStringCalibTableEntry 2 }
-
-battManACCurrentZeroCalib OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The string AC current zero calibration in tenths of amps."
-   ::= { battManStringCalibTableEntry 3 }
-
-battManProbeRange OBJECT-TYPE
-   SYNTAX INTEGER {
-       amps1000    (1),
-       amps500     (2),
-       amps100     (3)
-   }    
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The string probe range in amps."
-   ::= { battManStringCalibTableEntry 4 }
-
---string 1 battery calibration table
-
-battManString1BatteryCalibTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManString1BatteryCalibTable."
-   ::= { battManBatteryCalib 1 }
-   
-battManString1BatteryCalibTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString1BatteryCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting calibration information from each battery in String 1."
-   ::= { battManBatteryCalib 2 }
-   
-battManString1BatteryCalibTableEntry OBJECT-TYPE
-   SYNTAX BattManString1BatteryCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManString1BatteryCalibIndex }
-   ::= { battManString1BatteryCalibTable 1 }
-   
-BattManString1BatteryCalibTableEntry ::=
-   SEQUENCE {
-       battManString1BatteryCalibIndex             INTEGER,
-       battManString1BatteryInterTierOhmicValue    INTEGER
-   }       
-
-battManString1BatteryCalibIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of battery calibration entries in the table."
-   ::= { battManString1BatteryCalibTableEntry 1 }
-
-battManString1BatteryInterTierOhmicValue OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The battery inter-tier ohmic value in ohms.  This corresponds to the ohmic 
-       value for the positive terminal of the battery."
-   ::= { battManString1BatteryCalibTableEntry 2 }
-
---string 2 battery calibration table
-
-battManString2BatteryCalibTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManString2BatteryCalibTable."
-   ::= { battManBatteryCalib 3 }
-   
-battManString2BatteryCalibTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString2BatteryCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting calibration information from each battery in String 2."
-   ::= { battManBatteryCalib 4 }
-   
-battManString2BatteryCalibTableEntry OBJECT-TYPE
-   SYNTAX BattManString2BatteryCalibTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManString2BatteryCalibIndex }
-   ::= { battManString2BatteryCalibTable 1 }
-   
-BattManString2BatteryCalibTableEntry ::=
-   SEQUENCE {
-       battManString2BatteryCalibIndex             INTEGER,
-       battManString2BatteryInterTierOhmicValue    INTEGER
-   }       
-
-battManString2BatteryCalibIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of battery calibration entries in the table."
-   ::= { battManString2BatteryCalibTableEntry 1 }
-
-battManString2BatteryInterTierOhmicValue OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "The battery inter-tier ohmic value in ohms."
-   ::= { battManString2BatteryCalibTableEntry 2 }
-
--- the battManConfig group
-
-battManConfigApplication OBJECT-TYPE
-   SYNTAX INTEGER {
-     silcon          (1),
-     other           (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The type of application the battery manager is installed on: 
-       Silcon(1) Silcon UPS or 
-       Other(2) Other UPS/Charger."
-   ::= { battManConfig 1 } 
-
-battManConfigBatteryChemistry OBJECT-TYPE
-   SYNTAX INTEGER {
-     leadAcid        (1),
-     nickel-Cadmium  (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The battery chemistry of the monitored batteries: 
-       LeadAcid(1) Lead Acid or 
-       Nickel-Cadmium(2) Nickel-Cadmium."
-   ::= { battManConfig 2 }
-
-battManConfigBatteryAHCapacity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amp hour capacity of the monitored batteries 5-2000 AH."
-   ::= { battManConfig 3 }
-
-battManConfigNumberofStrings OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The number of strings in the battery manager system (1 - 2 Silcon)/(1 Other)."
-   ::= { battManConfig 4 }
-
-battManConfigBatteriesperString OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The number of batteries per string."
-   ::= { battManConfig 5 }
-
-battManConfigCellsperBattery OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The number of cells per battery (1 - 6 for lead-acid, 1 - 2 for NiCd."
-   ::= { battManConfig 6 }
-
-battManConfigMinCellVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The minimum battery cell voltage alarm limit in millivolts DC."
-   ::= { battManConfig 7 }
-
-battManConfigMaxCellVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum battery cell voltage alarm limit in millivolts DC."
-   ::= { battManConfig 8 }
-
-battManConfigMaxPilotTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum pilot battery temperature alarm limit in tenths of degrees Fahrenheit."
-   ::= { battManConfig 9 }
-
-battManConfigMaxPilotTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum pilot battery temperature alarm limit in tenths of degrees Celcius."
-   ::= { battManConfig 10 }
-
-battManConfigMaxAmbientTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum ambient temperature alarm limit in tenths of degrees Fahrenheit."
-   ::= { battManConfig 11 }
-
-battManConfigMaxAmbientTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum ambient temperature alarm limit in tenths of degrees Celcius."
-   ::= { battManConfig 12 }
-
-battManConfigMinAmbientTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The Minimum Ambient Temperature alarm limit in tenths of degrees Fahrenheit."
-   ::= { battManConfig 13 }
-
-battManConfigMinAmbientTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The Minimum Ambient Temperature alarm limit in tenths of degrees Celcius."
-   ::= { battManConfig 14 }
-
-battManConfigMaxRippleCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum ripple current alarm limit for the monitored battery 
-       strings in percent of AH capacity."
-   ::= { battManConfig 15 }
-
-battManConfigMaxCurrentAcceptanceDeviation OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum current acceptance deviation alarm limit in percentage."
-   ::= { battManConfig 16 }
-
-battManConfigMonitorWireLength OBJECT-TYPE
-   SYNTAX INTEGER {
-     fiftyFeetOrLess   (1),
-     moreThanFiftyFeet (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The monitor wire length:
-       fiftyFeetOrLess (1) indicates that the wire length is less than or equal to 50 feet.
-       moreThanFiftyFeet (2) indicates that the wire length is greater than 50 feet."
-   ::= { battManConfig 17 }
-
-battManConfigDischargeVoltageAlarmLevel OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The discharge voltage alarm level in percent."
-   ::= { battManConfig 18 }
-
-battManConfigAutoAnnunciatorReset OBJECT-TYPE
-   SYNTAX INTEGER {
-     disabled  (1),
-     enabled   (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The annunciator output signal reset method:
-       disabled(1) means the annunciator signal output will be reset when the reset button is pressed.
-       enabled(2) means the annunciator will stop signalling when all alarm conditions clear."
-   ::= { battManConfig 19 }
-
--- the battManAlarm group
-
-battManAlarmManagementController OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Management Controller Alarm is : 
-       normal(1) no alarm condtions identified
-       alarm(2) an alarm condition exits."
-   ::= { battManAlarm 1 }
-
-battManAlarmBatteries  OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Batteries Alarm is : 
-       normal(1) no alarm condtions identified
-       alarm(2) an alarm condition exits."
-   ::= { battManAlarm 2 }
-
-battManAlarmCharger OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Charger Alarm is : 
-       normal(1) no alarm condtions identified
-       alarm(2) an alarm condition exits."
-   ::= { battManAlarm 3 }
-
-battManAlarmEnvironment OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Environment Alarm is : 
-       normal(1) no alarm condtions identified
-       alarm(2) an alarm condition exits."
-   ::= { battManAlarm 4 }
-
--- the battManSystemStatus group
-
--- These are system wide parameters
-
-battManSystemAmbientTempC OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system ambient temperture in tenths of degrees Celcius."
-   ::= { battManSystemStatus 1 }
-
-battManSystemAmbientTempF OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system ambient temperture in tenths of degrees Fahrenheit."
-   ::= { battManSystemStatus 2 }
-
-battManSystemPilotTempC OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system pilot temperature in tenths of degrees Celcius."
-   ::= { battManSystemStatus 3 }
-
-battManSystemPilotTempF OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system pilot temperature in tenths of degrees Fahrenheit."
-   ::= { battManSystemStatus 4 }
-
-battManSystemAmbientHighTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the system has a high temperature alarm."
-   ::= { battManSystemStatus 5 }
-
-battManSystemAmbientLowTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the system has a low temperature alarm."
-   ::= { battManSystemStatus 6 }
-
-battManSystemPilotBatteryHighTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the system has a pilot battery high temperature alarm."
-   ::= { battManSystemStatus 7 }
-
-battManSystemPilotProbeDisconnected OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the system pilot probe is disconnected."
-   ::= { battManSystemStatus 8 }
-
-battManSystemAmbientProbeDisconnected OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the system ambient probe is disconnected."
-   ::= { battManSystemStatus 9 }
-
--- This is a table of input contact parameters
-
-battManInputContactTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of entries in the battManContactTable." 
-   ::= { battManInputContactStatus 1 }
-
-battManInputContactTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManInputContactTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting information from each contact 
-       in the system. " 
-   ::= { battManInputContactStatus 2 }
-
-battManInputContactTableEntry OBJECT-TYPE
-   SYNTAX BattManInputContactTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The contact to get data from."
-   INDEX  { battManInputContactIndex }
-   ::= { battManInputContactTable 1 }
-
-BattManInputContactTableEntry ::=
-   SEQUENCE {
-      battManInputContactIndex                 INTEGER,
-      battManInputContactName                  DisplayString,
-      battManInputContactAlarmState            INTEGER,
-      battManInputContactState                 INTEGER,
-      battManInputContactNormalState           INTEGER,
-      battManInputContactAlarmDelay            INTEGER
-   }
-   
-battManInputContactIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Index of contact entries in the table."
-   ::= { battManInputContactTableEntry 1 }
-
-battManInputContactName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the input contact."
-   ::= { battManInputContactTableEntry 2 }
-
-battManInputContactAlarmState OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the alarm condition is active for this contact."
-   ::= { battManInputContactTableEntry 3 }
-
-battManInputContactState OBJECT-TYPE
-   SYNTAX INTEGER {
-     open      (1),
-     closed    (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to open(1), the input contact is in the open state.
-       When set to closed(2), the input contact is in the closed state."
-   ::= { battManInputContactTableEntry 4 }
-
-battManInputContactNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-     open      (1),
-     closed    (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to open(1), the input contact is normally open.
-       When set to closed(2), the input contact is normally closed."
-   ::= { battManInputContactTableEntry 5 }
-
-battManInputContactAlarmDelay OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The alarm delay time in seconds."
-   ::= { battManInputContactTableEntry 6 }
-
--- This is a table of battery string parameters
-
-battManStringTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of entries in the battManStringTable." 
-   ::= { battManStringStatus 1 }
-
-battManStringTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManStringTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting information from each string 
-       in the system. " 
-   ::= { battManStringStatus 2 }
-
-battManStringTableEntry OBJECT-TYPE
-   SYNTAX BattManStringTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The string to get data from."
-   INDEX  { battManStringIndex }
-   ::= { battManStringTable 1 }
-
-BattManStringTableEntry ::=
-   SEQUENCE {
-      battManStringIndex                       INTEGER,
-      battManStringCurrent                     INTEGER,
-      battManStringRippleCurrent               INTEGER,
-      battManStringChargerHighVoltageAlarm     INTEGER,
-      battManStringChargerLowVoltageAlarm      INTEGER,
-      battManStringCurrentProbeDisconnected    INTEGER,
-      battManStringOnBattery                   INTEGER
-   }
-   
-battManStringIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Index of string entries in the table."
-   ::= { battManStringTableEntry 1 }
-
-battManStringCurrent OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The string current in tenths of Amps."
-   ::= { battManStringTableEntry 2 }
-
-battManStringRippleCurrent OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The string ripple current in tenths of Amps."
-   ::= { battManStringTableEntry 3 }
-
-battManStringChargerHighVoltageAlarm OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the string charger has a high voltage alarm."
-   ::= { battManStringTableEntry 4 }
-
-battManStringChargerLowVoltageAlarm OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the string charger has a low voltage alarm."
-   ::= { battManStringTableEntry 5 }
-
-battManStringCurrentProbeDisconnected OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the string charger probe is disconnected."
-   ::= { battManStringTableEntry 6 }
-
-battManStringOnBattery OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that the string is in the on-battery state."
-   ::= { battManStringTableEntry 7 }
-
--- the battManString1BatteryStatus group
-
-battManString1BatteryTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of entries in the battManString1BatteryStatusTable." 
-   ::= { battManBatteryStatus 1 }
-
-battManString1BatteryTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString1BatteryTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting information from each string 
-       in the system. " 
-   ::= { battManBatteryStatus 2 }
-
-battManString1BatteryTableEntry OBJECT-TYPE
-   SYNTAX BattManString1BatteryTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The string to get data from."
-   INDEX  { battManString1BatteryIndex }
-   ::= { battManString1BatteryTable 1 }
-
-BattManString1BatteryTableEntry ::=
-   SEQUENCE {
-      battManString1BatteryIndex                       INTEGER,
-      battManString1BatteryVoltage                     INTEGER,
-      battManString1BatteryLowestVoltage               INTEGER,
-      battManString1BatteryCellShorted                 INTEGER, 
-      battManString1BatteryOpenFuseOrConnection        INTEGER, 
-      battManString1BatteryLowCapacity                 INTEGER, 
-      battManString1BatteryHighOhmicValue              INTEGER, 
-      battManString1BatteryThermalRunaway              INTEGER, 
-      battManString1BatteryDryout                      INTEGER
-   }
-   
-battManString1BatteryIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Index of string entries in the table."
-   ::= { battManString1BatteryTableEntry 1 }
-
-battManString1BatteryVoltage OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery voltage in milli VDC."
-   ::= { battManString1BatteryTableEntry 2 }
-   
-battManString1BatteryLowestVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The lowest battery discharge voltage during the last power event in milli VDC."
-   ::= { battManString1BatteryTableEntry 3 }
-   
-battManString1BatteryCellShorted OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that a battery cell is shorted."
-   ::= { battManString1BatteryTableEntry 4 }
-
-battManString1BatteryOpenFuseOrConnection OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that a fuse or connection is open."
-   ::= { battManString1BatteryTableEntry 5 }
-
-battManString1BatteryLowCapacity OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has low capacity."
-   ::= { battManString1BatteryTableEntry 6 }
-
-battManString1BatteryHighOhmicValue OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has a high ohmic value."
-   ::= { battManString1BatteryTableEntry 7 }
-
-battManString1BatteryThermalRunaway OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has a thermal runaway condition."
-   ::= { battManString1BatteryTableEntry 8 }
-
-battManString1BatteryDryout OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has a dryout condition."
-   ::= { battManString1BatteryTableEntry 9 }
-
--- the battManString2BatteryStatus group
-
-battManString2BatteryTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of entries in the battManString2BatteryStatusTable." 
-   ::= { battManBatteryStatus 3 }
-
-battManString2BatteryTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString2BatteryTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting information from each string 
-       in the system. " 
-   ::= { battManBatteryStatus 4 }
-
-battManString2BatteryTableEntry OBJECT-TYPE
-   SYNTAX BattManString2BatteryTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The string to get data from."
-   INDEX  { battManString2BatteryIndex }
-   ::= { battManString2BatteryTable 1 }
-
-BattManString2BatteryTableEntry ::=
-   SEQUENCE {
-      battManString2BatteryIndex                       INTEGER,
-      battManString2BatteryVoltage                     INTEGER,
-      battManString2BatteryLowestVoltage               INTEGER,
-      battManString2BatteryCellShorted                 INTEGER, 
-      battManString2BatteryOpenFuseOrConnection        INTEGER, 
-      battManString2BatteryLowCapacity                 INTEGER, 
-      battManString2BatteryHighOhmicValue              INTEGER, 
-      battManString2BatteryThermalRunaway              INTEGER, 
-      battManString2BatteryDryout                      INTEGER
-   }
-   
-battManString2BatteryIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Index of string entries in the table."
-   ::= { battManString2BatteryTableEntry 1 }
-
-battManString2BatteryVoltage OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery voltage in milli VDC."
-   ::= { battManString2BatteryTableEntry 2 }
-   
-battManString2BatteryLowestVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The lowest battery discharge voltage during the last power event in milli VDC."
-   ::= { battManString2BatteryTableEntry 3 }
-   
-battManString2BatteryCellShorted OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that a battery cell is shorted."
-   ::= { battManString2BatteryTableEntry 4 }
-
-battManString2BatteryOpenFuseOrConnection OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates that a fuse or connection is open."
-   ::= { battManString2BatteryTableEntry 5 }
-
-battManString2BatteryLowCapacity OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has low capacity."
-   ::= { battManString2BatteryTableEntry 6 }
-
-battManString2BatteryHighOhmicValue OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has a high ohmic value."
-   ::= { battManString2BatteryTableEntry 7 }
-
-battManString2BatteryThermalRunaway OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has a thermal runaway condition."
-   ::= { battManString2BatteryTableEntry 8 }
-
-battManString2BatteryDryout OBJECT-TYPE
-   SYNTAX INTEGER {
-     normal          (1),
-     alarm           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When set to alarm(2), indicates a battery has a dryout condition."
-   ::= { battManString2BatteryTableEntry 9 }
-
--- battery manager control group
-battManRemoteAnnunciatorReset OBJECT-TYPE
-   SYNTAX INTEGER {
-       noOperation (1),
-       reset       (2)
-   }    
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to reset(2) will reset the user interface annunciator.
-       Getting this OID will do nothing and return the noOperation(1) value."
-   ::= { battManControl 1 }
-
-battManResetChargeCurrentDeviationBenchmark OBJECT-TYPE
-   SYNTAX INTEGER {
-       noOperation (1),
-       reset       (2)
-   }    
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to reset(2) will reset the charge current deviation benchmark.
-       Getting this OID will do nothing and return the noOperation(1) value."
-   ::= { battManControl 2 }
-
-battManResetLowestDischargeVoltages OBJECT-TYPE
-   SYNTAX INTEGER {
-       noOperation (1),
-       reset       (2)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to reset(2) will reset the lowest discharge voltages.
-       Getting this OID will do nothing and return the noOperation(1) value."
-   ::= { battManControl 3 }
-
--- the battManTestResults group
-
---string 1 test results table
-
-battManString1OhmicValueLastDischargeInfo OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Informational text showing the date/time, load, and pilot temperature for the string
-       during the last discharge when ohmic values were recorded."
-   ::= { battManTestResults 1 }       
-
-battManString1OhmicValueTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManString1OhmicValueTable."
-   ::= { battManTestResults 2 }
-   
-battManString1OhmicValueTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString1OhmicValueTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting ohmic value information from each battery in String 1."
-   ::= { battManTestResults 3 }
-   
-battManString1OhmicValueTableEntry OBJECT-TYPE
-   SYNTAX BattManString1OhmicValueTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManString1OhmicValueIndex }
-   ::= { battManString1OhmicValueTable 1 }
-   
-BattManString1OhmicValueTableEntry ::=
-   SEQUENCE {
-       battManString1OhmicValueIndex   INTEGER,
-       battManString1OhmicValueData    INTEGER
-   }       
-
-battManString1OhmicValueIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The battery number."
-   ::= { battManString1OhmicValueTableEntry 1 }
-
-battManString1OhmicValueData OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The battery inter-tier ohmic value in ohms.
-       Note: Negative values are invalid and may indicate faulty calibration
-       of ohmic value correction factors."
-   ::= { battManString1OhmicValueTableEntry 2 }
-
-battManString1ResponseTestChangeTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManString1ResponseTestChangeTable."
-   ::= { battManTestResults 4 }
-   
-battManString1ResponseTestChangeTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString1ResponseTestChangeTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting response test change information from each battery in String 1."
-   ::= { battManTestResults 5 }
-   
-battManString1ResponseTestChangeTableEntry OBJECT-TYPE
-   SYNTAX BattManString1ResponseTestChangeTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManString1ResponseTestChangeIndex }
-   ::= { battManString1ResponseTestChangeTable 1 }
-   
-BattManString1ResponseTestChangeTableEntry ::=
-   SEQUENCE {
-       battManString1ResponseTestChangeIndex   INTEGER,
-       battManString1ResponseTestChangeData    INTEGER
-   }       
-
-battManString1ResponseTestChangeIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of the entries in the table."
-   ::= { battManString1ResponseTestChangeTableEntry 1 }
-
-battManString1ResponseTestChangeData OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The battery response test change in percent."
-   ::= { battManString1ResponseTestChangeTableEntry 2 }
-
-battManString2OhmicValueLastDischargeInfo OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Informational text showing the date/time, load, and pilot temperature for the string
-       during the last discharge when ohmic values were recorded."
-   ::= { battManTestResults 6 }       
-
-battManString2OhmicValueTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManString2OhmicValueTable."
-   ::= { battManTestResults 7 }
-   
-battManString2OhmicValueTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString2OhmicValueTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting ohmic value information from each battery in String 1."
-   ::= { battManTestResults 8 }
-   
-battManString2OhmicValueTableEntry OBJECT-TYPE
-   SYNTAX BattManString2OhmicValueTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManString2OhmicValueIndex }
-   ::= { battManString2OhmicValueTable 1 }
-   
-BattManString2OhmicValueTableEntry ::=
-   SEQUENCE {
-       battManString2OhmicValueIndex   INTEGER,
-       battManString2OhmicValueData    INTEGER
-   }       
-
-battManString2OhmicValueIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of battery calibration entries in the table."
-   ::= { battManString2OhmicValueTableEntry 1 }
-
-battManString2OhmicValueData OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The battery inter-tier ohmic value in ohms.
-       Note: Negative values are invalid and may indicate faulty calibration
-       of ohmic value correction factors."
-   ::= { battManString2OhmicValueTableEntry 2 }
-
-battManString2ResponseTestChangeTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The number of entries in the battManString2ResponseTestChangeTable."
-   ::= { battManTestResults 9 }
-   
-battManString2ResponseTestChangeTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF BattManString2ResponseTestChangeTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "Allows for getting response test change information from each battery in String 1."
-   ::= { battManTestResults 10 }
-   
-battManString2ResponseTestChangeTableEntry OBJECT-TYPE
-   SYNTAX BattManString2ResponseTestChangeTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-       "The string to get data from."
-   INDEX { battManString2ResponseTestChangeIndex }
-   ::= { battManString2ResponseTestChangeTable 1 }
-   
-BattManString2ResponseTestChangeTableEntry ::=
-   SEQUENCE {
-       battManString2ResponseTestChangeIndex   INTEGER,
-       battManString2ResponseTestChangeData    INTEGER
-   }       
-
-battManString2ResponseTestChangeIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Index of the entries in the table."
-   ::= { battManString2ResponseTestChangeTableEntry 1 }
-
-battManString2ResponseTestChangeData OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "The battery response test change in percent."
-   ::= { battManString2ResponseTestChangeTableEntry 2 }
-
--- the xPDUIdent group
-
-xPDUIdentProductName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the PDU."
-   ::= { xPDUIdent 1 }
-
-xPDUIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the PDU. 
-       This value is set at the factory."
-   ::= { xPDUIdent 2 }
-
-xPDUIdentFirmwareAppRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ID string identifying the application firmware revision of the  PDU." 
-   ::= {  xPDUIdent 3 }
-
-xPDUIdentFirmwareAppOSRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ID string identifying the application operating system firmware revision of the PDU." 
-   ::= {  xPDUIdent 4 }
-
-xPDUIdentFirmwareControllerRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ID string identifying the PDU controller firmware revision." 
-   ::= {  xPDUIdent 5 }
-
-xPDUIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the PDU was manufactured in mm/dd/yyyy format. 
-       This value is set at the factory." 
-   ::= { xPDUIdent 6 }
-   
-xPDUIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the model number of 
-       the PDU. This value is set at the factory."
-   ::= { xPDUIdent 7 }
-
-xPDUIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the serial number of 
-       the PDU. This value is set at the factory."
-   ::= { xPDUIdent 8 }
-
---  the xPDUDevice group
-
-xPDUDeviceNominalMainInputVoltage OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The nominal main input voltage to the PDU. 
-       Measured in Volts,  line-to-line for a delta service or 
-       line-to-neutral for a wye service."
-   ::= { xPDUDevice 1 }
-
-xPDUDeviceServiceType OBJECT-TYPE
-    SYNTAX INTEGER  {
-        delta (1),
-        wye   (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The type of utility input to the PDU. Either 3 wires (delta), or 4 wires (wye)."
-   ::= { xPDUDevice 2 }
-
-xPDUDeviceNominalOutputVoltage OBJECT-TYPE
-       SYNTAX     INTEGER 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-      "The nominal line-to-neutral output voltage to the load measured in Volts."
-   ::= { xPDUDevice 3 }
-
-xPDUDeviceMainInputBreakerRating OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The rating of the main input breaker measured in Amps."
-   ::= { xPDUDevice 4 }
-
-xPDUDevicePanelBreakerRating OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The rating of the panel breaker measured in Amps."
-   ::= { xPDUDevice 5 }
-
-xPDUDeviceTransformerPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not a transformer is installed in the PDU."
-   ::= { xPDUDevice 6 }
-
-xPDUDeviceLoadTieBreakerPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent (1),
-        present    (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not a load tie breaker is installed in the PDU."
-   ::= { xPDUDevice 7 }
-
-xPDUDeviceLoadTestPortPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not a load test port is installed in the PDU."
-   ::= { xPDUDevice 8 }
-
-xPDUDeviceFusesPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not the UPS feed from the PDU includes fuses."
-   ::= { xPDUDevice 9 }
-
-xPDUDeviceFansPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not cooling fans are installed in the PDU."
-   ::= { xPDUDevice 10 }
-
-xPDUDeviceBypassInputPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not the PDU is equipped with a second feed for
-       the UPS's bypass input."
-   ::= { xPDUDevice 11 }
-
-xPDUDeviceCrossTieOutputPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not the PDU is equipped with a cross-tie output."
-   ::= { xPDUDevice 12 }
-
-xPDUDeviceEarthGroundMonitorPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not the PDU can provide ground current measurements."
-   ::= { xPDUDevice 13 }
-
-xPDUDeviceInfraXureType OBJECT-TYPE
-    SYNTAX INTEGER  {
-        typeB     (1),
-        typeC     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates the configuration of this PDU system. 
-       Type-B PDU is in a distributed UPS system and has bypass capabilities. 
-       Type-C PDU receives power from a larger central UPS."
-   ::= { xPDUDevice 14 }
-
--- Main Input 
-
-xPDUMainInputOverVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..30)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which an input over voltage condition will be generated.
-       Specified as percent deviation from nominal."
-   ::= { xPDUMainInput 1 }
-
-xPDUMainInputUnderVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..30)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which an input under voltage condition will be generated.
-       Specified as percent deviation from nominal."
-   ::= { xPDUMainInput 2 }
-
--- Main Input Voltage Table
-
-xPDUMainInputVoltageTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Main input voltage entries."
-   ::= { xPDUMainInput 3 }
-
-xPDUMainInputVoltageTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XPDUMainInputVoltagePhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of input voltage table entries. The number of 
-           entries are the phase entries.
-           The number of entries is contained in the 
-           xPDUMainInputVoltageTableSize OID."
-       ::= { xPDUMainInput 4 }
-
-   xPDUMainInputVoltagePhaseEntry OBJECT-TYPE
-       SYNTAX     XPDUMainInputVoltagePhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular main input voltage phase."
-       INDEX { xPDUMainInputVoltagePhaseIndex }
-       ::= { xPDUMainInputVoltageTable 1 }
-
-   XPDUMainInputVoltagePhaseEntry ::= SEQUENCE {
-       xPDUMainInputVoltagePhaseIndex      INTEGER,
-       xPDUMainInputVoltageLtoL            INTEGER,
-       xPDUMainInputVoltageLtoN            INTEGER
-      }
-
-   xPDUMainInputVoltagePhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each input phase entry in the table."
-       ::= { xPDUMainInputVoltagePhaseEntry 1 }
-
-   xPDUMainInputVoltageLtoL OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-line PDU input voltage when an isolation transformer is present, 
-           or -1 if no transformer present in this PDU. Measured in tenths of Volts."
-       ::= { xPDUMainInputVoltagePhaseEntry 2 }
-
-   xPDUMainInputVoltageLtoN OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-neutral PDU input voltage when an isolation transformer is not present,
-           or -1 if a transformer is present in this PDU. Measured in tenths of Volts."
-   ::= { xPDUMainInputVoltagePhaseEntry 3 }
-
-
-xPDUBypassInputOverVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..30)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which a bypass input over voltage condition will be generated. 
-       Specified as percent deviation from nominal."
-   ::= { xPDUBypassInput 1 }
-
-xPDUBypassInputUnderVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..30)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which an bypass input under voltage condition will be generated. 
-       Specified as percent deviation from nominal."
-   ::= { xPDUBypassInput 2 }
-
--- Bypass Input  Voltage Table
-
-xPDUBypassInputVoltageTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of bypass input voltage entries."
-   ::= { xPDUBypassInput 3 }
-   
-xPDUBypassInputVoltageTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XPDUBypassInputVoltagePhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of output table entries.  The number of 
-           entries are the phase entries.
-           The number of entries is contained in the 
-           xPDUBypassInputVoltageTableSize OID."
-       ::= { xPDUBypassInput 4 }
-
-   xPDUBypassInputVoltagePhaseEntry OBJECT-TYPE
-       SYNTAX     XPDUBypassInputVoltagePhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular bypass input voltage phase."
-       INDEX { xPDUBypassInputVoltagePhaseIndex }
-       ::= { xPDUBypassInputVoltageTable 1 }
-
-   XPDUBypassInputVoltagePhaseEntry ::= SEQUENCE {
-       xPDUBypassInputVoltagePhaseIndex       INTEGER,
-       xPDUBypassInputVoltageLtoL             INTEGER,
-       xPDUBypassInputVoltageLtoN             INTEGER
-      }
-
-   xPDUBypassInputVoltagePhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Index of each bypass input phase entry in the table."
-       ::= { xPDUBypassInputVoltagePhaseEntry 1 }
-
-   xPDUBypassInputVoltageLtoL OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-line bypass input voltage, or -1 if no bypass 
-           feed is present in this PDU. Measured in tenths of Volts"
-       ::= { xPDUBypassInputVoltagePhaseEntry 2 }
-
-   xPDUBypassInputVoltageLtoN OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-neutral bypass input voltage, or -1 if no bypass
-           feed is present in this PDU. Measured in tenths of Volts"
-       ::= { xPDUBypassInputVoltagePhaseEntry 3 }
-
--- UPS Input Table
-
-xPDUUPSInputVoltageTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of UPS input voltage entries."
-   ::= { xPDUUPSInput 1 }
-   
-xPDUUPSInputVoltageTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XPDUUPSInputVoltagePhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of UPS input table entries.  The number of 
-           entries are the phase entries.
-           The number of entries is contained in the 
-           xPDUUPSInputVoltageTableSize OID."
-       ::= { xPDUUPSInput 2 }
-
-   xPDUUPSInputVoltagePhaseEntry OBJECT-TYPE
-       SYNTAX     XPDUUPSInputVoltagePhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular UPS input voltage phase."
-       INDEX { xPDUUPSInputVoltagePhaseIndex }
-       ::= { xPDUUPSInputVoltageTable 1 }
-
-   XPDUUPSInputVoltagePhaseEntry ::= SEQUENCE {
-       xPDUUPSInputVoltagePhaseIndex      INTEGER,
-       xPDUUPSInputVoltageLtoNPresent     INTEGER
-      }
-
-   xPDUUPSInputVoltagePhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each UPS input phase entry in the table."
-       ::= { xPDUUPSInputVoltagePhaseEntry 1 }
-
-  xPDUUPSInputVoltageLtoNPresent OBJECT-TYPE
-    SYNTAX INTEGER  {
-        notPresent  (1),
-        present     (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether or not voltage is present at the UPS feed."
-       ::= { xPDUUPSInputVoltagePhaseEntry 2 }
-
--- System Output
-
-xPDUSystemOutputFrequency OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "The system output frequency in tenths of Hertz."
-   ::= { xPDUSystemOutput 1 }
-
-xPDUSystemOutputNeutralCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the neutral current measured at the system output in tenths of Amps."
-   ::= { xPDUSystemOutput 2 }
-
-xPDUSystemOutputTotalPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the total system output power in tenths of kW."
-   ::= { xPDUSystemOutput 3 }
-
-xPDUSystemOutputTotalApparentPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the total system output power in tenths of kVA."
-   ::= { xPDUSystemOutput 4 }
-
-xPDUSystemOutputTotalPowerFactor OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates the total power factor of the system output.
-       A value of 100 representing a unity power factor (1.00).
-       Measured in hundredths."
-   ::= { xPDUSystemOutput 5 }
-
-xPDUSystemOutputFrequencyTolerance OBJECT-TYPE
-   SYNTAX     INTEGER{
-      freqToleranceOff              (1),
-      freqTolerancePointTwo         (2),
-      freqTolerancePointFive        (3),
-      freqToleranceOne              (4),
-      freqToleranceOnePointFive     (5),
-      freqToleranceTwo              (6),
-      freqToleranceThree            (7),
-      freqToleranceFour             (8),
-      freqToleranceFive             (9),
-      freqToleranceNine             (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the circuit panel output frequency tolerance in Hertz."
-   ::= { xPDUSystemOutput 6 }
-
-xPDUSystemOutputMaxKWPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Defines 100% load in kW. 
-       Purpose is to set to match UPS capabilities."
-   ::= { xPDUSystemOutput 7 }
-
-xPDUSystemOutputOverVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..30)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which an output over voltage condition will be generated. 
-       Specified as percent deviation from nominal."
-   ::= { xPDUSystemOutput 8 }
-
-xPDUSystemOutputUnderVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..30)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which an output under voltage condition will be generated. 
-       Specified as percent deviation from nominal."
-   ::= { xPDUSystemOutput 9 }
-
-
-xPDUSystemOutputOverCurrentThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which an over current condition will be generated. 
-       Specified as a percent of the panel breaker rating."
-   ::= { xPDUSystemOutput 10 }
-
-xPDUSystemOutputOverCurrentNeutralThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which an Over current neutral condition will be generated. 
-       Specified as a percent of the panel breaker rating."
-   ::= { xPDUSystemOutput 11 }
-
-xPDUSystemOutputUnderCurrentThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which an under current condition will be generated. 
-       Specified as a percent of the panel breaker rating."
-   ::= { xPDUSystemOutput 12 }
-
-xPDUSystemOutputTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of System Output phase entries."
-   ::= { xPDUSystemOutput 13 }
-   
-xPDUSystemOutputTable OBJECT-TYPE
-   SYNTAX     SEQUENCE OF XPDUSystemOutputPhaseEntry
-   ACCESS     not-accessible
-   STATUS     mandatory
-   DESCRIPTION
-      "A list of system output table entries.
-       The number of entries is contained in the 
-       xPDUSystemOutputTableSize OID."
-   ::= { xPDUSystemOutput 14 }
-
-   xPDUSystemOutputPhaseEntry OBJECT-TYPE
-       SYNTAX     XPDUSystemOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular system output phase."
-       INDEX { xPDUSystemOutputPhaseIndex }
-       ::= { xPDUSystemOutputTable 1 }
-
-   XPDUSystemOutputPhaseEntry ::= SEQUENCE {
-       xPDUSystemOutputPhaseIndex      INTEGER,
-       xPDUSystemOutputVoltageLtoL     INTEGER,
-       xPDUSystemOutputVoltageLtoN     INTEGER,
-       xPDUSystemOutputPhaseCurrent    INTEGER,
-       xPDUSystemOutputPower           INTEGER,
-       xPDUSystemOutputApparentPower   INTEGER,
-       xPDUSystemOutputPowerFactor     INTEGER
-      }
-
-   xPDUSystemOutputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each output phase entry in the table."
-       ::= { xPDUSystemOutputPhaseEntry 1 }
-
-   xPDUSystemOutputVoltageLtoL OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-line system output voltage available at the cicuit panel. 
-           Measured in tenths of Volts."
-       ::= { xPDUSystemOutputPhaseEntry 2 }
-
-   xPDUSystemOutputVoltageLtoN OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-neutral system output voltage available at the cicuit panel. 
-           Measured in tenths of Volts."
-       ::= { xPDUSystemOutputPhaseEntry 3 }
-
-
-   xPDUSystemOutputPhaseCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "System load current per phase. Measured in tenths of Amps."
-       ::= { xPDUSystemOutputPhaseEntry 4 }
-
-   xPDUSystemOutputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "System output power per phase. Measured in tenths of kW."
-       ::= { xPDUSystemOutputPhaseEntry 5 }
-
-   xPDUSystemOutputApparentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "System output power per phase. Measured in tenths of kVA."
-       ::= { xPDUSystemOutputPhaseEntry 6 }
-
-   xPDUSystemOutputPowerFactor OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Indicates the Power Factor of the system output per phase.
-           A value of 100 representing a unity Power Factor (1.00).
-           Measured in hundredths."
-       ::= { xPDUSystemOutputPhaseEntry 7 }
-
-xPDUGroundCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the current measured in the earth ground conductor in tenths of Amps."
-   ::= { xPDUGroundMonitorPoint 1 }
-
-xPDUGroundCurrentThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..50)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which a ground current over current 
-       condition will be generated. Measured in tenths of Amps."
-   ::= { xPDUGroundMonitorPoint 2 }
-
--- System Breakers 
-
-xPDUSystemBreakerTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of system breaker entries."
-   ::= { xPDUSystemBreakers 1 }
-   
-xPDUSystemBreakerTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XPDUSystemBreakerTableEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of system breaker entries.
-          The number of entries is contained in the 
-          xPDUSystemBreakerTableSize OID."
-       ::= { xPDUSystemBreakers 2 }
-
-   xPDUSystemBreakerTableEntry OBJECT-TYPE
-       SYNTAX     XPDUSystemBreakerTableEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular system breaker."
-       INDEX { xPDUSystemBreakerTableIndex }
-       ::= { xPDUSystemBreakerTable 1 }
-
-   XPDUSystemBreakerTableEntry ::= SEQUENCE {
-       xPDUSystemBreakerTableIndex    INTEGER,
-       xPDUSystemBreakerDescription   DisplayString,
-       xPDUSystemBreakerPosition      INTEGER
-      }
-
-   xPDUSystemBreakerTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Index of system breaker entries in the table."
-       ::= { xPDUSystemBreakerTableEntry 1 }
-
-xPDUSystemBreakerDescription OBJECT-TYPE
-   SYNTAX  DisplayString (SIZE (0..79))
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "A brief description of the system breakers."
-   ::= { xPDUSystemBreakerTableEntry 2 }
-
-   xPDUSystemBreakerPosition OBJECT-TYPE
-       SYNTAX INTEGER  {
-          open    (1),
-          closed  (2)
-       } 
-       ACCESS read-only
-       STATUS mandatory
-       DESCRIPTION
-          "Indicates whether this breaker is open(1) or closed(2)."
-       ::= { xPDUSystemBreakerTableEntry 3 }
-
--- Branch Breakers (Breaker Panel)
-
-xPDUNumOfBranchBreakers OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of branch breakers in the Panel."
-   ::= { xPDUBranchBreakers 1 }
-
--- Branch Breakers Table
-
-xPDUBranchBreakerTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of branch breaker entries."
-   ::= { xPDUBranchBreakers 2 }
-   
-xPDUBranchBreakerTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XPDUBranchBreakerEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of branch breaker table entries. The 
-           number of entries is given by the value of xPDUBranchBreakerTableSize
-           The number of entries is contained in the 
-           xPDUBranchBreakerTableSize OID."
-       ::= { xPDUBranchBreakers 3 }
-
-   xPDUBranchBreakerEntry OBJECT-TYPE
-       SYNTAX     XPDUBranchBreakerEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular branch breaker."
-       INDEX { xPDUBranchBreakerTableIndex }
-       ::= { xPDUBranchBreakerTable 1 }
-
-   XPDUBranchBreakerEntry ::= SEQUENCE {
-       xPDUBranchBreakerTableIndex             INTEGER,
-       xPDUBranchBreakerRating                 INTEGER,
-       xPDUBranchBreakerRDPFeed                INTEGER,
-       xPDUBranchBreakerTieIndicator           INTEGER,
-       xPDUBranchBreakerCurrent                INTEGER,
-       xPDUBranchBreakerOverCurrentThreshold   INTEGER,
-       xPDUBranchBreakerUnderCurrentThreshold  INTEGER
-       }
-
-   xPDUBranchBreakerTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Index of branch breaker entries in the table."
-       ::= { xPDUBranchBreakerEntry 1 }
-
-   xPDUBranchBreakerRating OBJECT-TYPE
-       SYNTAX INTEGER (0..100)
-       ACCESS read-write
-       STATUS mandatory
-       DESCRIPTION
-          "Indicates current rating of this breaker.  
-           0=Breaker is not present.
-           1=Earth leakage connection.
-		   2=Neutral connection.
-           A value greater than 2 indicates breaker current rating in Amps."
-       ::= { xPDUBranchBreakerEntry 2 }
-
-   xPDUBranchBreakerRDPFeed OBJECT-TYPE
-       SYNTAX INTEGER  {
-          remoteDistribution   (1),
-          noRemoteDistribution (2)
-       } 
-       ACCESS read-write
-       STATUS mandatory
-       DESCRIPTION
-          "Indicates that a breaker position is feeding a remote 
-           distribution panel."
-       ::= { xPDUBranchBreakerEntry 3 }
-
-   xPDUBranchBreakerTieIndicator OBJECT-TYPE
-       SYNTAX INTEGER  {
-          breakerTied   (1),
-          breakerUntied (2)
-       } 
-       ACCESS read-write
-       STATUS mandatory
-       DESCRIPTION
-          "Indicates whether or not the breaker pole is physically 
-           connected to the breaker immediately below."
-       ::= { xPDUBranchBreakerEntry 4 }
-
-    xPDUBranchBreakerCurrent OBJECT-TYPE
-       SYNTAX INTEGER
-       ACCESS read-only
-       STATUS mandatory
-       DESCRIPTION
-          "Indicates the branch current in tenths of  Amps or -1 when not available."
-       ::= { xPDUBranchBreakerEntry 5 }
-
-    xPDUBranchBreakerOverCurrentThreshold OBJECT-TYPE
-       SYNTAX INTEGER (0..100)
-       ACCESS read-write
-       STATUS mandatory
-       DESCRIPTION
-          "Threshold above which a branch circuit over current 
-           condition will be generated. 
-           Specified as a percent of the branch breaker rating."
-       ::= { xPDUBranchBreakerEntry 6 }
-
-    xPDUBranchBreakerUnderCurrentThreshold OBJECT-TYPE
-       SYNTAX INTEGER (0..100)
-       ACCESS read-write
-       STATUS mandatory
-       DESCRIPTION
-          "Threshold below which a branch circuit under current 
-           condition will be generated. 
-           Specified as a percent of the branch breaker rating."
-       ::= { xPDUBranchBreakerEntry 7 }
-
--- the xPDUInputContacts group
-
-xPDUInputContactNumContacts OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts supported by the PDU."
-   ::= { xPDUInputContacts 1 }
-
-xPDUInputContactTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of input contact entries."
-   ::= { xPDUInputContacts 2 }
-
-xPDUInputContactTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF XPDUInputContactEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the PDU.
-       The number of entries is contained in the 
-       xPDUInputContactTableSize OID."
-   ::= { xPDUInputContacts 3 }
-
-xPDUInputContactEntry OBJECT-TYPE
-   SYNTAX XPDUInputContactEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A contact entry containing information for a given contact."
-   INDEX  { xPDUInputContactNumber }
-   ::= { xPDUInputContactTable 1 }
-
-XPDUInputContactEntry ::=
-   SEQUENCE {
-      xPDUInputContactNumber       INTEGER,
-      xPDUInputContactName         DisplayString,
-      xPDUInputContactNormalState  INTEGER,
-      xPDUInputContactCurrentState INTEGER
-   }
-
-xPDUInputContactNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An index identifying the contact on the PDU."
-   ::= { xPDUInputContactEntry 1 }
-
-xPDUInputContactName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The description of the purpose/use of the contact."
-   ::= { xPDUInputContactEntry 2 }
-
-xPDUInputContactNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      open    (1),
-      closed  (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The normal operating position of the contact."
-   ::= { xPDUInputContactEntry 3 }
-
-xPDUInputContactCurrentState OBJECT-TYPE
-   SYNTAX INTEGER {
-      open    (1),
-      closed  (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This value indicates the current state of the contact."
-   ::= { xPDUInputContactEntry 4 }
-
--- the xPDUOutputRelays group
-
-xPDUOutputRelaysNumRelays OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of output relays supported by the PDU."
-   ::= { xPDUOutputRelays 1 }
-
-xPDUOutputRelaysTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of output relay entries."
-   ::= { xPDUOutputRelays 2 }
-
-xPDUOutputRelayTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF XPDUOutputRelayEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of output relays supported by the PDU.
-       The number of entries is contained in the 
-       xPDUOutputRelayTableSize OID."
-   ::= { xPDUOutputRelays 3 }
-
-xPDUOutputRelayEntry OBJECT-TYPE
-   SYNTAX XPDUOutputRelayEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A output relay entry containing information for a given contact."
-   INDEX  { xPDUOutputRelayNumber }
-   ::= { xPDUOutputRelayTable 1 }
-
-XPDUOutputRelayEntry ::=
-   SEQUENCE {
-      xPDUOutputRelayNumber        INTEGER,
-      xPDUOutputRelayName          DisplayString,
-      xPDUOutputRelayNormalState   INTEGER,
-      xPDUOutputRelayCurrentState  INTEGER
-   }
-
-xPDUOutputRelayNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An index identifying the output relay on the PDU."
-   ::= { xPDUOutputRelayEntry 1 }
-
-xPDUOutputRelayName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The description of the purpose/use of the output relay."
-   ::= { xPDUOutputRelayEntry 2 }
-
-xPDUOutputRelayNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      open     (1),
-      closed   (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The normal operating position of the output relay."
-   ::= { xPDUOutputRelayEntry 3 }
-
-xPDUOutputRelayCurrentState OBJECT-TYPE
-   SYNTAX INTEGER {
-      open      (1),
-      closed    (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This value indicates the current state of the output relay."
-   ::= { xPDUOutputRelayEntry 4 }
-
--- the xPDUMiscGroup
-
-xPDUEPOMode OBJECT-TYPE
-    SYNTAX INTEGER  {
-        armed    (1),
-        disarmed (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether the EPO System is armed(1) or disarmed(2)."
-       ::= { xPDUMiscGroup 1 }
-
-xPDUTransformTempStatus OBJECT-TYPE
-    SYNTAX INTEGER  {
-        normal               (1),
-        overtemp             (2),
-		noTransformerPresent (3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates if the PDU's isolation transformer is over temperature."
-   ::= { xPDUMiscGroup 2 }
-
-xPDUCoolingFanStatus OBJECT-TYPE
-    SYNTAX INTEGER  {
-        normal                (1),
-        failed                (2),
-		noCoolingFansPresent  (3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates if one or more of the PDU's cooling fans have failed."
-   ::= { xPDUMiscGroup 3 }
-
--- The xATSIdent group
-
-xATSIdentProductName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the transfer switch unit."
-   ::= { xATSIdent 1 }
-
-xATSIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the transfer switch. 
-       This value is set at the factory."
-   ::= { xATSIdent 2 }
-
-xATSIdentFirmwareAppRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ID string identifying the application firmware revision of the  transfer switch." 
-   ::= {  xATSIdent 3 }
-
-xATSIdentFirmwareAppOSRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ID string identifying the application operating system firmware revision of the transfer switch." 
-   ::= {  xATSIdent 4 }
-
-xATSIdentFirmwareControllerRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ID string identifying the transfer switch controller firmware revision." 
-   ::= {  xATSIdent 5 }
-
-xATSIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the transfer switch was manufactured in mm/dd/yyyy format. 
-       This value is set at the factory." 
-   ::= { xATSIdent 6 }
-   
-xATSIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the model number of the transfer switch.
-       This value is set at the factory."
-   ::= { xATSIdent 7 }
-
-xATSIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the serial number of the transfer switch.
-        This value is set at the factory."
-   ::= { xATSIdent 8 }
-
---  The xATSDevice group
-
-xATSDeviceServiceType OBJECT-TYPE
-    SYNTAX INTEGER  {
-        threeWire  (1),
-        fourWire   (2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The type of utility input to the transfer switch.
-       Either 3 wires (delta), or 4 wires (wye)."
-   ::= { xATSDevice 1 }
-
-xATSDeviceNominalVoltage OBJECT-TYPE
-       SYNTAX     INTEGER 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-      "The nominal line-to-neutral system voltage.
-       Measured in Volts,  line-to-line for a 3-wire service or 
-       line-to-neutral for a 4-wire service. -1 if not available."
-   ::= { xATSDevice 2 }
-
-xATSDeviceNominalFrequency OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "The nominal system frequency. Measured in tenths of Hertz.
-       -1 if not available."
-   ::= { xATSDevice 3 }
-
-xATSDeviceTransferSwitchRating OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The rating of the transfer switch.
-       Measured in Amps."
-   ::= { xATSDevice 4 }
-
-xATSDeviceDCBackUpPresent OBJECT-TYPE
-   SYNTAX     INTEGER{
-      yes     (1),
-      no      (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates if a DC backup is present or not."
-   ::= { xATSDevice 5 }
-
--- The xATS Switch Status group
-
-xATSSwitchStatusSelectedSource OBJECT-TYPE
-   SYNTAX     INTEGER{
-      none         (1),
-      source1      (2),
-      source2      (3),
-      fault        (4),
-      unknown      (5)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The source which is currently selected, i.e. supplying power to the load."
-   ::= { xATSSwitchStatus 1 }
-   
-xATSSwitchStatusOperationalMode OBJECT-TYPE
-   SYNTAX     INTEGER{
-      automatic                 (1),
-      notInAutoAbnormal         (2),
-      notInAuto                 (3),
-      unknown                   (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current operating mode of the transfer switch. When the ATS is in
-       automatic mode, generator starting and ATS transferring is all done automatically
-       as needed based on the state of source 1.  Automatic operation is halted when the
-       ATS is in either of the notInAuto modes.
-       A mode of notInAuto indicates that the automatic operation switch is in the
-       disabled position, as indicated by the xATSSwitchStatusAutomaticOperationSwitch OID.
-       The notInAutoAbnormal condition indicates that an abnormal
-       condition has caused the transfer switch to halt automatic operation.
-       In this case, traps can indicate the exact problem. In the case of
-       notInAutoAbnormal, refer to the operation manual for details
-       on how debug the condition and restore automatic operation."
-   ::= { xATSSwitchStatus 2 }
-
-xATSSwitchStatusAutomaticOperationSwitch OBJECT-TYPE
-   SYNTAX     INTEGER{
-      disabled   (1),
-      enabled    (2),
-      unknown    (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The position of the automatic operation switch on the front of the transfer switch."
-   ::= { xATSSwitchStatus 3 }
-
-xATSSwitchStatusEngineStartSignal OBJECT-TYPE
-   SYNTAX     INTEGER{
-      run     (1),
-      stop    (2),
-      unknown (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The position of the Start/Stop contact which signals the generator
-       engine to start/run. When the ATS is in automatic mode,
-       generator starting/stopping is under ATS control."
-   ::= { xATSSwitchStatus 4 }
-
--- The xATS Switch Setting group
-
-xATSSwitchSettingsLowVoltageTransferPoint OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The lowest acceptable voltage condition at source 1. 
-       When any phase of source 1 is lower than this voltage,
-       source quality is considered bad and the generator run signal
-       is asserted to begin generator operation. 
-       Specified in volts,  line-to-line for a 3-wire service or 
-       line-to-neutral for a 4-wire service.
-       -1 if not available."
-   ::= { xATSSwitchSettings 1 }
-
-xATSSwitchSettingsHighVoltageTransferPoint OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The highest acceptable voltage condition at source 1. 
-       When any phase of source 1 is greater than this voltage,
-       source quality is considered bad and the generator run signal
-       is asserted to begin generator operation. 
-       Specified in volts,  line-to-line for a 3-wire service or 
-       line-to-neutral for a 4-wire service.
-       -1 if not available."
-   ::= { xATSSwitchSettings 2 }
-
-xATSSwitchSettingsMaxFrequencyDeviation OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum acceptable frequency deviation condition from nominal at source 1. 
-       When source 1 frequency is outside the specified range,
-       source quality is considered bad and the generator run signal
-       is asserted to begin generator operation. 
-       Specified in  tenths of Hertz above or below nominal.
-       A value of zero indicates that frequency is ignored when 
-       determining source quality.
-       -1 if not available."
-   ::= { xATSSwitchSettings 3 }
-
-xATSSwitchSettingsMinPhaseBalance OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The minimum required phase balance at source 1. 
-       When the percentage difference between the minimum and maximum 
-       phase voltage measurements at source 1 is greater than this value,
-       source quality is considered bad and the generator run signal
-       is asserted to begin generator operation.
-       Specified as a percentage. A value of zero indicates that phase balance
-        is ignored when determining source quality.
-       -1 if not available."
-   ::= { xATSSwitchSettings 4 }
-
-xATSSwitchSettingsNominalRotation OBJECT-TYPE
-   SYNTAX     INTEGER{
-      abc     (1),
-      cba     (2),
-      any     (3),
-      unknown (4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The nominal phase rotation (or phase sequence) required by the load.
-       For certain types of equipment, such as rotating machinery, phase rotation
-       is critical for proper operation as it determines the direction which motors
-       will rotate (clockwise or counterclockwise).
-       Source quality will be seen as bad if the rotation measured at that
-       ATS input does not match this setting.
-       If this setting is set to any, phase rotation is ignored."
-   ::= { xATSSwitchSettings 5 }
-
-xATSSwitchSettingsAllowClosedTransfer OBJECT-TYPE
-   SYNTAX INTEGER{
-      yes     (1),
-      no      (2),
-      unknown (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This setting enables seemless (closed) transfers between sources. 
-       When possible, both source 1 and source 2 are closed to the output 
-       for a brief time. If closed transfer is not possible within the amount
-       of time specified by the xATSSwitchSettingsMaxSyncTime OID,
-       an open transfer will be executed."
-   ::= { xATSSwitchSettings 6 }
-
-xATSSwitchSettingsMaxSyncTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "When attempting/seeking to perform a closed transfer, this setting defines
-       the maximum time allowed before the transfer switch will give up and perform
-       an open transfer. Specified in seconds.
-       -1 if not available."
-   ::= { xATSSwitchSettings 7 }
-
-xATSSwitchSettingsNeutralTransferTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This setting defines how long both source 1 and source 2 will be 
-       disconnected from the output, during an open transfer. 
-       Specified in seconds.
-       -1 if not available."
-   ::= { xATSSwitchSettings 8 }
-
-xATSSwitchSettingsClearLatchedAlarms OBJECT-TYPE
-   SYNTAX INTEGER{
-      yes        (1),
-      no         (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Clears any latched alarm conditions."
-   ::= { xATSSwitchSettings 9 }
-   
-xATSSwitchSettingsSetToFactoryDefaults OBJECT-TYPE
-   SYNTAX INTEGER{
-      yes        (1),
-      no         (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Sets all transfer switch settings to factory default values."
-   ::= { xATSSwitchSettings 10 }
-
-
--- The xATSSwitchTimers group
-
-   xATSSwitchTimersTableSize OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "The number of transfer switch timer entries."
-     ::= { xATSSwitchTimers 1 }
-
-   xATSSwitchTimersTable OBJECT-TYPE
-     SYNTAX SEQUENCE OF XATSSwitchTimersEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "A list of timers supported by ATS.
-         The number of entries is contained in the xATSSwitchTimersTableSize OID."
-     ::= { xATSSwitchTimers 2 }
-
-   xATSSwitchTimersEntry OBJECT-TYPE
-     SYNTAX XATSSwitchTimersEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "An entry containing information about an individual ATS timer."
-     INDEX  { xATSSwitchTimersIndex }
-     ::= { xATSSwitchTimersTable 1 }
-
-   XATSSwitchTimersEntry ::=
-     SEQUENCE {
-        xATSSwitchTimersIndex                INTEGER,
-        xATSSwitchTimersName                 DisplayString,
-        xATSSwitchTimersAbort                INTEGER,
-        xATSSwitchTimersStatus               INTEGER,
-        xATSSwitchTimersRemainingTime        INTEGER,
-        xATSSwitchTimersDelaySetting         INTEGER
-     }
-
-xATSSwitchTimersIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Index of timer entries in the table."
-   ::= { xATSSwitchTimersEntry 1 }
-
-xATSSwitchTimersName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Name of the individual timer.Refer to ATS operation manual,
-       or on-line help, for detailed descriptions of ATS timers."
-   ::= { xATSSwitchTimersEntry 2 }
-
-xATSSwitchTimersAbort OBJECT-TYPE
-   SYNTAX INTEGER{
-      yes  (1),
-      no   (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This aborts the individual timer."
-   ::= { xATSSwitchTimersEntry 3 }
-
-xATSSwitchTimersStatus OBJECT-TYPE
-   SYNTAX INTEGER{
-      inactive  (1),
-      active    (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the individual timer. Designates whether this timer
-       entry is currently running or inactive."
-   ::= { xATSSwitchTimersEntry 4 }
-   
-xATSSwitchTimersRemainingTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The time remaining for this timer entry.
-       Specified in seconds."
-   ::= { xATSSwitchTimersEntry 5 }
-
-xATSSwitchTimersDelaySetting OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The delay settings associated with this timer entry.
-       When this timer entry is active, the timer value must exceed this setting
-       before the ATS behavior associated with this timer is executed.
-       Refer to ATS operation manual, or on-line help, for detailed 
-       descriptions of ATS timers."
-   ::= { xATSSwitchTimersEntry 6 }
-
--- The xATSSwitchBlockMap group
-
-   xATSSwitchBlockMapTableSize OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "The number of blocking map entries, or how many ATS actions can be blocked."
-     ::= { xATSSwitchBlockMap 1 }
-
-   xATSSwitchBlockMapTable OBJECT-TYPE
-     SYNTAX SEQUENCE OF XATSSwitchBlockMapEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "A list of blocking maps supported by the ATS.
-         The number of entries is contained in the xATSSwitchBlockMapTableSize OID."
-     ::= { xATSSwitchBlockMap 2 }
-
-   xATSSwitchBlockMapEntry OBJECT-TYPE
-     SYNTAX XATSSwitchBlockMapEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "An entry containing information about a specific ATS blocking map."
-     INDEX  { xATSSwitchBlockMapIndex }
-     ::= { xATSSwitchBlockMapTable 1 }
-
-   XATSSwitchBlockMapEntry ::=
-     SEQUENCE {
-        xATSSwitchBlockMapIndex            INTEGER,
-        xATSSwitchBlockMapName             DisplayString,
-        xATSSwitchBlockMapStatus           INTEGER,
-        xATSSwitchBlockMapSetting          INTEGER
-    }
-
-   xATSSwitchBlockMapIndex OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "Index of blocking map entries in the table."
-     ::= { xATSSwitchBlockMapEntry 1 }
-
-   xATSSwitchBlockMapName OBJECT-TYPE
-     SYNTAX DisplayString
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "A string describing the ATS action to be blocked."
-     ::= { xATSSwitchBlockMapEntry 2 }
-     
-   xATSSwitchBlockMapStatus OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-       "Represents the status of this blocking map entry, in bit-mapped format.
-        A non-zero value indicates that this entry's ATS action is currently being blocked.
-        The bit(s) set indicate which input(s) are causing the blocking (bit0, bit1, etc).
-
-        bit 0 - Contact 1
-        bit 1 - Contact 2
-        bit 2 - Contact 3
-        bit 3 - Contact 4."
-     ::= { xATSSwitchBlockMapEntry 3 }
-
-   xATSSwitchBlockMapSetting OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-write
-     STATUS mandatory
-     DESCRIPTION
-       "This setting designates the inputs that block the ATS action
-        The mapping is specified as a bit-field, where each bit set indicates
-        the input that blocks the ATS action associated with the entry.
-
-        bit 0 - Contact 1
-        bit 1 - Contact 2
-        bit 2 - Contact 3
-        bit 3 - Contact 4."
-     ::= { xATSSwitchBlockMapEntry 4 }
-
--- The xATSSwitchStatistics group
-
-   xATSSwitchStatisticsTableSize OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "The number of transfer switch statistics entries."
-     ::= { xATSSwitchStatistics 1 }
-
-   xATSSwitchStatisticsTable OBJECT-TYPE
-     SYNTAX SEQUENCE OF XATSSwitchStatisticsEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "A list of statistics supported by ATS.
-         The number of entries is contained in the xATSSwitchStatisticsTableSize OID."
-     ::= { xATSSwitchStatistics 2 }
-
-   xATSSwitchStatisticsEntry OBJECT-TYPE
-     SYNTAX XATSSwitchStatisticsEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "An entry containing information about an individual ATS statistic."
-     INDEX  { xATSSwitchStatisticsIndex }
-     ::= { xATSSwitchStatisticsTable 1 }
-
-   XATSSwitchStatisticsEntry ::=
-     SEQUENCE {
-        xATSSwitchStatisticsIndex             INTEGER,
-        xATSSwitchStatisticsName              DisplayString,
-        xATSSwitchStatisticsValue             DisplayString,
-        xATSSwitchStatisticsReset             INTEGER
-     }
-
-   xATSSwitchStatisticsIndex OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "Index of ATS statistics entries in the table."
-     ::= { xATSSwitchStatisticsEntry 1 }
-
-   xATSSwitchStatisticsName OBJECT-TYPE
-     SYNTAX     DisplayString
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-       "This is the name of the ATS statistic associated with this entry."
-     ::= { xATSSwitchStatisticsEntry 2 }
-
-   xATSSwitchStatisticsValue OBJECT-TYPE
-     SYNTAX     DisplayString
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-       "This is the value of the ATS statistic associated with this entry."
-     ::= { xATSSwitchStatisticsEntry 3 }
-
-   xATSSwitchStatisticsReset OBJECT-TYPE
-     SYNTAX INTEGER{
-       yes   (1),
-       no    (2)
-     }
-     ACCESS read-write
-     STATUS mandatory
-     DESCRIPTION
-       "This will reset the individual ATS statistic associated with this entry."
-     ::= { xATSSwitchStatisticsEntry 4 }
-
--- The xATS Source 1 group
-
-xATSSource1Name OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "String used to identify source 1."
-   ::= { xATSSource1 1 }
-
-xATSSource1Position OBJECT-TYPE
-   SYNTAX INTEGER{
-      open     (1),
-      closed   (2),
-      tripped  (3),
-      unknown  (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current position of the switch at source 1."
-   ::= { xATSSource1 2 }
-
-xATSSource1Frequency OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frequency at source 1 in tenths of Hertz.
-       -1 if unavailable."
-   ::= { xATSSource1 3 }
-
-xATSSource1Quality OBJECT-TYPE
-   SYNTAX INTEGER{
-      sourceGood        (1),
-      lowVoltage        (2),
-      highVoltage       (3),
-      phaseImbalance    (4),
-      freqOutOfRange    (5),
-      badRotation       (6),
-      unknown           (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current line quality of source 1."
-   ::= { xATSSource1 4 }
-
-xATSSource1Rotation OBJECT-TYPE
-   SYNTAX INTEGER{
-      abc     (1),
-      cba     (2),
-      unknown (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The phase rotation measured at the source 1 input of the ATS.
-       The sequence is a reference to the order in which the three phases 
-       pass the zero-crossing boundary in time."
-   ::= { xATSSource1 5 }
-
-xATSSource1TableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of input voltage entries at the source 1 input of the ATS."
-   ::= { xATSSource1 6 }
-
-   xATSSource1Table OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XATSSource1PhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of voltage table entries for source 1. The number of 
-           entries are the phase entries. The number of entries is contained in the 
-           xATSSource1TableSize OID."
-       ::= { xATSSource1 7 }
-
-   xATSSource1PhaseEntry OBJECT-TYPE
-       SYNTAX     XATSSource1PhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a
-           particular input voltage phase at the source 1 input of the ATS."
-       INDEX { xATSSource1Index }
-       ::= { xATSSource1Table 1 }
-
-   XATSSource1PhaseEntry ::= SEQUENCE {
-       xATSSource1Index        INTEGER,
-       xATSSource1VoltageLtoL  INTEGER,
-       xATSSource1VoltageLtoN  INTEGER
-      }
-
-   xATSSource1Index OBJECT-TYPE
-       SYNTAX INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each phase utilized at source 1."
-       ::= { xATSSource1PhaseEntry 1 }
-
-   xATSSource1VoltageLtoL OBJECT-TYPE
-       SYNTAX INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Source 1 line-to-line input voltage. 
-           Measured in tenths of Volts."
-       ::= { xATSSource1PhaseEntry 2 }
-
-   xATSSource1VoltageLtoN OBJECT-TYPE
-       SYNTAX INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Source 1 line-to-neutral input voltage. 
-           Measured in tenths of Volts. -1 for a 3-wire service type."
-   ::= { xATSSource1PhaseEntry 3 }
-
--- The xATS Source 2 group
-
-xATSSource2Name OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "String used to identify source 2."
-   ::= { xATSSource2 1 }
-
-xATSSource2Position OBJECT-TYPE
-   SYNTAX INTEGER{
-      open     (1),
-      closed   (2),
-      tripped  (3),
-      unknown  (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current position of the switch at source 2."
-   ::= { xATSSource2 2 }
-
-xATSSource2Frequency OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frequency at source 2 in tenths of Hertz.
-       -1 if not available."
-   ::= { xATSSource2 3 }
-
-xATSSource2Quality OBJECT-TYPE
-   SYNTAX INTEGER{
-      sourceGood        (1),
-      lowVoltage        (2),
-      highVoltage       (3),
-      phaseImbalance    (4),
-      freqOutOfRange    (5),
-      badRotation       (6),
-      unknown           (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current line quality of source 2."
-   ::= { xATSSource2 4 }
-
-xATSSource2Rotation OBJECT-TYPE
-   SYNTAX INTEGER{
-      abc     (1),
-      cba     (2),
-      unknown (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The phase rotation measured at the source 2 input of the ATS.
-       -1 if not available."
-   ::= { xATSSource2 5 }
-
-xATSSource2TableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of input voltage entries at the source 2 input of the ATS."
-   ::= { xATSSource2 6 }
-
-   xATSSource2Table OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XATSSource2PhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "A list of voltage table entries for the source 2. The number of
-           entries are the phase entries. The number of entries is contained in the
-           xATSSource2TableSize OID."
-       ::= { xATSSource2 7 }
-
-   xATSSource2PhaseEntry OBJECT-TYPE
-       SYNTAX     XATSSource2PhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a
-           particular input voltage phase at the source 2 input of the ATS."
-       INDEX { xATSSource2Index }
-       ::= { xATSSource2Table 1 }
-
-   XATSSource2PhaseEntry ::= SEQUENCE {
-       xATSSource2Index        INTEGER,
-       xATSSource2VoltageLtoL  INTEGER,
-       xATSSource2VoltageLtoN  INTEGER
-      }
-
-   xATSSource2Index OBJECT-TYPE
-       SYNTAX INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each phase utilized at the source 2."
-       ::= { xATSSource2PhaseEntry 1 }
-
-   xATSSource2VoltageLtoL OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Source 2 line-to-line input voltage. 
-           Measured in tenths of Volts."
-       ::= { xATSSource2PhaseEntry 2 }
-
-   xATSSource2VoltageLtoN OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Source 2 line-to-neutral input voltage. 
-           Measured in tenths of Volts. -1 for a 3-wire service type."
-   ::= { xATSSource2PhaseEntry 3 }
-
--- The xATSSystemOutput
-
-xATSSystemOutputFrequency OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "The system output frequency in tenths of Hertz."
-   ::= { xATSSystemOutput 1 }
-
-xATSSystemOutputTotalPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the total system output power in tenths of kW."
-   ::= { xATSSystemOutput 2 }
-
-xATSSystemOutputTotalApparentPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the total system output power in tenths of kVA."
-   ::= { xATSSystemOutput 3 }
-
-xATSSystemOutputTotalPowerFactor OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates the total power factor of the system output.
-       A value of 100 representing a unity power factor (1.00)
-       Specified in hundredths."
-   ::= { xATSSystemOutput 4 }
-
-xATSSystemOutputFrequencyTolerance OBJECT-TYPE
-   SYNTAX     INTEGER{
-      freqToleranceOff              (1),
-      freqTolerancePointTwo         (2),
-      freqTolerancePointFive        (3),
-      freqToleranceOne              (4),
-      freqToleranceOnePointFive     (5),
-      freqToleranceTwo              (6),
-      freqToleranceThree            (7),
-      freqToleranceFour             (8),
-      freqToleranceFive             (9),
-      freqToleranceNine             (10)
-
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Shows the panel output frequency tolerance in +/- Hertz."
-   ::= { xATSSystemOutput 5 }
-
-xATSSystemOutputOverVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which an output over voltage condition will be generated. 
-       Specified as tenths of percent deviation from nominal.
-       A value of zero indicates that the threshold is disabled."
-   ::= { xATSSystemOutput 6 }
-
-xATSSystemOutputUnderVoltThreshold OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which an output under voltage condition will be generated. 
-       Specified as tenths of percent deviation from nominal.
-       A value of zero indicates that the threshold is disabled."
-   ::= { xATSSystemOutput 7 }
-
-xATSSystemOutputOverCurrentThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold above which an over current condition will be generated. 
-       Specified as a percent of the transfer switch rating (xATSDeviceTransferSwitchRating OID).
-       A value of zero indicates that the threshold is disabled."
-   ::= { xATSSystemOutput 8 }
-
-xATSSystemOutputUnderCurrentThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which an under current condition will be generated. 
-       Specified as a percent of the transfer switch rating (xATSDeviceTransferSwitchRating OID).
-       A value of zero indicates that the threshold is disabled."
-   ::= { xATSSystemOutput 9 }
-
-xATSSystemOutputAlarmDelayThreshold OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Delay the generation of an output alarm.
-       Specified in seconds."
-   ::= { xATSSystemOutput 10 }
-
-xATSSystemOutputTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of system output phase entries."
-   ::= { xATSSystemOutput 11 }
-   
-xATSSystemOutputTable OBJECT-TYPE
-   SYNTAX     SEQUENCE OF XATSSystemOutputPhaseEntry
-   ACCESS     not-accessible
-   STATUS     mandatory
-   DESCRIPTION
-      "A list of system output table entries.
-       The number of entries is contained in the xATSSystemOutputTableSize OID."
-   ::= { xATSSystemOutput 12 }
-
-   xATSSystemOutputPhaseEntry OBJECT-TYPE
-       SYNTAX     XATSSystemOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular system output phase."
-       INDEX { xATSSystemOutputPhaseIndex }
-       ::= { xATSSystemOutputTable 1 }
-
-   XATSSystemOutputPhaseEntry ::= SEQUENCE {
-       xATSSystemOutputPhaseIndex      INTEGER,
-       xATSSystemOutputVoltageLtoL     INTEGER,
-       xATSSystemOutputVoltageLtoN     INTEGER,
-       xATSSystemOutputPhaseCurrent    INTEGER,
-       xATSSystemOutputPower           INTEGER,
-       xATSSystemOutputApparentPower   INTEGER,
-       xATSSystemOutputPowerFactor     INTEGER
-      }
-
-   xATSSystemOutputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each system output phase utilized in this device."
-       ::= { xATSSystemOutputPhaseEntry 1 }
-
-   xATSSystemOutputVoltageLtoL OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-line system output voltage, measured in tenths of Volts, available at the circuit panel. 
-           -1 if not available."
-       ::= { xATSSystemOutputPhaseEntry 2 }
-
-   xATSSystemOutputVoltageLtoN OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-neutral system output voltage, measured in tenths of Volts, available at the circuit panel. 
-           -1 for a 3-wire service type or if not available."
-       ::= { xATSSystemOutputPhaseEntry 3 }
-
-   xATSSystemOutputPhaseCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "System load current per phase. Measured in Amps.
-           -1 if not available."
-       ::= { xATSSystemOutputPhaseEntry 4 }
-
-   xATSSystemOutputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "System output power per phase. Measured in tenths of kW."
-       ::= { xATSSystemOutputPhaseEntry 5 }
-
-   xATSSystemOutputApparentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "system output power per phase. Measured in tenths of kVA."
-       ::= { xATSSystemOutputPhaseEntry 6 }
-
-   xATSSystemOutputPowerFactor OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "indicates the power factor of the system output per phase.
-           A value of 100 representing a unity power factor (1.00).
-           Measured in hundredths."
-       ::= { xATSSystemOutputPhaseEntry 7 }
-
--- xATS TestingStatus group
-
-xATSTestingStatusSelectTestProcess OBJECT-TYPE
-   SYNTAX INTEGER {
-      engineStartTest      (1),
-      systemLoadTest       (2),
-      generatorHoldTest    (3),
-      cancelTest           (4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Type of tests that can be selected when no test has been scheduled.
-       engineStartTest and systemLoadTest may be selected when no tests 
-       are running.  Tests that are selected may be cancelled manually."
-   ::= { xATSTestingStatus 1 }
-   
-xATSTestingStatusTestStatus OBJECT-TYPE
-     SYNTAX INTEGER {
-        noTestInProcess           (1),
-        testPending               (2),
-        startingEngine            (3),
-        engineWarmingUp           (4),
-        awaitingTransferToS2      (5),
-        testingWithLoad           (6),
-        awaitingRetransferToS1    (7),
-        testingWithoutLoad        (8),
-        stoppingEngine            (9),
-        holdingOnGenerator        (10)
-     }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The present system test status/state."
-   ::= { xATSTestingStatus 2 }
-
-xATSTestingStatusProfileWarmupTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time that the generator will warm up during a test.
-       This is portion of the test when the xATSTestingStatusTestStatus 
-       OID returns the value engineWarmingUp.
-       Specified in seconds."
-   ::= { xATSTestingStatus 3 }
-
-xATSTestingStatusProfileLoadedTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time that ATS will apply the system load to the generator
-       during a system load test.
-       This is portion of the test when the xATSTestingStatusTestStatus 
-       OID returns the value testingWithLoad.
-       Specified in minutes."
-   ::= { xATSTestingStatus 4 }
-
-xATSTestingStatusProfileUnloadedTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time that the generator will run following the warm up 
-       portion of a start test, or the loaded portion of a load test.
-       This is portion of the test when the xATSTestingStatusTestStatus 
-       OID returns the value testingWithoutLoad.
-       Specified in seconds."
-   ::= { xATSTestingStatus 5 }
-
--- xATS TestingResults group
-
-xATSTestingResultsLastDateOfTest OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Date of the last test that was performed, either scheduled or manual.
-       Test results are available in the xATSTestingResultsLastResult OID.
-       Specified in the dd/mm/yyyy format, or 'none' if not available."
-   ::= { xATSTestingResults 1 }
-
-xATSTestingResultsLastResult OBJECT-TYPE
-   SYNTAX INTEGER {
-      startTestPassed           (1),
-      loadTestPassed            (2),
-      startSignalFailure        (3),
-      failedGenNotInAuto        (4),
-      failedGenEmerStop         (5),
-      failedGenShutdown         (6),
-      failedGenDidNotStart      (7),
-      failedS2NeverGood         (8),
-      genFailedDuringWarmup     (9),
-      failureOnXferToS1         (10),
-      genFailedLoaded           (11),
-      failureOnRexferToS2       (12),
-      genFailedToStop           (13),
-      failedAtsInternalFault    (14),
-      failedAtsNotInAuto        (15),
-      cancelledManualTest       (16),
-	  cancelledScheduledTest    (17)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The result of the last ATS/generator system test."
-   ::= { xATSTestingResults 2 }
-
-xATSTestingResultsTestLastTestTime OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Time of day at which the last test was performed, either scheduled or manual. 
-       Test results are available in the xATSTestingResultsLastResult OID.
-       Specified in the hh:mm:ss format, or 'none' if not available."
-   ::= { xATSTestingResults 3 }
-
-xATSTestingResultsLastCrankDuration OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The time spent cranking the generator before it started during the last test.
-       Specified in seconds, or -1 if not available."
-   ::= { xATSTestingResults 4 }
-   
-xATSTestingResultsLastWarmupDuration OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The time spent in the engineWarmingUp state during the last system test.
-       Specified in seconds, or -1 if not available."
-   ::= { xATSTestingResults 5 }
-
-xATSTestingResultsLastLoadedDuration OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The time spent in the testingWithLoad state during the last system test.
-       Specified in seconds, or -1 if not available."
-   ::= { xATSTestingResults 6 }
-
-xATSTestingResultsLastUnloadedDuration OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The time spent in the testingWithoutLoad state during the last system test.
-       Specified in seconds, or -1 if not available."
-   ::= { xATSTestingResults 7 }
-
--- xATS TestingSchedule group
-
-xATSTestingScheduleFrequency OBJECT-TYPE
-    SYNTAX INTEGER  {
-        never   (1),
-        daily   (2),
-        weekly  (3),
-        monthly (4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The frequency of running scheduled tests."
-   ::= { xATSTestingSchedule 1 }
-
-xATSTestingScheduleTestDay OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The desired day for the scheduled test. This object applies only
-       when the xATSTestingScheduleFrequency OID is set to weekly or monthly.
-       For weekly test frequency, the string is the day the test will be run.
-       For monthly test frequency, the string indicates the day, 
-       and the instance within the month.
-       For example, for monthly frequency: 2nd sunday, 3rd monday, 4th tuesday,
-                    for weekly frequency: sunday, monday, tuesday."
-   ::= { xATSTestingSchedule 2 }
-
-xATSTestingScheduleTestTime OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The time of day that the scheduled test will occur.
-       Specified in the format hh:mm."
-   ::= { xATSTestingSchedule 3 }
-
-xATSTestingScheduleTestWithLoadInterval OBJECT-TYPE
-   SYNTAX INTEGER {
-      applyLoadEveryTest          (1),
-      neverApplyLoad              (2),
-      applyLoadMonthly            (3),
-      applyLoadMonthlyDetailed    (4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This setting specifies which system tests should include applying the
-       load to the generator. The applyLoadMonthlyDetailed entry
-       in the list will apply load once, for each month represented in the
-       xATSTestingScheduleTestWithLoadSelectMonth OID."
-   ::= { xATSTestingSchedule 4 }
-
-xATSTestingScheduleTestWithLoadSelectMonth OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The detailed selection for testing with load on a month-by-month basis.
-       This object is applicable when the xATSTestingScheduleTestWithLoadInterval
-       is set to applyLoadMonthlyDetailed. Otherwise this selection will be ignored.
-       Format for this string is a comma-separated entry of months.
-       For example: Jan,Mar,Dec.
-       The string will return 'No Months Scheduled' if no months have been selected."
-   ::= { xATSTestingSchedule 5 }
-
-xATSTestingScheduleNextTestDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date of the next scheduled test, in the format dd-mmm-yyyy."
-   ::= { xATSTestingSchedule 6 }
-
--- xATSTestingSimulatePowerFail group
-
-xATSTestingSimulatePowerFailTest OBJECT-TYPE
-   SYNTAX     INTEGER{
-      cancelSimulation         (1),
-      fiveSecondsSimulation    (2),
-      tenSecondsSimulation     (3),
-      thirtySecondsSimulation  (4),
-      oneMinuteSimulation      (5),
-      threeMinutesSimulation   (6),
-      fiveMinutesSimulation    (7),
-      tenMinutesSimulation     (8)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This object executes a simulated power failure for the duration indicated.
-       Simulation can be aborted by selecting cancelSimulation."
-   ::= { xATSTestingSimulatePowerFail 1 }
-
-xATSTestingSimulatePowerFailTimeRemaining OBJECT-TYPE
-   SYNTAX  INTEGER
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "Indicates the time remaining in seconds, for a simulated power failure.
-       a value of zero indicates that simulated power failure is not active."
-   ::= { xATSTestingSimulatePowerFail 2 }
-
--- The xATS Input Contact group
-
-xATSInputContactNumContacts OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts supported by the ATS."
-   ::= { xATSInputContacts 1 }
-
-xATSInputContactTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of input contact entries."
-   ::= { xATSInputContacts 2 }
-
-xATSInputContactTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF XATSContactEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the ATS.
-       The number of entries is contained in the 
-       xATSInputContactTableSize OID."
-   ::= { xATSInputContacts 3 }
-
-   xATSInputContactEntry OBJECT-TYPE
-      SYNTAX XATSContactEntry
-      ACCESS not-accessible
-      STATUS mandatory
-      DESCRIPTION
-         "A contact entry containing information for a given contact."
-      INDEX  { xATSInputContactNumber }
-      ::= { xATSInputContactTable 1 }
-
-   XATSContactEntry ::=
-      SEQUENCE {
-         xATSInputContactNumber    INTEGER,
-         xATSInputContactName      DisplayString,
-         xATSInputContactNormalState           INTEGER,
-         xATSInputContactCurrentState          INTEGER
-      }
-
-   xATSInputContactNumber OBJECT-TYPE
-      SYNTAX INTEGER
-      ACCESS read-only
-      STATUS mandatory
-      DESCRIPTION
-         "An index identifying the contact on the ATS."
-      ::= { xATSInputContactEntry 1 }
-
-   xATSInputContactName OBJECT-TYPE
-     SYNTAX DisplayString
-     ACCESS read-write
-     STATUS mandatory
-     DESCRIPTION
-        "The description of the purpose/use of the contact."
-     ::= { xATSInputContactEntry 2 }
-
-   xATSInputContactNormalState OBJECT-TYPE
-     SYNTAX INTEGER {
-        open   (1),
-        closed (2)
-     }
-     ACCESS read-write
-     STATUS mandatory
-     DESCRIPTION
-        "The normal operating position of the contact."
-     ::= { xATSInputContactEntry 3 }
-
-   xATSInputContactCurrentState OBJECT-TYPE
-     SYNTAX INTEGER {
-        open   (1),
-        closed (2)
-     }
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "This value indicates the current state of the contact."
-     ::= { xATSInputContactEntry 4 }
-
--- the xATS OutputRelays group
-
-   xATSOutputRelayNumRelays OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "The number of output relays supported by the ATS."
-     ::= { xATSOutputRelays 1 }
-
-   xATSOutputRelayTableSize OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "The number of output relay entries."
-     ::= { xATSOutputRelays 2 }
-
-   xATSOutputRelayTable OBJECT-TYPE
-     SYNTAX SEQUENCE OF XATSOutputRelayEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "A list of output relays supported by the ATS.
-        The number of entries is contained in the 
-        xATSOutputRelayTableSize OID."
-     ::= { xATSOutputRelays 3 }
-
-   xATSOutputRelayEntry OBJECT-TYPE
-     SYNTAX XATSOutputRelayEntry
-     ACCESS not-accessible
-     STATUS mandatory
-     DESCRIPTION
-        "A output relay entry containing information for a given contact."
-     INDEX  { xATSOutputRelayNumber }
-     ::= { xATSOutputRelayTable 1 }
-
-   XATSOutputRelayEntry ::=
-     SEQUENCE {
-        xATSOutputRelayNumber           INTEGER,
-        xATSOutputRelayName             DisplayString,
-        xATSOutputRelayNormalState      INTEGER,
-        xATSOutputRelayCurrentState     INTEGER
-     }
-
-   xATSOutputRelayNumber OBJECT-TYPE
-     SYNTAX INTEGER
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-        "An index identifying the output relay on the ATS."
-     ::= { xATSOutputRelayEntry 1 }
-
-   xATSOutputRelayName OBJECT-TYPE
-     SYNTAX DisplayString
-     ACCESS read-write
-     STATUS mandatory
-     DESCRIPTION
-       "The description of the purpose/use of the output relay."
-     ::= { xATSOutputRelayEntry 2 }
-
-   xATSOutputRelayNormalState OBJECT-TYPE
-     SYNTAX INTEGER {
-        open   (1),
-        closed (2)
-     }
-     ACCESS read-write
-     STATUS mandatory
-     DESCRIPTION
-       "The normal operating position of the output relay."
-     ::= { xATSOutputRelayEntry 3 }
-
-   xATSOutputRelayCurrentState OBJECT-TYPE
-     SYNTAX INTEGER {
-        open   (1),
-        closed (2)
-     }
-     ACCESS read-only
-     STATUS mandatory
-     DESCRIPTION
-       "This value indicates the current state of the output relay."
-     ::= { xATSOutputRelayEntry 4 }
-
--- The xATS Generator Ident group
-
-xATSGeneratorIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the model number of the generator. 
-       This value is set at the factory."
-   ::= { xATSGeneratorIdent 1 }
-
-xATSGeneratorIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the serial number of the generator. 
-       This value is set at the factory."
-   ::= { xATSGeneratorIdent 2 }
-
-xATSGeneratorIdentDateofManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying when the generator was manufactured in mm/dd/yyyy format. 
-       This value is set at the factory."
-   ::= { xATSGeneratorIdent 3 }
-
-xATSGeneratorIdentVoltageConfiguration OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The voltage for which the generator's alternator is designed.
-       Specified in Volts line-to-line."
-   ::= { xATSGeneratorIdent 4 }
-
-xATSGeneratorIdentMaxPowerRating OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The max power rating of the generator. Specified in kW."
-   ::= { xATSGeneratorIdent 5 }
-
-xATSGeneratorIdentAlternatorFrequency OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frequency for which the generator's alternator is designed.
-       Specified in Hertz."
-   ::= { xATSGeneratorIdent 6 }
-
--- The xATS Generator Status group
-
-xATSGeneratorStatusGeneratorName OBJECT-TYPE
-   SYNTAX     DisplayString
-   ACCESS     read-write
-   STATUS     mandatory
-   DESCRIPTION
-       "The name or label for the generator connected to the source 2 of the ATS."
-   ::= { xATSGeneratorStatus 1 }
-   
-xATSGeneratorStatusOperational OBJECT-TYPE
-   SYNTAX     INTEGER{
-      nocomm         (1),
-      off            (2),
-      ready          (3),
-      starting       (4),
-      idle           (5),
-      running        (6),
-      normalStop     (7),
-      emergencyStop  (8),
-      notInAuto      (9),
-      shutdown       (10),
-      unknown        (11)
-   }
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-       "The operational status of the generator. unavailable when unrecognized status is received."
-   ::= { xATSGeneratorStatus 2 }
-
-xATSGeneratorStatusModeSwitchPosition OBJECT-TYPE
-   SYNTAX     INTEGER{
-      off        (1),
-      manual     (2),
-      automatic  (3),
-      unknown    (4)
-   }
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-       "The position of the generator's auto-mode switch.
-        In automatic mode, the generator is started and stopped via the
-        remote start contact, which has state indicated in the
-        xATSGeneratorStatusRemoteStart OID.
-        In manual mode generator start/stop control is via local command only.
-        Off prevents the generator from running."
-   ::= { xATSGeneratorStatus 3 }
-
-xATSGeneratorStatusRemoteStart OBJECT-TYPE
-   SYNTAX INTEGER{
-      stop     (1),
-      run      (2),
-      unknown  (3)
-   }
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-       "The status of the generator's remote start contact, which is 
-        provided as an output from the transfer switch to start/stop the 
-        generator when in automatic mode."
-   ::= { xATSGeneratorStatus 4 }
-
--- The xATS Generator Advanced Status group
-
-xATSGeneratorAdvStatusBatteryVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The voltage of the generator's starting battery.
-       Measured in tenths of VDC, or -1 if not available."
-   ::= { xATSGeneratorAdvStatus 1 }
-
-xATSGeneratorAdvStatusOilPressure OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The generator's engine oil pressure.
-       Measured in tenths of Psi or kPa, based on the
-       value of the xATSGeneratorSettingsMetricUnit OID,
-       or -1 if not available."
-   ::= { xATSGeneratorAdvStatus 2 }
-
-xATSGeneratorAdvStatusCoolantTemperature OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Current coolant temperature in the generator.
-       Measured in degrees Celsius or Fahrenheit, based on the
-       value of the xATSGeneratorSettingsMetricUnit OID,
-       or -1 if not available."
-   ::= { xATSGeneratorAdvStatus 3 }
-
-xATSGeneratorAdvStatusEngineRPM OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Current engine speed of the generator. 
-       Measured in RPM, or -1 if not available."
-   ::= { xATSGeneratorAdvStatus 4 }
-
-xATSGeneratorAdvStatusOilLevel OBJECT-TYPE
-   SYNTAX     INTEGER{
-      ok        (1),
-      low       (2),
-      unknown   (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates adequate oil level in the generator."
-   ::= { xATSGeneratorAdvStatus 5 }
-
-xATSGeneratorAdvStatusCoolantLevel OBJECT-TYPE
-   SYNTAX     INTEGER{
-      ok         (1),
-      low        (2),
-      unknown    (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates adequate coolant level in the generator."
-   ::= { xATSGeneratorAdvStatus 6 }
-
--- The xATS Generator Output group
-
-xATSGeneratorOutputFrequency OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The output frequency of the generator.
-       Measured in tenths of Hertz, or -1 if not avaialble."
-   ::= { xATSGeneratorOutput 1 }
-
-xATSGeneratorOutputTotalPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total output power of the generator.
-       Measured in tenths of tenths of kW, or -1 if not avaialble."
-   ::= { xATSGeneratorOutput 2 }
-
-xATSGeneratorOutputTotalApparentPower OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total output power of the generator.
-       Measured in tenths of kVA, or -1 if not avaialble."
-   ::= { xATSGeneratorOutput 3 }
-   
-xATSGeneratorOutputTotalPowerFactor OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-          "Indicates the total load power factor of the generator.
-           A value of 100 representing a unity power factor (1.00),
-           or -1 when if not avaialble."
-   ::= { xATSGeneratorOutput 4 }
-   
-xATSGeneratorOutputTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of generator output phase entries."
-   ::= { xATSGeneratorOutput 5 }
-
-   xATSGeneratorOutputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF XATSGeneratorOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-      "A list of generator output table entries.
-       The number of entries is contained in the xATSGeneratorOutputTableSize OID."
-       ::= { xATSGeneratorOutput 6 }
-
-   xATSGeneratorOutputPhaseEntry OBJECT-TYPE
-       SYNTAX     XATSGeneratorOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-          "An entry containing information applicable to a 
-           particular generator output phase."
-       INDEX { xATSGeneratorOutputPhaseIndex }
-       ::= { xATSGeneratorOutputTable 1 }
-
-   XATSGeneratorOutputPhaseEntry ::= SEQUENCE {
-       xATSGeneratorOutputPhaseIndex      INTEGER,
-       xATSGeneratorOutputVoltageLtoL     INTEGER,
-       xATSGeneratorOutputVoltageLtoN     INTEGER,
-       xATSGeneratorOutputPhaseCurrent    INTEGER,
-       xATSGeneratorOutputPower           INTEGER,
-       xATSGeneratorOutputApparentPower   INTEGER,
-       xATSGeneratorOutputPowerFactor     INTEGER
-      }
-
-   xATSGeneratorOutputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Description of each generator output phase utilized in this device."
-       ::= { xATSGeneratorOutputPhaseEntry 1 }
-
-   xATSGeneratorOutputVoltageLtoL OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-line generator output voltage. 
-           Measured in Volts, or -1 if not available."
-       ::= { xATSGeneratorOutputPhaseEntry 2 }
-
-   xATSGeneratorOutputVoltageLtoN OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Line-to-neutral generator output voltage. 
-           Measured in volts, or -1 if not avaialble."
-       ::= { xATSGeneratorOutputPhaseEntry 3 }
-
-   xATSGeneratorOutputPhaseCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Generator load current per phase.
-           Measured in Amps, or -1 if not avaialble."
-       ::= { xATSGeneratorOutputPhaseEntry 4 }
-
-   xATSGeneratorOutputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Generator output power per phase. 
-           Measured in tenths of kW, or -1 if not avaialble."
-       ::= { xATSGeneratorOutputPhaseEntry 5 }
-
-   xATSGeneratorOutputApparentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Generator output power per phase. 
-           Measured in tenths of kVA, or -1 if not available."
-       ::= { xATSGeneratorOutputPhaseEntry 6 }
-
-   xATSGeneratorOutputPowerFactor OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-          "Indicates the load power factor of the generator output per phase.
-           A value of 100 representing a unity power factor (1.00),
-           or -1 if not avaialble."
-       ::= { xATSGeneratorOutputPhaseEntry 7 }
-
--- xATS Generator Settings group
-
-xATSGeneratorSettingsVoltageAdjust OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The voltage adjust of the generator.
-       Specified in volts line-to-line,
-       or -1 if not available."
-   ::= { xATSGeneratorSettings 1 }
-
-xATSGeneratorSettingsFrequencyAdjust OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frequency adjust of the generator.
-       Specified in tenths of Hertz."
-   ::= { xATSGeneratorSettings 2 }
-
-xATSGeneratorSettingsStartDelay OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The delay, in seconds, after the remote run signal is activated
-       before the generator's engine will be cranked to start, 
-       or -1 if not available."
-   ::= { xATSGeneratorSettings 3 }
-
-xATSGeneratorSettingsStopDelay OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The delay, in seconds, before the generator will stop 
-       after the remote run signal is deactivated,
-       or -1 if not available."
-   ::= { xATSGeneratorSettings 4 }
-
-xATSGeneratorSettingsCrankCycleEnable OBJECT-TYPE
-   SYNTAX     INTEGER{
-      disabled        (1),
-      enabled         (2),
-      unknown         (3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "When Crank Cycle is enabled, the engine will be cranked up to the time 
-       specified by the xATSGeneratorSettingsCrankTime OID. 
-       If the generator's engine does not start, there will be a pause as
-       specified by the xATSGeneratorSettingsCrankRestTime OID before the 
-       engine will be cranked again. This cycle is repeated as specified by
-       the xATSGeneratorSettingsNumberCrank OID.
-       When crank cycle is disabled, the generator's engine will be 
-       cranked continuously until it starts."
-   ::= { xATSGeneratorSettings 5 }
-
-xATSGeneratorSettingsCrankTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The duration of engine cranking, in seconds, when starting the generator. 
-       Applicable when the xATSGeneratorSettingsCrankCycleEnable OID is enabled.
-       -1 if not available."
-   ::= { xATSGeneratorSettings 6 }
-
-xATSGeneratorSettingsCrankRestTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The pause duration, in seconds, following an unsuccessful attempt to start the generator. 
-       Applicable when the xATSGeneratorSettingsCrankCycleEnable OID is enabled.
-       -1 if not available."
-   ::= { xATSGeneratorSettings 7 }
-
-xATSGeneratorSettingsNumberCrank OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of failed crank attempts before giving up on starting the generator. 
-       Applicable when the xATSGeneratorSettingsCrankCycleEnable OID is enabled.
-       -1 if not available."
-   ::= { xATSGeneratorSettings 8 }
-
-xATSGeneratorSettingsMetricUnit OBJECT-TYPE
-   SYNTAX INTEGER{
-      disabled (1),
-      enabled  (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Specifies the use of metric units in generator related OIDs, as well
-       as on all other interfaces including the generator's local interface."
-   ::= { xATSGeneratorSettings 9 }
-
--- xATS generator service group
-
-xATSGeneratorServiceTotalRunHoursLifetime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Total time that the generator engine has been run,
-       over the life of the generator. Measured in hours.
-       -1 if not available."
-   ::= { xATSGeneratorService 1 }
-
-xATSGeneratorServiceEngineStartsLifetime OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "Number of engine starts over the life of the generator.
-      -1 if not available."
-   ::= { xATSGeneratorService 2 }
-
-xATSGeneratorServiceTotalkWhLifetime OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "Total kWh of operation over the life of the generator.
-       -1 if not available."
-   ::= { xATSGeneratorService 3 }
-
-xATSGeneratorServiceTotalRunHoursSinceMaintanence OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "Total time that the generator engine has been run,
-       since last service maintenance. Measured in tenths of hours.
-       -1 if not available."
-   ::= { xATSGeneratorService 4 }
-
-xATSGeneratorServiceEngineStartsSinceMaintanence OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "Number of engine starts since last service maintenance.
-       -1 if not available."
-   ::= { xATSGeneratorService 5 }
-
-xATSGeneratorServiceTotalkWhMaintanence OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-      "Total kWh of operation since last service maintenance.
-       -1 if not available."
-   ::= { xATSGeneratorService 6 }
-
-xATSGeneratorServiceResetRecord OBJECT-TYPE
-   SYNTAX INTEGER{
-      yes        (1),
-      no         (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Resets the engine start counter, engine run-hours, and kWh values that have
-       accumulated in the generator since last maintenance.
-       Also, the last service date will be reset to the current system date, and 
-       any service alarms will be cleared."
-   ::= { xATSGeneratorService 7 }
-
-xATSGeneratorServiceRecordResetDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Date at which the generator's service record was reset, in dd-mmm-yyyy format."
-   ::= { xATSGeneratorService 8 }
-
-xATSGeneratorServiceNextServiceDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Date at which the next generator service is due in dd-mmm-yyyy format. 
-       Based on the xATSGeneratorServiceCalendarIntervalThreshold OID 
-       or '' if the calander-based threshold is set to off."
-   ::= { xATSGeneratorService 9 }
-   
-xATSGeneratorServiceRunHoursUntilServiceDate OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Runhours until the next generator service is due, in hours. 
-       Based on the xATSGeneratorServiceRunHoursThreshold OID 
-       or -1 if the runhour-based threshold is set to off."
-   ::= { xATSGeneratorService 10 }
-      
-xATSGeneratorServiceRunHoursThreshold OBJECT-TYPE
-   SYNTAX INTEGER{
-      disabled                 (1),
-      runThreshold100Hours     (2),
-      runThreshold150Hours     (3),
-      runThreshold200Hours     (4),
-      runThreshold250Hours     (5),
-      runThreshold300Hours     (6),
-      runThreshold400Hours     (7),
-      runThreshold500Hours     (8)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Runhour-based service interval. When the run-hours since
-       service surpasses this threshold, generator service is due."
-   ::= { xATSGeneratorService 11 }
-
-xATSGeneratorServiceCalendarIntervalThreshold OBJECT-TYPE
-   SYNTAX INTEGER{
-      disabled            (1),
-      interval1month      (2),
-      interval2month      (3),
-      interval3month      (4),
-      interval6month      (5),
-      intervalyearly      (6)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Calander-based service interval. When the next service date, 
-       as indicated by the xATSGeneratorServiceNextServiceDate OID
-       is in the past, generator is due for service."
-   ::= { xATSGeneratorService 12 }
-
--- The xATS Generator Fuel system group
-
-xATSGeneratorFuelSystemType OBJECT-TYPE
-   SYNTAX     INTEGER{
-      diesel      (1),
-      propane     (2),
-      naturalGas  (3),
-      unknown     (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The type of fuel used by the generator."
-   ::= { xATSGeneratorFuelSystem 1 }
-
-xATSGeneratorFuelSystemTankSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Size of the generator's fuel tank.
-       Specified in gallons or liters, based on the value of the
-       xATSGeneratorSettingsMetricUnit OID, or -1 if not available."
-   ::= { xATSGeneratorFuelSystem 2 }
-
-xATSGeneratorFuelSystemFuelLevel OBJECT-TYPE
-   SYNTAX  INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Fuel remaining in the generator tank.
-       Measured in percent of tank fill, or -1 if if not available."
-   ::= { xATSGeneratorFuelSystem 3 }
-
-xATSGeneratorFuelSystemRuntimePower OBJECT-TYPE
-   SYNTAX  INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The power value used in the runtime remaining calculation.
-       Measured in tenths of kW, or -1 if not available."
-   ::= { xATSGeneratorFuelSystem 4 }
-
-xATSGeneratorFuelSystemEstimatedRunTime OBJECT-TYPE
-   SYNTAX  INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An estimate of available runtime for the generator, based on
-       available fuel as specified in the xATSGeneratorFuelSystemFuelLevel OID 
-       and kW load as specified in the xATSGeneratorFuelSystemRuntimePower OID.
-       Measured in tenths of hours, or -1 if not available."
-   ::= { xATSGeneratorFuelSystem 5 }
-   
-xATSGeneratorFuelSystemLowRunTimeThreshold OBJECT-TYPE
-   SYNTAX INTEGER{
-      disabled        (1),
-      oneHour         (2),
-      twoHours        (3),
-      threeHours      (4),
-      fourHours       (5),
-      fiveHours       (6),
-      sixHours        (7),
-      twelveHours     (8),
-      oneDay          (9),
-      twoDays         (10),
-      threeDays       (11),
-      fourDays        (12),
-      fiveDays        (13),
-      sixDays         (14),
-      sevenDays       (15)
-      
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which a low runtime alarm will exist."
-   ::= { xATSGeneratorFuelSystem 6 }
-
-xATSGeneratorFuelSystemVeryLowRunTimeThreshold OBJECT-TYPE
-   SYNTAX INTEGER{
-      disabled        (1),
-      oneHour         (2),
-      twoHours        (3),
-      threeHours      (4),
-      fourHours       (5),
-      fiveHours       (6),
-      sixHours        (7),
-      twelveHours     (8),
-      oneDay          (9),
-      twoDays         (10),
-      threeDays       (11),
-      fourDays        (12),
-      fiveDays        (13),
-      sixDays         (14),
-      sevenDays       (15)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which a very low runtime alarm will exist."
-   ::= { xATSGeneratorFuelSystem 7 }
-
-xATSGeneratorFuelSystemLowFuelLevelThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which a low fuel alarm will exist, with a value of 0 indicating disabled. 
-       Specified as percent of tank fill."
-   ::= { xATSGeneratorFuelSystem 8 }
-
-xATSGeneratorFuelSystemVeryLowFuelLevelThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold below which a very low fuel alarm will exist, with a value of 0 indicating disabled.
-       Specified as percent of tank fill."
-   ::= { xATSGeneratorFuelSystem 9 }
-
--- the software group
--- the powerNetSubAgent group
--- the powerNetSoftwareSystem group
-      
-powerNetSoftwareSystemDescription OBJECT-TYPE
-   SYNTAX  DisplayString (SIZE (0..79))
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "A brief description of the PowerNet sub-agent."
-   ::= { powerNetSoftwareSystem 1 }
-
-powerNetSoftwareOid  OBJECT-TYPE
-   SYNTAX  OBJECT IDENTIFIER
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The object identifier of the PowerNet sub-agent."
-   ::= { powerNetSoftwareSystem 2 }
-
--- powerNetSmuxPeer     OBJECT IDENTIFIER ::= { powerNetSoftwareOid 1 }
--- powerNetDPIPeer      OBJECT IDENTIFIER ::= { powerNetSoftwareOid 2 }
-
-powerNetSoftwareSystemUpTime  OBJECT-TYPE
-   SYNTAX  TimeTicks
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-         "The time that the sub-agent has been running."
-   ::= { powerNetSoftwareSystem 3 }
-
-
--- powerNetSoftwareConfig group
-
-powerNetSoftwareTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of software modules supporting the UPS."
-   ::= { powerNetSoftwareConfig 1 }
-
-powerNetSoftwareTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF SoftwareEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION 
-      "A list of the software monitoring the UPS."
-   ::= { powerNetSoftwareConfig 2 }
-
-powerNetSoftwareEntry OBJECT-TYPE
-   SYNTAX SoftwareEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "An entry containing information on a software module."
-   INDEX { moduleNumber }
-   ::= { powerNetSoftwareTable 1 }
-
-SoftwareEntry ::= 
-   SEQUENCE {
-      moduleNumber
-         INTEGER,
-      moduleName
-         DisplayString,
-      moduleVersion
-         DisplayString,
-      moduleDate
-         DisplayString
-   }
-
-moduleNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index into the Software Entry Table"
-   ::= { powerNetSoftwareEntry 1 }
-
-moduleName OBJECT-TYPE
-   SYNTAX DisplayString (SIZE (0..79))
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The name of the software module."
-   ::= { powerNetSoftwareEntry 2 }
-
-moduleVersion OBJECT-TYPE
-   SYNTAX DisplayString (SIZE (0..8))
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The version of the software module." 
-   ::= { powerNetSoftwareEntry 3 }
-
-moduleDate OBJECT-TYPE
-   SYNTAX DisplayString (SIZE (0..9))
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date of the software module represented as mm-dd-yy."
-   ::= { powerNetSoftwareEntry 4 }
-
-
--- the ups group
--- the upsIdent group
--- the upsBasicIdent
-
-upsBasicIdentModel OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The UPS model name (e.g. 'APC Smart-UPS 600')."
-   ::= { upsBasicIdent 1 }
-
-upsBasicIdentName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "An 8 byte ID string identifying the UPS.  This object
-       can be set by the administrator."
-   ::= { upsBasicIdent 2 }
-
-
--- the upsAdvIdent group
-
-upsAdvIdentFirmwareRevision OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the UPS system's microprocessor."
-   ::= { upsAdvIdent 1 }
-
-upsAdvIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the UPS was manufactured in mm/dd/yy format."
-   ::= { upsAdvIdent 2 }
-
-upsAdvIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An 8-character string identifying the serial number of 
-       the UPS internal microprocessor.  This number is set at
-       the factory.  NOTE: This number does NOT correspond to
-       the serial number on the rear of the UPS."
-   ::= { upsAdvIdent 3 }
-
-
-
--- the upsBattery group
--- the upsBasicBattery group
-
-upsBasicBatteryStatus OBJECT-TYPE
-   SYNTAX INTEGER  {
-      unknown(1),
-      batteryNormal(2),
-      batteryLow(3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the UPS batteries.  A batteryLow(3) 
-       value indicates the UPS will be unable to sustain the 
-       current load, and its services will be lost if power is 
-       not restored.  The amount of run time in reserve at the 
-       time of low battery can be configured by the 
-       upsAdvConfigLowBatteryRunTime."
-   ::= { upsBasicBattery 1 }
-
-upsBasicBatteryTimeOnBattery OBJECT-TYPE
-   SYNTAX TimeTicks 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The elapsed time since the UPS has switched to battery 
-       power."
-   ::= { upsBasicBattery 2 }
-
-upsBasicBatteryLastReplaceDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the UPS system's batteries were last replaced 
-       in mm/dd/yy format.   For Smart-UPS models, this value 
-       is originally set in the factory.  When the UPS batteries 
-       are replaced, this value should be reset by the administrator."
-   ::= { upsBasicBattery 3 }
-
-
-
--- the upsAdvBattery group
-
-upsAdvBatteryCapacity OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The remaining battery capacity expressed in 
-       percent of full capacity."
-   ::= { upsAdvBattery 1 }
-
-upsAdvBatteryTemperature OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current internal UPS temperature expressed in 
-       Celsius."
-   ::= { upsAdvBattery 2 }
-
-upsAdvBatteryRunTimeRemaining OBJECT-TYPE
-   SYNTAX TimeTicks 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The UPS battery run time remaining before battery 
-       exhaustion."
-   ::= { upsAdvBattery 3 }
-
-upsAdvBatteryReplaceIndicator OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noBatteryNeedsReplacing(1),
-      batteryNeedsReplacing(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Indicates whether the UPS batteries need replacing."
-   ::= { upsAdvBattery 4 }
-
-upsAdvBatteryNumOfBattPacks OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of external battery packs connected to the UPS. If
-       the UPS does not use smart cells then the agent reports
-       ERROR_NO_SUCH_NAME."
-   ::= { upsAdvBattery 5 }
-
-upsAdvBatteryNumOfBadBattPacks OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of external battery packs connected to the UPS that 
-       are defective. If the UPS does not use smart cells then the
-       agent reports ERROR_NO_SUCH_NAME."
-   ::= { upsAdvBattery 6 }
-
-upsAdvBatteryNominalVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The nominal battery voltage in Volts."
-   ::= { upsAdvBattery 7 }
-
-upsAdvBatteryActualVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The actual battery bus voltage in Volts."
-   ::= { upsAdvBattery 8 }
-
-upsAdvBatteryCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery current in Amps."
-   ::= { upsAdvBattery 9 }
-
-upsAdvTotalDCCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total DC current in Amps."
-   ::= { upsAdvBattery 10 }
-
-
--- the upsBasicInput group
-
-upsBasicInputPhase OBJECT-TYPE
-   SYNTAX INTEGER                  
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current AC input phase."
-   ::= { upsBasicInput 1 }
-
-
--- the upsAdvInput group
-
-upsAdvInputLineVoltage OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current utility line voltage in VAC."
-   ::= { upsAdvInput 1 }
-
-upsAdvInputMaxLineVoltage OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum utility line voltage in VAC over the
-       previous 1 minute period."
-   ::= { upsAdvInput 2 }
-
-upsAdvInputMinLineVoltage OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The minimum utility line voltage in VAC over the
-       previous 1 minute period."
-   ::= { upsAdvInput 3 }
-
-upsAdvInputFrequency OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current input frequency to the UPS system in Hz."
-   ::= { upsAdvInput 4 }
-
-
-upsAdvInputLineFailCause OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noTransfer(1),
-      highLineVoltage(2),
-      brownout(3),
-      blackout(4),
-      smallMomentarySag(5),
-      deepMomentarySag(6),
-      smallMomentarySpike(7),
-      largeMomentarySpike(8),
-      selfTest(9),
-      rateOfVoltageChnage(10)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The reason for the occurrence of the last transfer to UPS
-       battery power.  The variable is set to:
-       - noTransfer(1) -- if there is no transfer yet.
-       - highLineVoltage(2) -- if the transfer to battery is caused
-       by an over voltage greater than the high transfer voltage.
-       - brownout(3) -- if the duration of the outage is greater than
-       five seconds and the line voltage is between 40% of the
-       rated output voltage and the low transfer voltage.
-       - blackout(4) -- if the duration of the outage is greater than five
-       seconds and the line voltage is between 40% of the rated 
-       output voltage and ground.
-       - smallMomentarySag(5) -- if the duration of the outage is less
-       than five seconds and the line voltage is between 40% of the
-       rated output voltage and the low transfer voltage.
-       - deepMomentarySag(6) -- if the duration of the outage is less 
-       than five seconds and the line voltage is between 40% of the 
-       rated output voltage and ground.  The variable is set to 
-       - smallMomentarySpike(7) -- if the line failure is caused by a
-       rate of change of input voltage less than ten volts per cycle.
-       - largeMomentarySpike(8) -- if the line failure is caused by 
-       a rate of change of input voltage greater than ten volts per cycle.
-       - selfTest(9) -- if the UPS was commanded to do a self test.
-       - rateOfVoltageChange(10) -- if the failure is due to the rate of change of
-       the line voltage."
-   ::= { upsAdvInput 5 }
-
-
--- the upsBasicOutput group
-
-upsBasicOutputStatus OBJECT-TYPE
-   SYNTAX INTEGER  {
-      unknown(1),
-      onLine(2),
-      onBattery(3),
-      onSmartBoost(4),
-      timedSleeping(5),
-      softwareBypass(6),
-      off(7),
-      rebooting(8),
-      switchedBypass(9),
-      hardwareFailureBypass(10),
-      sleepingUntilPowerReturn(11),
-      onSmartTrim(12)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current state of the UPS.  If the UPS is unable 
-       to determine the state of the UPS this variable is set 
-       to unknown(1)."
-   ::= { upsBasicOutput 1 }
-
-upsBasicOutputPhase OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current output phase."
-   ::= { upsBasicOutput 2 }
-
-
--- the upsAdvOutput group
-
-upsAdvOutputVoltage OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The output voltage of the UPS system in VAC."
-   ::= { upsAdvOutput 1 }
-
-upsAdvOutputFrequency OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current output frequency of the UPS system in Hz."
-   ::= { upsAdvOutput 2 }
-
-upsAdvOutputLoad OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current UPS load expressed in percent 
-       of rated capacity."
-   ::= { upsAdvOutput 3 }
-
-upsAdvOutputCurrent OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current in amperes drawn by the load on the UPS."
-   ::= { upsAdvOutput 4 }
-
-
--- the upsBasicConfig group
-
-upsBasicConfigNumDevices OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of devices that are plugged into the UPS."
-   ::= { upsBasicConfig 1 }
-
-upsBasicConfigDeviceTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsBasicConfigDeviceEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of devices that are plugged into the UPS.
-       The number of entries is given by the value of
-       upsBasicConfigNumDevices."
-   ::= { upsBasicConfig 2 }
-
-upsBasicConfigDeviceEntry OBJECT-TYPE
-   SYNTAX UpsBasicConfigDeviceEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The devices plugged in to the UPS."
-   INDEX  { deviceIndex }
-   ::= { upsBasicConfigDeviceTable 1 }
-
-UpsBasicConfigDeviceEntry ::=
-   SEQUENCE {
-      deviceIndex 
-         INTEGER,
-      deviceName
-         DisplayString,
-      vaRating
-         INTEGER,
-      acceptThisDevice
-         INTEGER
-   }
-
-deviceIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the device that is plugged into the UPS."
-   ::= { upsBasicConfigDeviceEntry 1 }
-
-deviceName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The name/description of the device plugged into the UPS."
-   ::= { upsBasicConfigDeviceEntry 2 }
-
-vaRating OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The volt-amp rating of the device plugged into the UPS."
-   ::= { upsBasicConfigDeviceEntry 3 }
-
-acceptThisDevice OBJECT-TYPE
-   SYNTAX INTEGER   {
-      yes(1),
-      no(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "An entry is added if yes, the entry is deleted if no."
-   ::= { upsBasicConfigDeviceEntry 4 }
-
-
-
-
--- the upsAdvConfig group
-
-upsAdvConfigRatedOutputVoltage OBJECT-TYPE
-   SYNTAX INTEGER  
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The nominal output voltage from the UPS in VAC. 
-
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-      
-       If a value other than a supported value is provided in a 
-       set request, the UPS interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { upsAdvConfig 1 }
-
-upsAdvConfigHighTransferVolt OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The maximum line voltage in VAC allowed before the
-       UPS system transfers to battery backup.
-
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-
-       If a value other than a supported value is provided in a
-       set request, the UPS interprets it as a the next higher
-       acceptable value.  If the provided value is higher than
-       the highest acceptable value, the highest acceptable 
-       value is used."
-   ::= { upsAdvConfig 2 }
-
-upsAdvConfigLowTransferVolt OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The minimum line voltage in VAC allowed before the
-       UPS system transfers to battery backup.
-      
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-
-       If a value other than a supported value is provided in a 
-       set request, the UPS interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { upsAdvConfig 3 }
-
-upsAdvConfigAlarm OBJECT-TYPE
-   SYNTAX INTEGER  {
-      timed(1),
-      atLowBattery(2),
-      never(3),
-      mute(4)
-   } 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A flag indicating how the UPS should handle audible
-       line fail alarms:
-       timed(1): UPS alarm will sound after a preset timed duration starting
-       from the line fail condition (see OID upsAdvConfigAlarmTimer for the
-       alarm timer value)
-       atLowBattery(2): UPS alarm will sound when the UPS has reached a Low
-       Battery condition during a line fail
-       never(3): Disables the UPS audible alarm
-       mute(4): Mutes the current alarm for some UPSs only when it is in an
-       alarm state and will return to the previously configured option when
-       the UPS recovers from the alarm condition"
-   ::= { upsAdvConfig 4 }
-
-upsAdvConfigAlarmTimer OBJECT-TYPE
-   SYNTAX TimeTicks 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The time after initial line failure at which the UPS
-       begins emitting audible alarms (beeping).  This timer is
-       observed only if the value of extControlAlarm is timed(2).
-       Allowed values are 0 or 30 seconds.
-
-       If a value other than a supported value is provided in a
-       set request, the UPS interprets it as a the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { upsAdvConfig 5 }
-
-upsAdvConfigMinReturnCapacity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The minimum battery capacity required before the UPS will 
-       return from a low battery shutdown condition.  The capacity is
-       measured from 0% battery capacity (or Low Battery) as a percent
-       of full capacity (100%).   In other words, the UPS will not re-energize
-       the output until the battery has charged so that its' capacity is equal 
-       to this value.
-       
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-
-       If a value other than a supported value is provided in a
-       set request, the UPS interprets it as a the next higher
-       acceptable value.  If the provided value is higher than
-       the highest acceptable value, the highest acceptable 
-       value is used."
-   ::= { upsAdvConfig 6 }
-
-upsAdvConfigSensitivity OBJECT-TYPE
-   SYNTAX INTEGER  {
-      auto(1),
-      low(2),
-      medium(3),
-      high(4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The sensitivity of the UPS to utility line abnormalities
-       or noises."
-   ::= { upsAdvConfig 7 }
-
-upsAdvConfigLowBatteryRunTime OBJECT-TYPE
-   SYNTAX TimeTicks 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The desired run time of the UPS, in seconds, once the 
-       low battery condition is reached. During this time the UPS will
-       produce a constant warning tone which can not be disabled.
-       
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-
-       If a value other than a supported value is provided in a set
-       request, the UPS interprets the value as the next higher
-       acceptable value.  If the provided value is higher than the
-       highest acceptable value, the highest acceptable value is used."
-   ::= { upsAdvConfig 8 }
-
-upsAdvConfigReturnDelay OBJECT-TYPE
-   SYNTAX TimeTicks
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The delay in seconds after utility line power returns
-       before the UPS will turn on.  This value is also used 
-       when the UPS comes out of a reboot and before the UPS
-       wakes up from 'sleep' mode.
-
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-      
-       If a value other than a supported value is provided in a
-       set request, the UPS interprets it as a the next higher
-       acceptable value.  If the provided value is higher than
-       the highest acceptable value, the highest acceptable 
-       value is used."
-   ::= { upsAdvConfig 9 }
-
-upsAdvConfigShutoffDelay OBJECT-TYPE
-   SYNTAX TimeTicks 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The delay in seconds the UPS remains on after being told 
-       to turn off.
-
-       For a list of allowed values supported by your UPS model,
-       see the UPS User's Manual.
-
-       If a value other than a supported value is provided in a
-       set request, the UPS interprets it as a the next higher
-       acceptable value.  If the provided value is higher than
-       the highest acceptable value, the highest acceptable 
-       value is used."
-   ::= { upsAdvConfig 10 }
-
-upsAdvConfigUpsSleepTime OBJECT-TYPE
-   SYNTAX TimeTicks 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The time in seconds for the UPS to go to 'sleep' when 
-       instructed.  When in sleep mode, the UPS will not provide
-       output power regardless of the input line state.  Once the
-       specified time has elapsed, output power will be restored.
-
-       This is a configuration setting.  The UPS will not go to
-       sleep until told to do so by the manager from a management
-       station.
-      
-       Any input value is allowed, however the UPS only recognizes
-       1/10 of an hour increments.  The provided value will be 
-       rounded to the closest 1/10 of an hour with one exception:
-       Any value entered between 1 and 540 seconds will be rounded 
-       to 360 seconds (or 6 minutes)."
-   ::= { upsAdvConfig 11 }
-
-
-upsAdvConfigSetEEPROMDefaults OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noSetEEPROMDefaults(1),
-      setEEPROMDefaults(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "WRITE: Resets the UPS EEPROM variables to default values.
-       READ: returns 0"
-   ::= { upsAdvConfig 12 }
-
-upsAdvConfigDipSwitchSetting OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsAdvConfigDipSwitchEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Current settings of UPS dip switches."
-   ::= { upsAdvConfig 13 }
-
-upsAdvConfigDipSwitchEntry OBJECT-TYPE
-   SYNTAX UpsAdvConfigDipSwitchEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The current setting of one dip switch."
-   INDEX  { dipSwitchIndex }
-   ::= { upsAdvConfigDipSwitchSetting 1 }
-
-UpsAdvConfigDipSwitchEntry ::=
-   SEQUENCE {
-      dipSwitchIndex 
-         INTEGER,
-      dipSwitchStatus
-         INTEGER
-   }
-
-dipSwitchIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of a UPS dip switch."
-   ::= { upsAdvConfigDipSwitchEntry 1 }
-
-dipSwitchStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      on(1),
-      off(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The setting of a UPS dip switch."
-   ::= { upsAdvConfigDipSwitchEntry 2 }
-
-upsAdvConfigBattExhaustThresh OBJECT-TYPE
-   SYNTAX TimeTicks
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The number of seconds prior to battery exhaustion when the
-       UPS will switch off power to its load."
-   ::= { upsAdvConfig 14 }
-
-upsAdvConfigPassword OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The password entered at the UPS front panel to enable local
-       configuration of the EEProm. If the password is disabled or 
-       is not supported, then the agent returns a null string."
-   ::= { upsAdvConfig 15 }
-
-upsAdvConfigAllowedSetTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ApcUpsConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The table listing the allowed values for all discrete 
-       configurable UPS variables."
-   ::= { upsAdvConfig 16 }
-
-apcUpsConfigEntry OBJECT-TYPE
-   SYNTAX ApcUpsConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The table entry for a configurable UPS variable."
-   INDEX  { apcUpsConfigFieldIndex }
-   ::= { upsAdvConfigAllowedSetTable 1 }
-
-ApcUpsConfigEntry ::= SEQUENCE {
-   apcUpsConfigFieldIndex        INTEGER,
-   apcUpsConfigFieldOID          OBJECT IDENTIFIER,
-   apcUpsConfigFieldValueRange   DisplayString
-   }
-
-apcUpsConfigFieldIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to an eeprom field entry."
-   ::= { apcUpsConfigEntry 1 }
-
-apcUpsConfigFieldOID OBJECT-TYPE
-   SYNTAX OBJECT IDENTIFIER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The OID of the current configurable value."
-   ::= { apcUpsConfigEntry 2 }
-
-apcUpsConfigFieldValueRange OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The discrete set of allowed values of a configurable 
-       register. Individual values are delimited by a comma."
-   ::= { apcUpsConfigEntry 3 }
-
-upsAdvConfigBattCabAmpHour OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure settings of UPS battery cabinet amp hour setting."
-   ::= { upsAdvConfig 17 }
-
-upsAdvConfigPositionSelector OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown  (1),
-     rack     (2),
-     tower    (3) 
-   }
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure UPS position selector.  If the UPS doesn't
-       support this configuration it will report unknown (1).
-       The positions are either rack (2) for rack mounted or
-       tower (3) for tower unit."
-   ::= { upsAdvConfig 18 }
-
-upsAdvConfigOutputFreqRange OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown          (1),
-     freqRangeAUTO    (2),
-     freqRange60Var1  (3),
-     freqRange60Var3  (4),
-     freqRange50Var1  (5),
-     freqRange50Var3  (6),
-     freqRange60Var10 (7),
-     freqRange50Var10 (8)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure the output frequency tolerance range.
-       unknown(1) indicates the output frequency is unknown.
-       freqRangeAUTO(2) configure the output frequency range for automatic.
-       freqRange60Var1(3) configure the output frequency range for 60 +/- 0.1 Hz
-       freqRange60Var3(4) configure the output frequency range for 60 +/- 3.0 Hz
-       freqRange50Var1(5) configure the output frequency range for 50 +/- 0.1 Hz
-       freqRange50Var3(6) configure the output frequency range for 50 +/- 3.0 Hz
-       freqRange60Var10(7) configure the output frequency range for 60 +/- 10 Hz
-       freqRange50Var10(8) configure the output frequency range for 50 +/- 10 Hz"
-   ::= { upsAdvConfig 19 }
-
-upsAdvConfigUPSFail OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown      (1),
-     gotoBypass   (2),
-     dropLoad     (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure the UPS fail action.  If UPS fails,
-      and frequency or voltage is out of range it will either
-      GotoBypass (2) or DropLoad (3).  This OID will report
-      unknown (1) if it is not supported feature or option."
-   ::= { upsAdvConfig 20 }
-
-upsAdvConfigAlarmRedundancy OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure settings of UPS alarm if the redundancy is
-      under the current redundancy.  Use -1 for never."
-   ::= { upsAdvConfig 21 }
-
-upsAdvConfigAlarmLoadOver OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure settings of UPS alarm if the load is
-      over the current load in kVA.  Use -1 for never."
-   ::= { upsAdvConfig 22 }
-
-upsAdvConfigAlarmRuntimeUnder OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure settings of UPS alarm if the runtime is
-      under the current time of minutes.  Use -1 for never."
-   ::= { upsAdvConfig 23 }
-
-upsAdvConfigVoutReporting OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown    (1),
-     voutAUTO   (2),
-     vout208    (3),
-     vout240    (4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure the way the UPS scales its output voltage readings.
-       unknown(1) indicates the Vout Reporting is unknown.
-       voutAUTO(2) configure the Vout Reporting for automatic scalling.
-       vout208(3) configure the Vout Reporting for 208 Volts.
-       vout240(4) configure the Vout Reporting for 240 Volts."
-   ::= { upsAdvConfig 24 }
-
-upsAdvConfigNumExternalBatteries OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure the number of external batteries connected to the UPS."
-   ::= { upsAdvConfig 25 }
-
-upsAdvConfigSimpleSignalShutdowns OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown    (1),
-     disabled   (2),
-     enabled    (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Configure Simple Signal shutdown commands from the Simple Signal
-       port to be issued to the UPS.
-       unknown(1) indicates the Simple Signal Shutdown setting is unknown.
-       disabled(2) configure to disable Simple Signal Shutdowns.
-       enabled(3) configure to enable Simple Signal Shutdowns."
-   ::= { upsAdvConfig 26 }
-
-
--- the upsSyncCtrlGroupConfig group
-
-upsSCGMembershipGroupNumber OBJECT-TYPE
-   SYNTAX INTEGER  
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION       
-       "The SCG Membership Group number (MGN) is a 16-bit number allowing 
-       up to 65534 separate groups that can be identified and distinguished
-       per IP subnet. Zero and 65535 are not used. The MGN is used in all 
-       communication between members of the SCG and a Network Management Card
-       (NMC) will listen and only respond to commands sent to it using its 
-       configured SCG ID."         
-   ::= { upsSyncCtrlGroupConfig 1 }
-
-upsSCGActiveMembershipStatus OBJECT-TYPE
-    SYNTAX INTEGER  {
-      enabledSCG (1),
-      disabledSCG (2)
-    } 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Membership in the configured SCG can be enabled and 
-      disabled.  If an NMC is configured for an SCG, but 
-      has its membership disabled, all synchronized control commands 
-      received will be ignored."
-   ::= { upsSyncCtrlGroupConfig 2 } 
-   
-upsSCGPowerSynchronizationDelayTime OBJECT-TYPE
-   SYNTAX INTEGER  
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION       
-        "The Power Synchronization Delay Time (PSD) setting is the maximum 
-         number of seconds an SCG Initiator will wait for all SCG members to 
-         recover utility power before completing the reboot sequence of a
-         reboot or sleep command. If all SCG members are ready to proceed, 
-         no additional delay is introduced."
-   ::= { upsSyncCtrlGroupConfig 3 }
-
-upsSCGReturnBatteryCapacityOffset OBJECT-TYPE
-   SYNTAX INTEGER  
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION       
-        "A reboot command uses the Initiator’s Return battery Capacity (RBC) to control
-        when the SCG completes this operation. In a Normal Control Operation (NCC) the 
-        UPS will only complete the reboot if RBC is reached.  Due to normal battery 
-        charge rate variations it may be desirable for the Followers to complete the 
-        reboot if they are within some range of the Initiator’s RBC when the Initiator 
-        is prepared (charged to RBC) to complete the reboot. The Return Battery 
-        Capacity Offset (RBCO) defines a percent battery capacity subtracted from an 
-        RBC above which a Follower’s battery must be charged for it to complete a 
-        reboot.  For example, if the Initiator’s RBC is 50% and the Initiator’s RBCO is
-        5% then a Follower’s battery capacity is within range if it is greater or equal 
-        to 45% (50% - 5%) at the time when the Initiator tries to complete the reboot 
-        command.  The default RBCO is 10%. "
-   ::= { upsSyncCtrlGroupConfig 4 }
-   
-upsSCGMultiCastIP OBJECT-TYPE
-       SYNTAX     IpAddress
-       ACCESS     read-write
-       STATUS     mandatory
-       DESCRIPTION
-               "The MultiCast IP address of the SCG Group."
-       ::= { upsSyncCtrlGroupConfig 5 } 
-         
--- the upsSyncCtrlGroupStatus group
-
-upsSCGNumOfGroupMembers OBJECT-TYPE
-   SYNTAX     INTEGER
-   ACCESS     read-only
-   STATUS     mandatory
-   DESCRIPTION
-       "The number of active, communicating members in the Sync Control Group (SCG).
-        This variable indicates the number of rows in the SCG Status Table."
-       ::= { upsSyncCtrlGroupStatus 1 }
-
--- Sync Control Group Status Table
-
-upsSCGStatusTable OBJECT-TYPE
-   SYNTAX     SEQUENCE OF UpsSCGStatusEntry
-   ACCESS     not-accessible
-   STATUS     mandatory
-   DESCRIPTION
-       "A list of SCG status table entries.  The number of entries
-        is given by the value of upsSCGNumOfGroupMembers."
-       ::= { upsSyncCtrlGroupStatus 2 }
-
-   upsSCGStatusEntry OBJECT-TYPE
-       SYNTAX     UpsSCGStatusEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular SCG Member."
-       INDEX { upsSCGStatusTableIndex }
-       ::= { upsSCGStatusTable 1 }
-
-   UpsSCGStatusEntry ::= SEQUENCE {
-       upsSCGStatusTableIndex           INTEGER,
-       upsSCGMemberIP                   IpAddress,
-       upsSCGACInputStatus              INTEGER,
-       upsSCGACOutputStatus             INTEGER
-   }
-
-   upsSCGStatusTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The index of a status entry for an active, communicating SCG member."
-       ::= { upsSCGStatusEntry 1 }
-
-  upsSCGMemberIP OBJECT-TYPE
-       SYNTAX     IpAddress
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The IP address of an active, communicating SCG Member."
-       ::= { upsSCGStatusEntry 2 }
-
-   upsSCGACInputStatus OBJECT-TYPE
-        SYNTAX INTEGER {
-          acInGood(1),
-          acInBad(2)
-        }
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "This OID indicates the AC Input Status of the SCG Member.
-                acInGood(1) indicates the AC Input is within tolerance.
-                acInBad(2)  indicates the AC Input is not within tolerance."
-       ::= { upsSCGStatusEntry 3 }
-
-    upsSCGACOutputStatus OBJECT-TYPE
-        SYNTAX INTEGER {
-          acOutOn(1),
-          acOutOff(2)
-        }
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "This OID indicates the AC Output Status of the SCG Member.
-                acOutOn(1)  indicates the UPS output is providing power to the load.
-                acOutOff(2) indicates the UPS output is not providing power to the load. "
-       ::= { upsSCGStatusEntry 4 }
-
--- the upsBasicState group
-
-upsBasicStateOutputState OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ASCII string containing the 64 flags representing
-       the current state(s) of the UPS. If the Network Card
-       is unable to determine the state of the UPS, this
-       variable is set to ‘UNKNOWN’.
-
-       The flags are numbered 1 to 64, read from left to
-       right. The flags are defined as follows:
-       
-       Flag  1: Abnormal Condition Present
-       Flag  2: On Battery
-       Flag  3: Low Battery
-       Flag  4: On Line
-            
-       Flag  5: Replace Battery
-       Flag  6: Serial Communication Established
-       Flag  7: AVR Boost Active*
-       Flag  8: AVR Trim Active*
-       
-       Flag  9: Overload
-       Flag 10: Runtime Calibration
-       Flag 11: Batteries Discharged
-       Flag 12: Manual Bypass
-
-       Flag 13: Software Bypass
-       Flag 14: In Bypass due to Internal Fault
-       Flag 15: In Bypass due to Supply Failure*
-       Flag 16: In Bypass due to Fan Failure*
-       
-       Flag 17: Sleeping on a Timer
-       Flag 18: Sleeping until Utility Power Returns
-       Flag 19: On
-       Flag 20: Rebooting
-       
-       Flag 21: Battery Communication Lost*
-       Flag 22: Graceful Shutdown Initiated
-       Flag 23: Smart Boost or Smart Trim Fault*
-       Flag 24: Bad Output Voltage*
-       
-       Flag 25: Battery Charger Failure*
-       Flag 26: High Battery Temperature
-       Flag 27: Self Test In Progress
-       Flag 28: Low Battery / On Battery
-       
-       Flag 29: Graceful Shutdown Issued by Upstream Device
-       Flag 30: Graceful Shutdown Issued by Downstream Device
-       Flag 31: No Batteries Attached*
-       Flag 32: Synchronized command is in progress
-       
-       Flag 33: <Not Used>
-       Flag 34: <Not Used>
-       Flag 35: <Not Used>
-       Flag 36: <Not Used>
-       
-       Flag 37: <Not Used>
-       Flag 38: <Not Used>
-       Flag 39: <Not Used>
-       Flag 40: <Not Used>
-       
-       Flag 41: <Not Used>
-       Flag 42: <Not Used>
-       Flag 43: <Not Used>
-       Flag 44: <Not Used>
-       
-       Flag 45: <Not Used>
-       Flag 46: <Not Used>
-       Flag 47: <Not Used>
-       Flag 48: <Not Used>
-       
-       Flag 49: <Not Used>
-       Flag 50: <Not Used>
-       Flag 51: <Not Used>
-       Flag 52: <Not Used>
-       
-       Flag 53: <Not Used>
-       Flag 54: <Not Used>
-       Flag 55: <Not Used>
-       Flag 56: <Not Used>
-       
-       Flag 57: <Not Used>
-       Flag 58: <Not Used>
-       Flag 59: <Not Used>
-       Flag 60: <Not Used>
-       
-       Flag 61: <Not Used>
-       Flag 62: <Not Used>
-       Flag 63: <Not Used>
-       Flag 64: <Not Used>"
-
-   ::= { upsBasicState 1 }
-
--- the upsAdvState group
-
-upsAdvStateAbnormalConditions OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ASCII string containing the 32 flags representing
-       the current active UPS faults. If the Network Card
-       is unable to determine the values of the flags, this
-       variable is set to ‘UNKNOWN’. If this variable is not
-       supported by the connected UPS, this variable is set to
-       ‘NOT SUPPORTED’.
-       
-       The flags are numbered from 1 to 32, and read from left to
-       right. The flags are defined as follows:
-
-       Flag  1: Power Module Failure
-       Flag  2: Main Intelligence Module Failure
-       Flag  3: Redundant Intelligence Module Failure
-       Flag  4: Battery Failure
-        
-       Flag  5: Load(kVA) Alarm Threshold Violation
-       Flag  6: Redundancy Lost
-       Flag  7: Redundancy Below Alarm Threshold
-       Flag  8: Bypass notin Range; Either Frequency or Voltage
-       
-       Flag  9: Bypass Contactor Stuck in Bypass Condition
-       Flag 10: Bypass Contactor Stuck in On-Line Condition
-       Flag 11: In Bypass due to an Internal Fault
-       Flag 12: In Bypass due to an Overload
-       
-       Flag 13: In Maintanence Bypass
-       Flag 14: Input Circuit Braker Tripped Open
-       Flag 15: System Level Fan Failure
-       Flag 16: Redundant Intelligent Module in Control
-       
-       Flag 17: IIC Inter-Module Communication Failure
-       Flag 18: No Working Power Modules
-       Flag 19: Load Shutdown From Bypass; Input Frequency
-       Flag 20: Runtime Below Alarm Threshold
-       
-       Flag 21: Extended Run Frame Fault
-       Flag 22: Output Voltage out of Range
-       Flag 23: UPS Not Synchronized
-       Flag 24: No Batteries Installed
-       
-       Flag 25: Battery Voltage High
-       Flag 26: UPS Specific Fault Detected
-       Flag 27: Site Wiring Fault
-       Flag 28: Backfeed Protection Relay Opened
-       
-       Flag 29: <Not Used>
-       Flag 30: <Not Used>
-       Flag 31: <Not Used>
-       Flag 32: <Not Used>"
-   ::= { upsAdvState 1 }
-
-upsAdvStateSymmetra3PhaseSpecificFaults OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ASCII string containing the 64 flags representing
-      the current active UPS specific faults for the Symmetra
-      3-Phase UPS models. If the Network Card is unable to
-      determine the values of the flags, this variable is set
-      to ‘UNKNOWN’. If the connected UPS does not use this
-      variable, it is set to ‘NOT SUPPORTED’.
-      
-      The flags are numbered from 1 to 64, and read from left
-      to right. The bits are defined as follows:
-      
-      Flag  1: External Switch Gear Failure
-      Flag  2: External Transformer Over Temperature
-      Flag  3: External DC Circuit Breaker Tripped
-      Flag  4: System Power Supply Failure
-        
-      Flag  5: Battery Monitor Card Failure
-      Flag  6: Battery Monitor Card Removed
-      Flag  7: XR Communication Card Failure
-      Flag  8: XR Communication Card Removed
-      
-      Flag  9: External Switch Gear Monitoring Card Failure
-      Flag 10: External Switch Gear Monitoring Card Removed
-      Flag 11: Internal DC Circiut Breaker Tripped
-      Flag 12: Static Bypass Switch Failure
-      
-      Flag 13: System EEPROM Removed
-      Flag 14: System EEPROM Failure
-      Flag 15: UPS in Forced Bypass
-      Flag 16: <Not Used>
-      
-      Flag 17: <Not Used>
-      Flag 18: <Not Used>
-      Flag 19: <Not Used>
-      Flag 20: <Not Used>
-      
-      Flag 21: <Not Used>
-      Flag 22: <Not Used>
-      Flag 23: <Not Used>
-      Flag 24: <Not Used>
-      
-      Flag 25: <Not Used>
-      Flag 26: <Not Used>
-      Flag 27: <Not Used>
-      Flag 28: <Not Used>
-      
-      Flag 29: <Not Used>
-      Flag 30: <Not Used>
-      Flag 31: <Not Used>
-      Flag 32: <Not Used>
-      
-      Flag 33: <Not Used>
-      Flag 34: <Not Used>
-      Flag 35: <Not Used>
-      Flag 36: <Not Used>
-      
-      Flag 37: <Not Used>
-      Flag 38: <Not Used>
-      Flag 39: <Not Used>
-      Flag 40: <Not Used>
-      
-      Flag 41: <Not Used>
-      Flag 42: <Not Used>
-      Flag 43: <Not Used>
-      Flag 44: <Not Used>
-      
-      Flag 45: <Not Used>
-      Flag 46: <Not Used>
-      Flag 47: <Not Used>
-      Flag 48: <Not Used>
-      
-      Flag 49: <Not Used>
-      Flag 50: <Not Used>
-      Flag 51: <Not Used>
-      Flag 52: <Not Used>
-      
-      Flag 53: <Not Used>
-      Flag 54: <Not Used>
-      Flag 55: <Not Used>
-      Flag 56: <Not Used>
-      
-      Flag 57: <Not Used>
-      Flag 58: <Not Used>
-      Flag 59: <Not Used>
-      Flag 60: <Not Used>
-      
-      Flag 61: <Not Used>
-      Flag 62: <Not Used>
-      Flag 63: <Not Used>
-      Flag 64: <Not Used>"
-   ::= { upsAdvState 2 }
-
-upsAdvStateDP300ESpecificFaults OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ASCII string containing the 64 flags representing
-      the current active UPS specific faults for the Silcon
-      DP300E UPS models. If the Network Card is unable to
-      determine the values of the flags, this variable is set
-      to ‘UNKNOWN’. If the connected UPS does not use this
-      variable, it is set to ‘NOT SUPPORTED’.
-      
-      The flags are numbered from 1 to 64, and read from left
-      to right. The bits are defined as follows:
-      
-      Flag  1: Peak Current Limiter Avtive
-      Flag  2: Bypass Power Supply Fault
-      Flag  3: Delta Current LImiter Active
-      Flag  4: Fan Fault
-        
-      Flag  5: High DC warning
-      Flag  6: Inverter Voltage Error
-      Flag  7: Parallel Synchronization Error
-      Flag  8: Second Power Supply Fault
-      
-      Flag  9: Internal Power Supply Fault
-      Flag 10: <Not Used>
-      Flag 11: <Not Used>
-      Flag 12: <Not Used>
-      
-      Flag 13: <Not Used>
-      Flag 14: Bypass Static Switch High Temperature
-      Flag 15: High Battery Temperature
-      Flag 16: Battery Weak
-      
-      Flag 17: <Not Used>
-      Flag 18: System Locked in Operation Mode
-      Flag 19: RAM1 Memory Write Error
-      Flag 20: Memory Write Error
-      
-      Flag 21: Communication to VQ Bypass Lost
-      Flag 22: Communication to VQ Output Lost
-      Flag 23: Communication to DMU Lost
-      Flag 24: Communication to Controller Lost
-      
-      Flag 25: Communication to Parallel IF Lost
-      Flag 26: External Shutdown Accepted
-      Flag 27: DC Capacitor Charge Error
-      Flag 28: Communication to VQ Mains Lost
-      
-      Flag 29: Bypass Synchronization Error
-      Flag 30: Charge Error
-      Flag 31: <Not Used>
-      Flag 32: <Not Used>
-      
-      Flag 33: <Not Used>
-      Flag 34: <Not Used>
-      Flag 35: <Not Used>
-      Flag 36: <Not Used>
-      
-      Flag 37: <Not Used>
-      Flag 38: <Not Used>
-      Flag 39: <Not Used>
-      Flag 40: <Not Used>
-      
-      Flag 41: <Not Used>
-      Flag 42: <Not Used>
-      Flag 43: <Not Used>
-      Flag 44: <Not Used>
-      
-      Flag 45: <Not Used>
-      Flag 46: <Not Used>
-      Flag 47: <Not Used>
-      Flag 48: <Not Used>
-      
-      Flag 49: <Not Used>
-      Flag 50: <Not Used>
-      Flag 51: <Not Used>
-      Flag 52: <Not Used>
-      
-      Flag 53: <Not Used>
-      Flag 54: <Not Used>
-      Flag 55: <Not Used>
-      Flag 56: <Not Used>
-      
-      Flag 57: <Not Used>
-      Flag 58: <Not Used>
-      Flag 59: <Not Used>
-      Flag 60: <Not Used>
-      
-      Flag 61: <Not Used>
-      Flag 62: <Not Used>
-      Flag 63: <Not Used>
-      Flag 64: <Not Used>"
-   ::= { upsAdvState 3 }
-
-
--- the upsBasicControl group
-
-upsBasicControlConserveBattery OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noTurnOffUps(1),
-      turnOffUpsToConserveBattery(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to turnUpsOffToConserveBattery(2) 
-       causes a UPS on battery to be put into 'sleep' mode.  The 
-       UPS will turn back on when utility power is restored.  
-       Attempting to turn off a UPS that is not on battery will 
-       result in a badValue error.
-
-       Setting this value to noTurnOffUps(1) has no
-       effect.
-
-       The value noTurnOffUps(1) will always be returned
-       when the variable is read."
-::= { upsBasicControl 1 }
-
-
-
--- the upsAdvControl group
-
-upsAdvControlUpsOff OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noTurnUpsOff(1),
-      turnUpsOff(2),
-      turnUpsOffGracefully(3),
-      turnUpsSyncGroupOff(4),
-      turnUpsSyncGroupOffAfterDelay(5),
-      turnUpsSyncGroupOffGracefully(6)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to turnUpsOff(2) causes
-       the UPS to shut off.  When in this state, the UPS 
-       will not provide output power regardless of the input
-       line state.
-
-       Setting this variable to turnUpsOffGracefully(3) causes
-       the UPS to shut off after a delay period. This allows the
-       host to shut down in a graceful manner. When in this state,
-       the UPS will not provide output power regardless of the
-       input line state. 
-              
-       If this UPS is an active member of a Synchronized 
-       Control Group (SCG) the turnUpsSyncGroupOff(4) command 
-       will perform a Synchronized Turn Off of all active Group
-       members regardless of their current AC output status.    
-       
-       If this UPS is an active member of a Synchronized 
-       Control Group (SCG) the turnUpsSyncGroupOffAfterDelay(5)
-       command will perform a Synchronized Turn Off After Delay 
-       of all active Group members regardless of their current 
-       AC output status. This unit's Shutdown Delay will be used 
-       to execute the Turn Off After Delay command.  
-       
-       If this UPS is an active member of an SCG, the 
-       turnUpsSyncGroupOffGracefully(6) command will perform a 
-       Synchronized Turn Off Gracefully of all active Group 
-       members regardless of their current AC output status.  
-       This unit's Maximum Shutdown Time and Shutdown Delay will
-       be used to execute the Turn Off Gracefully command.  
-       
-       Setting this value to noTurnUpsOff(1) has no
-       effect.
-
-       The value noTurnUpsOff(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvControl 1 }
-
-upsAdvControlRebootUps OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noRebootUps(1),
-      rebootUps(2),
-      rebootUpsGracefully(3),
-      rebootSyncGroupUps(4),
-      rebootSyncGroupUpsGracefully(5)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to rebootUps(2) causes the
-       UPS to shut off and turn back on.
-      
-       Setting this variable to rebootUpsGracefully(3) causes the
-       UPS to shut off and turn back on after a delay period. 
-       This allows the host to shut down in a graceful manner.
-       
-       If this UPS is an active member of a Synchronized Control 
-       Group (SCG) the rebootSyncGroupUps(4) command will perform
-       a Synchronized Reboot of all active Group members regardless
-       of their current AC output status.  This unit's Power 
-       Synchronization Delay, Shutdown Delay, Return Delay, 
-       Return Battery Capacity, and Return Battery Capacity Offset 
-       will be used to execute the Reboot command.  
-
-       If this UPS is an active member of a SCG the 
-       rebootSyncGroupUpsGracefully(5) command will perform a 
-       Synchronized Reboot of all active Group members regardless 
-       of their current AC output status.  This unit's Power 
-       Synchronization Delay, Maximum Shutdown Time, 
-       Shutdown Delay, Return Delay, Return Battery Capacity, and 
-       Return Battery Capacity Offset will be used
-       to execute the Reboot command.  
-              
-       Setting this value to noRebootUps(1) has no effect.
-      
-       The value noRebootUps(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvControl 2 }
-
-upsAdvControlUpsSleep OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noPutUpsToSleep(1),
-      putUpsToSleep(2),
-      putUpsToSleepGracefully(3),
-      putUpsSyncGroupToSleep(4),
-      putUpsSyncGroupToSleepGracefully(5)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to putUpsToSleep(2) causes
-       the UPS to go to sleep for the time specified by
-       upsAdvConfigUpsSleepTime.
-      
-       Setting this variable to putUpsToSleepGracefully(3)
-       causes the UPS to go to sleep for the time specified 
-       by upsAdvConfigUpsSleepTime after a delay period. 
-       This allows the host to shut down in a graceful manner.
-
-       If this UPS is an active member of a Synchronized Control 
-       Group (SCG), the putUpsSyncGroupToSleep(4) command will perform
-       a Synchronized Sleep of all active Group members regardless 
-       of their current AC output status.  This unit's Power 
-       Synchronization Delay, Shutdown Delay, Sleep Time, 
-       and Return Delay will be used to execute the sleep command.  
-       
-       If this UPS is an active member of a SCG the 
-       putUpsSyncGroupToSleepGracefully(5) command will perform a 
-       Synchronized Sleep Gracefully of all active Group members 
-       regardless of their current AC output status.  This unit's 
-       Power Synchronization Delay, Maximum Shutdown Time, Shutdown 
-       Delay, Sleep Time, and Return Delay to execute the sleep 
-       command.  
-
-       When in sleep mode, the UPS will not provide output
-       power regardless of the input line state.  Once the
-       specified time has elapsed, output power will be
-       restored. 
-      
-       Setting this value to noPutUpsToSleep(1) has no
-       effect.
-      
-       The value noPutUpsToSleep(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvControl 3 }
-
-
-upsAdvControlSimulatePowerFail OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noSimulatePowerFailure(1),
-      simulatePowerFailure(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to simulatePowerFailure(2) causes
-       the UPS switch to battery power.
-
-       Setting this value to noSimulatePowerFailure(1) has no
-       effect.
-
-       The value noSimulatePowerFailure(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvControl 4 }
-
-
-upsAdvControlFlashAndBeep OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noFlashAndBeep(1),
-      flashAndBeep(2),
-      flashAndBeepSyncGroup(3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to flashAndBeep(2) causes the
-       UPS to beep and simultaneously turn on the UPS front
-       panel lights (Smart-UPS only).
-
-       If this UPS is an active member of a Synchronized Control 
-       Group (SCG), the flashAndBeepSyncGroup(3) command will 
-       Flash and Beep all active Group members regardless of 
-       current AC output status.
-         
-       Setting this value to noFlashAndBeep(1) has no
-       effect.
-
-       The value noFlashAndBeep(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvControl 5 }
-
-
-upsAdvControlTurnOnUPS OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noTurnOnUPS(1),
-      turnOnUPS(2),
-      turnOnUPSSyncGroup(3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to turnOnUPS(2) causes the
-       UPS to be turned on immediately.
-
-       If this UPS is an active member of a Synchronized Control 
-       Group (SCG), the turnOnUPSSyncGroup(3) command will perform 
-       a Synchronized Turn On of all active Group members 
-       regardless of their current AC output status.
-       
-       Setting this value to noTurnOnUPS(1) has no
-       effect.
-
-       The value noTurnOnUPS(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvControl 6 }
-
-upsAdvControlBypassSwitch OBJECT-TYPE
-   SYNTAX INTEGER {
-      noBypassSwitch (1),
-      switchToBypass (2),
-      switchOutOfBypass(3)
-      }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This switch puts the UPS in or out of bypass mode."
-   ::= { upsAdvControl 7 }
-
-
--- the upsTest group
-
--- the upsBasicTest group
-
--- the upsAdvTest group
-
-upsAdvTestDiagnosticSchedule OBJECT-TYPE
-   SYNTAX INTEGER  {
-      unknown(1),
-      biweekly(2),
-      weekly(3),
-      atTurnOn(4),
-      never(5)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The UPS system's automatic battery test schedule."
-   ::= { upsAdvTest 1 }
-
-
-upsAdvTestDiagnostics OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noTestDiagnostics(1),
-      testDiagnostics(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to testDiagnostics(2) causes
-       the UPS to perform a diagnostic self test.
-      
-       Setting this value to noTestDiagnostics(1) has no
-       effect.
-      
-       The value noTestDiagnostics(1) will always be returned
-       when the variable is read."
-   ::= { upsAdvTest 2 }
-
-upsAdvTestDiagnosticsResults OBJECT-TYPE
-   SYNTAX INTEGER {
-      ok(1),
-      failed(2),
-      invalidTest(3),
-      testInProgress(4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The results of the last UPS diagnostics test performed."
-   ::= { upsAdvTest 3 }
-
-upsAdvTestLastDiagnosticsDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date the last UPS diagnostics test was performed in
-       mm/dd/yy format."
-   ::= { upsAdvTest 4 }
-
-upsAdvTestRuntimeCalibration OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noPerformCalibration(1),
-      performCalibration(2),
-      cancelCurrentCalibration(3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to performCalibration(2) causes
-       the UPS to discharge to calibrate the UPS.
-       The test will only start if the battery capacity is 100%.
-       The test runs until capacity is less than 25%.
-      
-       Setting this variable to cancelCurrentCalibration(3)
-       after setting performCalibration(2) will cancel the 
-       current discharge.
-      
-       Setting this variable to noPerformCalibration(1) 
-       will have no effect.
-      
-       The value noPerformCalibration(1) will always be returned
-       when the variable is read.
-      
-       The result of the calibration will be saved in 
-       upsAdvTestCalibrationResult."
-   ::= { upsAdvTest 5 }
-
-upsAdvTestCalibrationResults OBJECT-TYPE
-   SYNTAX INTEGER {
-      ok(1),
-      invalidCalibration(2),
-      calibrationInProgress(3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The results of the last runtime calibration.
-      
-       Value ok(1) means a successful runtime calibration.
-      
-       Value invalidCalibration(2) indicates last calibration did
-       not take place since the battery capacity was below
-       100%.
-      
-       Value calibrationInProgress(3) means a calibration 
-       is occurring now. "
-   ::= { upsAdvTest 6 }
-
-upsAdvTestCalibrationDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date the last UPS runtime calibration was 
-       performed in mm/dd/yy format."
-   ::= { upsAdvTest 7 }
-
--- the upsComm group
-
-upsCommStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      ok(1),
-      noComm(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of agent's communication with UPS. "
-   ::= { upsComm 1 }
-
-
--- the measureUps group
--- the Environ group
-
-mUpsEnvironAmbientTemperature OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The ambient temperature in Celsius for Probe 1."
-   ::= { mUpsEnviron 1 }
-
-mUpsEnvironRelativeHumidity OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The relative humidity as a percentage for Probe 1."
-   ::= { mUpsEnviron 2 }
-
-
-mUpsEnvironAmbientTemperature2 OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The ambient temperature in Celsius for Probe 2."
-   ::= { mUpsEnviron 3 }
-
-mUpsEnvironRelativeHumidity2 OBJECT-TYPE
-   SYNTAX Gauge
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The relative humidity as a percentage for Probe 2."
-   ::= { mUpsEnviron 4 }
-
--- the mUpsContact group
-
-mUpsContactNumContacts OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts supported by the Measure-UPS."
-   ::= { mUpsContact 1 }
-
-mUpsContactTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ContactEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the Measure-UPS."
-   ::= { mUpsContact 2 }
-
-mUpsContactEntry OBJECT-TYPE
-   SYNTAX ContactEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A contact entry containing information for a given contact."
-   INDEX  { contactNumber }
-   ::= { mUpsContactTable 1 }
-
-ContactEntry ::=
-   SEQUENCE {
-      contactNumber
-         INTEGER,
-      normalState
-         INTEGER,
-      description
-         DisplayString,
-      monitoringStatus
-         INTEGER,
-      currentStatus
-         INTEGER
-   }
-
-contactNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An index identifying the contact on the Measure-UPS."
-   ::= { mUpsContactEntry 1 }
-
-normalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      unknown(1),
-      open(2),
-      closed(3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The normal operating position of the contact. If the normal
-       operating position cannot be set then it is controlled via the
-       dip switch on the Measure-UPS and is therefore read-only."
-   ::= { mUpsContactEntry 2 }
-
-description OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The description of the purpose/use of the contact."
-   ::= { mUpsContactEntry 3 }
-
-monitoringStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      unknown(1),
-      enabled(2),
-      disabled(3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A flag indicating whether this contact is 
-       monitored, or not."
-   ::= { mUpsContactEntry 4 }
-
-currentStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      unknown(1),
-      noFault(2),
-      fault(3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This value indicates the current state of the contact.
-       If the contact is not in its normal state.  This value
-       is set to fault(2)."
-   ::= { mUpsContactEntry 5 }
-
--- Three Phase Group
-
---
--- Reset Max/Min Values Group
---
-
-   upsPhaseResetMaxMinValues OBJECT-TYPE
-       SYNTAX INTEGER {
-          none (1),
-          reset (2) 
-       }
-       ACCESS     read-write
-       STATUS     mandatory
-       DESCRIPTION
-               "Reset the maximum and minimum UPS values:
-                upsPhaseInputMaxVoltage, upsPhaseInputMinVoltage,
-                upsPhaseInputMaxCurrent, upsPhaseInputMinCurrent,
-                upsPhaseInputMaxPower, upsPhaseInputMinPower,
-                upsPhaseOutputMaxCurrent, upsPhaseOutputMinCurrent,
-                upsPhaseOutputMaxLoad, upsPhaseOutputMinLoad,
-                upsPhaseOutputMaxPercentLoad, upsPhaseOutputMinPercentLoad,
-                upsPhaseOutputMaxPower, upsPhaseOutputMinPower,
-                upsPhaseOutputMaxPercentPower, upsPhaseOutputMinPercentPower."
-       ::= { upsPhaseResetValues 1 }
-
---
--- Input Group
---
-
--- Number of Inputs
-
-   upsPhaseNumInputs OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of input feeds to this device.
-               This variable indicates the number of rows in the
-               input table."
-       ::= { upsPhaseInput 1 }
-
--- Input Table
-
-   upsPhaseInputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF UpsPhaseInputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of input table entries.  The number of entries
-               is given by the value of upsPhaseNumInputs."
-       ::= { upsPhaseInput 2 }
-
-   upsPhaseInputEntry OBJECT-TYPE
-       SYNTAX     UpsPhaseInputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular input."
-       INDEX { upsPhaseInputTableIndex }
-       ::= { upsPhaseInputTable 1 }
-
-   UpsPhaseInputEntry ::= SEQUENCE {
-       upsPhaseInputTableIndex         INTEGER,
-       upsPhaseNumInputPhases          INTEGER,
-       upsPhaseInputVoltageOrientation INTEGER,
-       upsPhaseInputFrequency          INTEGER,
-       upsPhaseInputType               INTEGER,
-       upsPhaseInputName               DisplayString
-   }
-
-   upsPhaseInputTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input identifier."
-       ::= { upsPhaseInputEntry 1 }
-
-   upsPhaseNumInputPhases OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of input phases utilized in this
-               device.  The sum of all the upsPhaseNumInputPhases
-               variable indicates the number of rows in the 
-               input phase table."
-       ::= { upsPhaseInputEntry 2 }
-
-   upsPhaseInputVoltageOrientation OBJECT-TYPE
-       SYNTAX INTEGER {
-          unknown(1),
-          singlePhase(2),
-          splitPhase(3),
-          threePhasePhaseToNeutral(4),
-          threePhasePhaseToPhase(5)
-       }
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input voltage orientation: 
-               1: unknown for this UPS
-               2: singlePhase - phase 1 voltage is between Phase 1
-               and Neutral.
-               3: splitPhase - phase 1 voltage is between Phase 1 and 
-               Neutral; phase 2 voltage is between Phase 2 and Neutral; 
-               phase 3 voltage is between Phase 1 and Phase2.
-               4: threePhasePhaseToNeutral - phase 1 voltage is between
-               Phase 1 and Neutral; phase 2 voltage is between Phase 2 
-               and Neutral; phase 3 voltage is between Phase3 and
-               Neutral.
-               5: threePhasePhaseToPhase - phase 1 voltage is between 
-               Phase 1 and Phase 2; phase 2 voltage is between Phase 2
-               and Phase 3; phase 3 voltage is between Phase 3 and
-               Phase 1."
-       ::= { upsPhaseInputEntry 3 }
-
-   upsPhaseInputFrequency OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input frequency in 0.1 Hertz, or -1 if it's unsupported
-               by this UPS."
-       ::= { upsPhaseInputEntry 4 }
-
-   upsPhaseInputType OBJECT-TYPE
-       SYNTAX     INTEGER {
-          unknown(1),
-          main(2),
-          bypass(3)
-       }
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input type."
-       ::= { upsPhaseInputEntry 5 }
-
-   upsPhaseInputName OBJECT-TYPE
-       SYNTAX     DisplayString
-       ACCESS     read-write
-       STATUS     mandatory
-       DESCRIPTION
-               "A name given to a particular input."
-       ::= { upsPhaseInputEntry 6 }
-
--- Input Phase Table
-
-   upsPhaseInputPhaseTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF UpsPhaseInputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of input table entries.  The number of entries
-               is given by the sum of the upsPhaseNumInputPhases."
-       ::= { upsPhaseInput 3 }
-
-   upsPhaseInputPhaseEntry OBJECT-TYPE
-       SYNTAX     UpsPhaseInputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular input phase."
-       INDEX { upsPhaseInputPhaseTableIndex, upsPhaseInputPhaseIndex }
-       ::= { upsPhaseInputPhaseTable 1 }
-
-   UpsPhaseInputPhaseEntry ::= SEQUENCE {
-       upsPhaseInputPhaseTableIndex    INTEGER,
-       upsPhaseInputPhaseIndex         INTEGER,
-       upsPhaseInputVoltage            INTEGER,
-       upsPhaseInputMaxVoltage         INTEGER,
-       upsPhaseInputMinVoltage         INTEGER,
-       upsPhaseInputCurrent            INTEGER,
-       upsPhaseInputMaxCurrent         INTEGER,
-       upsPhaseInputMinCurrent         INTEGER,
-       upsPhaseInputPower              INTEGER,
-       upsPhaseInputMaxPower           INTEGER,
-       upsPhaseInputMinPower           INTEGER
-   }
-
-   upsPhaseInputPhaseTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input identifier."
-       ::= { upsPhaseInputPhaseEntry 1 }
-
-   upsPhaseInputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input phase identifier."
-       ::= { upsPhaseInputPhaseEntry 2 }
-
-   upsPhaseInputVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input voltage in VAC, or -1 if it's unsupported
-               by this UPS."
-       ::= { upsPhaseInputPhaseEntry 3 }
-
-   upsPhaseInputMaxVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum input voltage in VAC measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseInputPhaseEntry 4 }
-
-   upsPhaseInputMinVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum input voltage in VAC measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseInputPhaseEntry 5 }
-
-   upsPhaseInputCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input current in 0.1 amperes, or -1 if it's
-               unsupported by this UPS."
-       ::= { upsPhaseInputPhaseEntry 6 }
-
-   upsPhaseInputMaxCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum input current in 0.1 amperes measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseInputPhaseEntry 7 }
-
-   upsPhaseInputMinCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum input current in 0.1 amperes measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseInputPhaseEntry 8 }
-
-   upsPhaseInputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input power in Watts, or -1 if it's unsupported
-               by this UPS."
-       ::= { upsPhaseInputPhaseEntry 9 }
-
-   upsPhaseInputMaxPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum input power in Watts measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseInputPhaseEntry 10 }
-
-   upsPhaseInputMinPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum input power in Watts measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseInputPhaseEntry 11 }
-
-   --
-   -- The Output group.
-   --
-
-   -- Number of Outputs
-
-   upsPhaseNumOutputs OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of output feeds to this device.
-               This variable indicates the number of rows in the
-               output table."
-       ::= { upsPhaseOutput 1 }
-
-   -- Output Table
-
-   upsPhaseOutputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF UpsPhaseOutputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of output table entries.  The number of entries
-               is given by the value of upsOutputNumPhases."
-       ::= { upsPhaseOutput 2 }
-
-   upsPhaseOutputEntry OBJECT-TYPE
-       SYNTAX     UpsPhaseOutputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular output."
-       INDEX { upsPhaseOutputTableIndex }
-       ::= { upsPhaseOutputTable 1 }
-
-   UpsPhaseOutputEntry ::= SEQUENCE {
-       upsPhaseOutputTableIndex         INTEGER,
-       upsPhaseNumOutputPhases          INTEGER,
-       upsPhaseOutputVoltageOrientation INTEGER,
-       upsPhaseOutputFrequency          INTEGER
-   }
-
-   upsPhaseOutputTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output identifier."
-       ::= { upsPhaseOutputEntry 1 }
-
-   upsPhaseNumOutputPhases OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of output phases utilized in this
-               device.  The sum of all the upsPhaseNumOutputPhases
-               variable indicates the number of rows in the 
-               output phase table."
-       ::= { upsPhaseOutputEntry 2 }
-
-   upsPhaseOutputVoltageOrientation OBJECT-TYPE
-       SYNTAX INTEGER {
-          unknown(1),
-          singlePhase(2),
-          splitPhase(3),
-          threePhasePhaseToNeutral(4),
-          threePhasePhaseToPhase(5)
-       }
-       ACCESS read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output voltage orientation: 
-               1: unknown for this UPS
-               2: singlePhase - phase 1 voltage is between Phase 1
-               and Neutral.
-               3: splitPhase - phase 1 voltage is between Phase 1 and 
-               Neutral; phase 2 voltage is between Phase 2 and Neutral; 
-               phase 3 voltage is between Phase 1 and Phase2.
-               4: threePhasePhaseToNeutral - phase 1 voltage is between
-               Phase 1 and Neutral; phase 2 voltage is between Phase 2 
-               and Neutral; phase 3 voltage is between Phase3 and
-               Neutral.
-               5: threePhasePhaseToPhase - phase 1 voltage is between 
-               Phase 1 and Phase 2; phase 2 voltage is between Phase 2
-               and Phase 3; phase 3 voltage is between Phase 3 and
-               Phase 1."
-       ::= { upsPhaseOutputEntry 3 }
-
-   upsPhaseOutputFrequency OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output frequency in 0.1 Hertz, or -1 if it's
-               unsupported by this UPS."
-       ::= { upsPhaseOutputEntry 4 }
-
-   -- Output Phase Table
-
-   upsPhaseOutputPhaseTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF UpsPhaseOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of output table entries.  The number of
-               entries is given by the sum of the upsPhaseNumOutputPhases."
-       ::= { upsPhaseOutput 3 }
-
-   upsPhaseOutputPhaseEntry OBJECT-TYPE
-       SYNTAX     UpsPhaseOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular output phase."
-       INDEX { upsPhaseOutputPhaseTableIndex, upsPhaseOutputPhaseIndex }
-       ::= { upsPhaseOutputPhaseTable 1 }
-
-   UpsPhaseOutputPhaseEntry ::= SEQUENCE {
-       upsPhaseOutputPhaseTableIndex INTEGER,
-       upsPhaseOutputPhaseIndex      INTEGER,
-       upsPhaseOutputVoltage         INTEGER,
-       upsPhaseOutputCurrent         INTEGER,
-       upsPhaseOutputMaxCurrent      INTEGER,
-       upsPhaseOutputMinCurrent      INTEGER,
-       upsPhaseOutputLoad            INTEGER,
-       upsPhaseOutputMaxLoad         INTEGER,
-       upsPhaseOutputMinLoad         INTEGER,
-       upsPhaseOutputPercentLoad     INTEGER,
-       upsPhaseOutputMaxPercentLoad  INTEGER,
-       upsPhaseOutputMinPercentLoad  INTEGER,      
-       upsPhaseOutputPower           INTEGER,
-       upsPhaseOutputMaxPower        INTEGER,
-       upsPhaseOutputMinPower        INTEGER,
-       upsPhaseOutputPercentPower    INTEGER,
-       upsPhaseOutputMaxPercentPower INTEGER,
-       upsPhaseOutputMinPercentPower INTEGER
-   }
-
-   upsPhaseOutputPhaseTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output identifier."
-       ::= { upsPhaseOutputPhaseEntry 1 }
-
-   upsPhaseOutputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output phase identifier."
-       ::= { upsPhaseOutputPhaseEntry 2 }
-
-   upsPhaseOutputVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output voltage in VAC, or -1 if it's unsupported
-               by this UPS."
-       ::= { upsPhaseOutputPhaseEntry 3 }
-
-   upsPhaseOutputCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output current in 0.1 amperes drawn 
-               by the load on the UPS, or -1 if it's unsupported
-               by this UPS."
-       ::= { upsPhaseOutputPhaseEntry 4 }
-
-   upsPhaseOutputMaxCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum output current in 0.1 amperes measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 5 }
-
-   upsPhaseOutputMinCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum output current in 0.1 amperes measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 6 }
-
-   upsPhaseOutputLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output load in VA, or -1 if it's unsupported
-               by this UPS."
-       ::= { upsPhaseOutputPhaseEntry 7 }
-
-   upsPhaseOutputMaxLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum output load in VA measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 8 }
-
-   upsPhaseOutputMinLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum output load in VA measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 9 }
-
-   upsPhaseOutputPercentLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The percentage of the UPS load capacity in VA at 
-               redundancy @ (n + x) presently being used on this 
-               output phase, or -1 if it's unsupported by this UPS."
-       ::= { upsPhaseOutputPhaseEntry 10 }
-
-   upsPhaseOutputMaxPercentLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum percentage of the UPS load capacity in 
-               VA measured at redundancy @ (n + x) presently 
-               being used on this output phase since the last reset
-               (upsPhaseResetMaxMinValues), or -1 if it's unsupported
-               by this UPS. Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 11 }
-
-   upsPhaseOutputMinPercentLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum percentage of the UPS load capacity in 
-               VA measured at redundancy @ (n + x) presently 
-               being used on this output phase since the last reset
-               (upsPhaseResetMaxMinValues), or -1 if it's unsupported
-               by this UPS. Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 12 }
-
-   upsPhaseOutputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output power in Watts, or -1 if it's
-               unsupported by this UPS."
-       ::= { upsPhaseOutputPhaseEntry 13 }
-
-   upsPhaseOutputMaxPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum output power in Watts measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 14 }
-
-   upsPhaseOutputMinPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum output power in Watts measured
-               since the last reset (upsPhaseResetMaxMinValues), or
-               -1 if it's unsupported by this UPS.
-               Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 15 }
-
-   upsPhaseOutputPercentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The percentage of the UPS power capacity in Watts at 
-               redundancy @ (n + x) presently being used on this 
-               output phase, or -1 if it's unsupported by this UPS."
-       ::= { upsPhaseOutputPhaseEntry 16 }
-
-   upsPhaseOutputMaxPercentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum percentage of the UPS power capacity
-               in Watts measured at redundancy @ (n + x) presently
-               being used on this output phase since the last 
-               reset (upsPhaseResetMaxMinValues), or -1 if it's
-               unsupported by this UPS. Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 17 }
-
-   upsPhaseOutputMinPercentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum percentage of the UPS power capacity
-               in Watts measured at redundancy @ (n + x) presently
-               being used on this output phase since the last 
-               reset (upsPhaseResetMaxMinValues), or -1 if it's
-               unsupported by this UPS. Sampled every 30 seconds."
-       ::= { upsPhaseOutputPhaseEntry 18 }
-
--- the upsOutletGroupStatus group
-
-upsOutletGroupStatusTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of outlet groups for the UPS."
-   ::= { upsOutletGroupStatus 1 }
-
-upsOutletGroupStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsOutletGroupStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting status of the outlet groups. The number of
-       entries is contained in the upsOutletGroupStatusTableSize OID."
-   ::= { upsOutletGroupStatus 2 }
-
-upsOutletGroupStatusEntry OBJECT-TYPE
-   SYNTAX UpsOutletGroupStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlet group status to get."
-   INDEX  { upsOutletGroupStatusIndex}
-   ::= { upsOutletGroupStatusTable 1 }
-
-UpsOutletGroupStatusEntry ::=
-   SEQUENCE {
-      upsOutletGroupStatusIndex          INTEGER,
-      upsOutletGroupStatusName           DisplayString,
-      upsOutletGroupStatusGroupState     INTEGER,
-      upsOutletGroupStatusCommandPending INTEGER
-   }      
-
-upsOutletGroupStatusIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet group entry."
-   ::= { upsOutletGroupStatusEntry 1 }
-
-upsOutletGroupStatusName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The name of the outlet group. This OID is provided
-       for informational purposes only. This value is set
-       by the upsOutletGroupConfigName OID."
-   ::= { upsOutletGroupStatusEntry  2 }
-
-upsOutletGroupStatusGroupState OBJECT-TYPE
-   SYNTAX INTEGER {
-        upsOutletGroupStatusOn      (1),
-        upsOutletGroupStatusOff     (2),
-        upsOutletGroupStatusUnknown (3)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this variable will return the outlet group state. If the outlet
-       group is on, the upsOutletGroupStatusOn (1) value will be returned. If
-       the outlet group is off, the upsOutletGroupStatusOff (2) value will be
-       returned. If the state of the outlet group cannot be determined, the
-       upsOutletGroupStatusUnknown (3) value will be returned."
-
-   ::= { upsOutletGroupStatusEntry 3 }
-
-upsOutletGroupStatusCommandPending OBJECT-TYPE
-   SYNTAX INTEGER {
-        upsOutletGroupCommandPending   (1),
-        upsOutletGroupNoCommandPending (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this variable will return the command pending
-       state of the outlet group. If a command is pending on the 
-       outlet group, the upsOutletGroupCommandPending (1) value
-       will be returned. If there is not a command pending
-       on the outlet group, the upsOutletGroupNoCommandPending (2)
-       will be returned."
-   ::= { upsOutletGroupStatusEntry 4 }  
-
--- the upsOutletGroupConfig group
-
-upsOutletGroupConfigTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of outlet groups for the UPS."
-   ::= { upsOutletGroupConfig 1 }
-
-upsOutletGroupConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsOutletGroupConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The list of outlet groups to configure. The number of entries
-       is defined by the upsOutletGroupConfigTableSize OID."
-   ::= { upsOutletGroupConfig 2  }
-
-upsOutletGroupConfigEntry OBJECT-TYPE
-   SYNTAX UpsOutletGroupConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlet groups to configure."
-   INDEX  { upsOutletGroupConfigIndex}
-   ::= { upsOutletGroupConfigTable 1 }
-
-UpsOutletGroupConfigEntry ::=
-   SEQUENCE {
-      upsOutletGroupConfigIndex          INTEGER,
-      upsOutletGroupConfigName           DisplayString,
-      upsOutletGroupConfigPowerOnDelay   INTEGER,
-      upsOutletGroupConfigPowerOffDelay  INTEGER,
-      upsOutletGroupConfigRebootDuration INTEGER
-   }      
-
-upsOutletGroupConfigIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet group entry."
-   ::= { upsOutletGroupConfigEntry 1 }
-
-upsOutletGroupConfigName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The name of the outlet group."
-   ::= { upsOutletGroupConfigEntry 2 }
-   
-upsOutletGroupConfigPowerOnDelay OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet group will delay 
-       powering on when the delayed on or reboot command is applied.
-       Allowed values are -1 (for Never) or 0 to 600 seconds."
-   ::= { upsOutletGroupConfigEntry 3 }
-   
-upsOutletGroupConfigPowerOffDelay OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet group will delay 
-       powering off when the delayed off command is applied.
-       Allowed values are 0 to 600 seconds."
-   ::= { upsOutletGroupConfigEntry 4 }
-
-upsOutletGroupConfigRebootDuration OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "During a reboot sequence, power is turned off and then 
-       back on. This OID defines the amount of time to wait, 
-       in seconds, after turning the power off, at the start
-       of the sequence, before initiating the power on sequence.
-       Allowed values are 0 to 600 seconds."
-   ::= { upsOutletGroupConfigEntry 5 }
-
--- the upsOutletGroupControl group
-
-upsOutletGroupControlTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of outlet groups for the UPS."
-   ::= { upsOutletGroupControl 1 }
-
-upsOutletGroupControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsOutletGroupControlEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual outlet groups. The number of
-       entries is contained in the upsOutletGroupControlTableSize OID."
-   ::= { upsOutletGroupControl 2 }
-
-upsOutletGroupControlEntry OBJECT-TYPE
-   SYNTAX UpsOutletGroupControlEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlet group to control."
-   INDEX  { upsOutletGroupControlIndex}
-   ::= { upsOutletGroupControlTable 1 }
-
-UpsOutletGroupControlEntry ::=
-   SEQUENCE {
-      upsOutletGroupControlIndex   INTEGER,
-      upsOutletGroupControlName    DisplayString,
-      upsOutletGroupControlCommand INTEGER
-   }      
-
-upsOutletGroupControlIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet group entry."
-   ::= { upsOutletGroupControlEntry 1 }
-
-upsOutletGroupControlName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The name of the outlet group. This OID is provided
-       for informational purposes only. This value is set
-       by the upsOutletGroupConfigName OID."
-   ::= { upsOutletGroupControlEntry  2 }
-   
-upsOutletGroupControlCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-        upsOutletGroupImmediateOn          (1),
-        upsOutletGroupImmediateOff         (2),
-        upsOutletGroupImmediateReboot      (3),
-        upsOutletGroupDelayedOn            (4),
-        upsOutletGroupDelayedOff           (5),
-        upsOutletGroupDelayedReboot        (6),
-        upsOutletGroupCancelPendingCommand (7),
-        upsOutletGroupControlUnknown       (8)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this variable will return the outlet group state. If the outlet
-       group is on, the upsOutletGroupImmediateOn (1) value will be returned. If
-       the outlet group is off, the upsOutletGroupImmediateOff (2) value will be
-       returned. 
-       
-       If the state of the outlet group cannot be determined, the
-       upsOutletGroupControlUnknown (8) value will be returned.
-       
-       Setting this variable to upsOutletGroupImmediateOn (1) will turn the
-       outlet group on.
-       
-       Setting this variable to upsOutletGroupImmediateOff (2) will turn the
-       outlet group off. 
-
-       Setting this variable to upsOutletGroupImmediateReboot (3) will turn the outlet
-       group off, wait the upsOutletGroupConfigRebootDuration OID time, wait the
-       upsOutletGroupConfigPowerOnDelay OID, and then turn the outlet group on.
-      
-       Setting this variable to upsOutletGroupDelayedOn (4) will turn the outlet
-       group on after the upsOutletGroupConfigPowerOnDelay OID has elapsed.
-
-       Setting this variable to upsOutletGroupDelayedOff (5) will turn the outlet
-       group off after the upsOutletGroupConfigPowerOffDelay OID has elapsed.
-
-       Setting this variable to upsOutletGroupDelayedReboot (6) will turn the outlet
-       group off after the upsOutletGroupConfigPowerOffDelay OID has elapsed, wait the
-       upsOutletGroupConfigRebootDuration OID time, wait the
-       upsOutletGroupConfigPowerOnDelay OID, and then turn the outlet group on.
-      
-       Setting this variable to upsOutletGroupCancelPendingCommand (7) will
-       cause any pending command to this outlet group to be canceled."
-   ::= { upsOutletGroupControlEntry 3 }
-
--- the upsDiagnosticIM group
-
-upsDiagIMTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Intelligence Modules in or attached to the UPS."
-   ::= { upsDiagnosticIM 1 }
-
-upsDiagIMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagIMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual Intelligence Modules. The number of
-       entries is contained in the upsDiagIMTableSize OID."
-   ::= { upsDiagnosticIM 2 }
-
-upsDiagIMEntry OBJECT-TYPE
-   SYNTAX UpsDiagIMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics and information of an Intelligence Module."
-   INDEX  { upsDiagIMIndex}
-   ::= { upsDiagIMTable 1 }
-
-UpsDiagIMEntry ::=
-   SEQUENCE {
-      upsDiagIMIndex             INTEGER,
-      upsDiagIMType              INTEGER,
-      upsDiagIMStatus            INTEGER,
-      upsDiagIMFirmwareRev       DisplayString,
-      upsDiagIMSlaveFirmwareRev  DisplayString,
-      upsDiagIMHardwareRev       DisplayString,
-      upsDiagIMSerialNum         DisplayString,
-      upsDiagIMManufactureDate   DisplayString
-   }      
-
-upsDiagIMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Intelligence Module entry."
-   ::= { upsDiagIMEntry 1 }
-
-upsDiagIMType OBJECT-TYPE
-   SYNTAX INTEGER {
-     imUnknown    (1),
-     imMIM        (2),
-     imRIM        (3) 
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The type of the Intelligence Module.
-       imUnknown(1) indicates the IM type is unknown.
-       imMIM(2) indicates the IM type is a Main Intelligence Module.
-       imRIM(3) indicates the IM type is Redundant Intelligence Module."
-   ::= { upsDiagIMEntry  2 }
-   
-upsDiagIMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Intelligence Module.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagIMEntry  3 }
-   
-upsDiagIMFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the Intelligence Module."
-   ::= { upsDiagIMEntry  4 }
-   
-upsDiagIMSlaveFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The slave firmware revision of the Intelligence Module."
-   ::= { upsDiagIMEntry  5 }
-   
-upsDiagIMHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the Intelligence Module."
-   ::= { upsDiagIMEntry  6 }
-   
-upsDiagIMSerialNum OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the Intelligence Module."
-   ::= { upsDiagIMEntry  7 }
-   
-upsDiagIMManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The manufacture date of the Intelligence Module."
-   ::= { upsDiagIMEntry  8 }
-   
--- the upsDiagnosticPowerModules group
-
-upsDiagPMTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Power Modules in or attached to the UPS."
-   ::= { upsDiagnosticPowerModules 1 }
-
-upsDiagPMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagPMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of Individual Power modules. The number of
-       entries is contained in the upsDiagPMTableSize OID."
-   ::= { upsDiagnosticPowerModules 2 }
-
-upsDiagPMEntry OBJECT-TYPE
-   SYNTAX UpsDiagPMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of an Power Module."
-   INDEX  { upsDiagPMIndex}
-   ::= { upsDiagPMTable 1 }
-
-UpsDiagPMEntry ::=
-   SEQUENCE {
-      upsDiagPMIndex           INTEGER,
-      upsDiagPMStatus          INTEGER,
-      upsDiagPMFirmwareRev     DisplayString,
-      upsDiagPMHardwareRev     DisplayString,
-      upsDiagPMSerialNum       DisplayString,
-      upsDiagPMManufactureDate DisplayString
-   }      
-
-upsDiagPMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Power Module entry."
-   ::= { upsDiagPMEntry 1 }
-   
-upsDiagPMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Power Module.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagPMEntry  2 }
-   
-upsDiagPMFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the Power Module."
-   ::= { upsDiagPMEntry  3 }
-   
-upsDiagPMHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the Power Module."
-   ::= { upsDiagPMEntry  4 }
-   
-upsDiagPMSerialNum OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the Power Module."
-   ::= { upsDiagPMEntry  5 }
-   
-upsDiagPMManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The manufacture date of the Power Module."
-   ::= { upsDiagPMEntry  6 }
-
--- the upsDiagnosticBatteries group
-
-upsDiagBatteryTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of batteries in or attached to the UPS."
-   ::= { upsDiagnosticBatteries 1 }
-
-upsDiagBatteryTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagBatteryEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual batteries. The number of
-       entries is contained in the upsDiagBattTableSize OID."
-   ::= { upsDiagnosticBatteries 2 }
-
-upsDiagBatteryEntry OBJECT-TYPE
-   SYNTAX UpsDiagBatteryEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of a battery."
-   INDEX  { upsDiagBatteryIndex}
-   ::= { upsDiagBatteryTable 1 }
-
-UpsDiagBatteryEntry ::=
-   SEQUENCE {
-      upsDiagBatteryFrameIndex      INTEGER,
-      upsDiagBatteryIndex           INTEGER,
-      upsDiagBatteryStatus          INTEGER,
-      upsDiagBatterySerialNumber    DisplayString,
-      upsDiagBatteryFirmwareRev     DisplayString,
-      upsDiagBatteryManufactureDate DisplayString,
-      upsDiagBatteryType            DisplayString
-   }      
-
-upsDiagBatteryFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the battery frame entry.
-       Frame 0 indicates the Main frame. Extended Run (XR) frames
-       start from index 1."
-   ::= { upsDiagBatteryEntry 1 }
-   
-upsDiagBatteryIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the battery entry."
-   ::= { upsDiagBatteryEntry 2 }
-   
-upsDiagBatteryStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown            (1),
-     notInstalled       (2),
-     ok                 (3),
-     failed             (4),
-     highTemperature    (5),
-     replaceImmediately (6),
-     lowCapacity        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the battery.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the battery status is OK.
-       failed(4) indicates the battery status is failed.
-       highTemperature(5) indicates the battery has a high temperature condition.
-       replaceImmediately(6) indicates the battery must be replaced immediately.
-       lowCapacity(7) indicates the battery has a low capacity."
-   ::= { upsDiagBatteryEntry  3 }
-   
-upsDiagBatterySerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the battery."
-   ::= { upsDiagBatteryEntry  4 }
-   
-upsDiagBatteryFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the battery."
-   ::= { upsDiagBatteryEntry  5 }
-   
-upsDiagBatteryManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The manufacture date of the battery."
-   ::= { upsDiagBatteryEntry  6 }
-   
-upsDiagBatteryType OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The battery type or rating for the battery."
-   ::= { upsDiagBatteryEntry  7 }
-   
--- the upsDiagnosticSubsystem group
-
-upsDiagSubSysFrameTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of frames attached to the UPS including the Main frame."
-   ::= { upsDiagnosticSubsystem 1 }
-
-upsDiagSubSysFrameTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysFrameEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual XR Frames."
-   ::= { upsDiagnosticSubsystem 2 }
-
-upsDiagSubSysFrameEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysFrameEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of an XR Frame."
-   INDEX  { upsDiagSubSysFrameIndex}
-   ::= { upsDiagSubSysFrameTable 1 }
-
-UpsDiagSubSysFrameEntry ::=
-   SEQUENCE {
-      upsDiagSubSysFrameIndex                 INTEGER,
-      upsDiagSubSysFrameType                  INTEGER,
-      upsDiagSubSysFrameFirmwareRev           DisplayString,
-      upsDiagSubSysFrameHardwareRev           DisplayString,
-      upsDiagSubSysFrameSerialNum             DisplayString,
-      upsDiagSubSysFrameManufactureDate       DisplayString
-   }      
-
-upsDiagSubSysFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysFrameEntry 1 }
-      
-upsDiagSubSysFrameType OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown            (1),
-     notInstalled       (2),
-     frameTypeMain      (3),
-     frameTypeXR        (4),
-     frameTypeLXR       (5)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The type of Frame.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       frameTypeMain(3) indicates the the frame type is the Main Frame.
-       frameTypeXR(4) indicates the frame type is an XR Frame.
-       frameTypeLXR(5) indicates the frame type is an LXR Frame."
-   ::= { upsDiagSubSysFrameEntry 2 }
-      
-upsDiagSubSysFrameFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the frame."
-   ::= { upsDiagSubSysFrameEntry 3 }
-      
-upsDiagSubSysFrameHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the frame."
-   ::= { upsDiagSubSysFrameEntry 4 }
-      
-upsDiagSubSysFrameSerialNum OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the frame."
-   ::= { upsDiagSubSysFrameEntry 5 }
-      
-upsDiagSubSysFrameManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The manufacture date of the frame."
-   ::= { upsDiagSubSysFrameEntry 6 }
-      
-upsDiagSubSysIntBypSwitchTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Internal Bypass switches attached to the UPS."
-   ::= { upsDiagnosticSubsystem 3 }
-
-upsDiagSubSysIntBypSwitchTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysIntBypSwitchEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of the Internal Bypass Switch."
-   ::= { upsDiagnosticSubsystem 4 }
-
-upsDiagSubSysIntBypSwitchEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysIntBypSwitchEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of the Internal Bypass Switch."
-   INDEX  { upsDiagSubSysIntBypSwitchIndex}
-   ::= { upsDiagSubSysIntBypSwitchTable 1 }
-
-UpsDiagSubSysIntBypSwitchEntry ::=
-   SEQUENCE {
-      upsDiagSubSysIntBypSwitchFrameIndex            INTEGER,
-      upsDiagSubSysIntBypSwitchIndex                 INTEGER,
-      upsDiagSubSysIntBypSwitchStatus                INTEGER,
-      upsDiagSubSysIntBypSwitchFirmwareRev           DisplayString,
-      upsDiagSubSysIntBypSwitchHardwareRev           DisplayString,
-      upsDiagSubSysIntBypSwitchSerialNum             DisplayString,
-      upsDiagSubSysIntBypSwitchManufactureDate       DisplayString
-   }      
-
-upsDiagSubSysIntBypSwitchFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysIntBypSwitchEntry 1 }
-      
-upsDiagSubSysIntBypSwitchIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Internal Bypass Switch index entry."
-   ::= { upsDiagSubSysIntBypSwitchEntry 2 }
-      
-upsDiagSubSysIntBypSwitchStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Internal Bypass Switch status.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysIntBypSwitchEntry 3 }
-      
-upsDiagSubSysIntBypSwitchFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the Internal Bypass Switch."
-   ::= { upsDiagSubSysIntBypSwitchEntry 4 }
-      
-upsDiagSubSysIntBypSwitchHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the Internal Bypass Switch."
-   ::= { upsDiagSubSysIntBypSwitchEntry 5 }
-      
-upsDiagSubSysIntBypSwitchSerialNum OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the Internal Bypass Switch."
-   ::= { upsDiagSubSysIntBypSwitchEntry 6 }
-      
-upsDiagSubSysIntBypSwitchManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The manufacture date of the Internal Bypass Switch."
-   ::= { upsDiagSubSysIntBypSwitchEntry 7 }
-      
-upsDiagSubSysBattMonitorTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Battery Monitor Boards attached to the UPS."
-   ::= { upsDiagnosticSubsystem 5 }
-
-upsDiagSubSysBattMonitorTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysBattMonitorEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of the Battery Monitor Board."
-   ::= { upsDiagnosticSubsystem 6 }
-
-upsDiagSubSysBattMonitorEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysBattMonitorEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of the Battery Monitor Board."
-   INDEX  { upsDiagSubSysBattMonitorIndex}
-   ::= { upsDiagSubSysBattMonitorTable 1 }
-
-UpsDiagSubSysBattMonitorEntry ::=
-   SEQUENCE {
-      upsDiagSubSysBattMonitorFrameIndex            INTEGER,
-      upsDiagSubSysBattMonitorIndex                 INTEGER,
-      upsDiagSubSysBattMonitorStatus                INTEGER,
-      upsDiagSubSysBattMonitorFirmwareRev           DisplayString,
-      upsDiagSubSysBattMonitorHardwareRev           DisplayString,
-      upsDiagSubSysBattMonitorSerialNum             DisplayString,
-      upsDiagSubSysBattMonitorManufactureDate       DisplayString
-   }      
-
-upsDiagSubSysBattMonitorFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysBattMonitorEntry 1 }
-      
-upsDiagSubSysBattMonitorIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the Battery Monitor Board."
-   ::= { upsDiagSubSysBattMonitorEntry 2 }
-      
-upsDiagSubSysBattMonitorStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Battery Monitor Board.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysBattMonitorEntry 3 }
-      
-upsDiagSubSysBattMonitorFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the Battery Monitor Board."
-   ::= { upsDiagSubSysBattMonitorEntry 4 }
-      
-upsDiagSubSysBattMonitorHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the Battery Monitor Board."
-   ::= { upsDiagSubSysBattMonitorEntry 5 }
-      
-upsDiagSubSysBattMonitorSerialNum OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the Battery Monitor Board."
-   ::= { upsDiagSubSysBattMonitorEntry 6 }
-      
-upsDiagSubSysBattMonitorManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date of the manufacture for the Battery Monitor Board."
-   ::= { upsDiagSubSysBattMonitorEntry  7 }
-         
-upsDiagSubSysExternalSwitchGearTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of External Switch Gears attached to the UPS."
-   ::= { upsDiagnosticSubsystem 7 }
-
-upsDiagSubSysExternalSwitchGearTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysExternalSwitchGearEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of the individual External Switch Gear."
-   ::= { upsDiagnosticSubsystem 8 }
-
-upsDiagSubSysExternalSwitchGearEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysExternalSwitchGearEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of an individual External Switch Gear."
-   INDEX  { upsDiagSubSysExternalSwitchGearIndex}
-   ::= { upsDiagSubSysExternalSwitchGearTable 1 }
-
-UpsDiagSubSysExternalSwitchGearEntry ::=
-   SEQUENCE {
-      upsDiagSubSysExternalSwitchGearFrameIndex            INTEGER,
-      upsDiagSubSysExternalSwitchGearIndex                 INTEGER,
-      upsDiagSubSysExternalSwitchGearStatus                INTEGER,
-      upsDiagSubSysExternalSwitchGearFirmwareRev           DisplayString,
-      upsDiagSubSysExternalSwitchGearHardwareRev           DisplayString,
-      upsDiagSubSysExternalSwitchGearSerialNum             DisplayString,
-      upsDiagSubSysExternalSwitchGearManufactureDate       DisplayString
-   }      
-
-upsDiagSubSysExternalSwitchGearFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysExternalSwitchGearEntry 1 }
-      
-upsDiagSubSysExternalSwitchGearIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the External Switch Gear."
-   ::= { upsDiagSubSysExternalSwitchGearEntry 2 }
-      
-upsDiagSubSysExternalSwitchGearStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the External Switch Gear.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysExternalSwitchGearEntry 3 }
-      
-upsDiagSubSysExternalSwitchGearFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the External Switch Gear monitor card."
-   ::= { upsDiagSubSysExternalSwitchGearEntry 4 }
-      
-upsDiagSubSysExternalSwitchGearHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the External Switch Gear monitor card."
-   ::= { upsDiagSubSysExternalSwitchGearEntry 5 }
-      
-upsDiagSubSysExternalSwitchGearSerialNum OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The serial number of the External Switch Gear monitor card."
-   ::= { upsDiagSubSysExternalSwitchGearEntry 6 }
-      
-upsDiagSubSysExternalSwitchGearManufactureDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date of the manufacture for the External Switch Gear monitor card."
-   ::= { upsDiagSubSysExternalSwitchGearEntry  7 }
-
-upsDiagSubSysDisplayInterfaceCardTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Display Interface Cards attached to the UPS."
-   ::= { upsDiagnosticSubsystem 9 }
-
-upsDiagSubSysDisplayInterfaceCardTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysDisplayInterfaceCardEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual Display Interface Cards."
-   ::= { upsDiagnosticSubsystem 10 }
-
-upsDiagSubSysDisplayInterfaceCardEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysDisplayInterfaceCardEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of a Display Interface Card."
-   INDEX  { upsDiagSubSysDisplayInterfaceCardIndex}
-   ::= { upsDiagSubSysDisplayInterfaceCardTable 1 }
-
-UpsDiagSubSysDisplayInterfaceCardEntry ::=
-   SEQUENCE {
-      upsDiagSubSysDisplayInterfaceCardFrameIndex            INTEGER,
-      upsDiagSubSysDisplayInterfaceCardIndex                 INTEGER,
-      upsDiagSubSysDisplayInterfaceCardStatus                INTEGER
-   }      
-
-upsDiagSubSysDisplayInterfaceCardFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysDisplayInterfaceCardEntry 1 }
-      
-upsDiagSubSysDisplayInterfaceCardIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the Display Interface Card."
-   ::= { upsDiagSubSysDisplayInterfaceCardEntry 2 }
-      
-upsDiagSubSysDisplayInterfaceCardStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Display Interface Card.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysDisplayInterfaceCardEntry 3 }
-      
-upsDiagSubSysDCCircuitBreakerTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC Circuit Breakers attached to the UPS."
-   ::= { upsDiagnosticSubsystem 11 }
-
-upsDiagSubSysDCCircuitBreakerTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysDCCircuitBreakerEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual DC Circuit Breakers."
-   ::= { upsDiagnosticSubsystem 12 }
-
-upsDiagSubSysDCCircuitBreakerEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysDCCircuitBreakerEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of a DC Circuit Breaker."
-   INDEX  { upsDiagSubSysDCCircuitBreakerIndex}
-   ::= { upsDiagSubSysDCCircuitBreakerTable 1 }
-
-UpsDiagSubSysDCCircuitBreakerEntry ::=
-   SEQUENCE {
-      upsDiagSubSysDCCircuitBreakerFrameIndex            INTEGER,
-      upsDiagSubSysDCCircuitBreakerIndex                 INTEGER,
-      upsDiagSubSysDCCircuitBreakerStatus                INTEGER
-   }      
-
-upsDiagSubSysDCCircuitBreakerFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysDCCircuitBreakerEntry 1 }
-      
-upsDiagSubSysDCCircuitBreakerIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the DC Circuit Breaker."
-   ::= { upsDiagSubSysDCCircuitBreakerEntry 2 }
-      
-upsDiagSubSysDCCircuitBreakerStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     opened          (3),
-     closed          (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the DC Circuit Breaker.
-       unknown(1) indicates the circuit breaker status is unknown.
-       notInstalled(2) indicates the circuit breaker is not installed.
-       opened(3) indicates the circuit breaker is opened.
-       closed(4) indicates the circuit breaker is closed."
-   ::= { upsDiagSubSysDCCircuitBreakerEntry 3 }
-      
-upsDiagSubSysSystemPowerSupplyTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of System Power Supplies attached to the UPS."
-   ::= { upsDiagnosticSubsystem 13 }
-
-upsDiagSubSysSystemPowerSupplyTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysSystemPowerSupplyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual System Power Supplies."
-   ::= { upsDiagnosticSubsystem 14 }
-
-upsDiagSubSysSystemPowerSupplyEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysSystemPowerSupplyEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of a System Power Supply."
-   INDEX  { upsDiagSubSysSystemPowerSupplyIndex}
-   ::= { upsDiagSubSysSystemPowerSupplyTable 1 }
-
-UpsDiagSubSysSystemPowerSupplyEntry ::=
-   SEQUENCE {
-      upsDiagSubSysSystemPowerSupplyFrameIndex            INTEGER,
-      upsDiagSubSysSystemPowerSupplyIndex                 INTEGER,
-      upsDiagSubSysSystemPowerSupplyStatus                INTEGER
-   }      
-
-upsDiagSubSysSystemPowerSupplyFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysSystemPowerSupplyEntry 1 }
-      
-upsDiagSubSysSystemPowerSupplyIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of a System Power Supply."
-   ::= { upsDiagSubSysSystemPowerSupplyEntry 2 }
-      
-upsDiagSubSysSystemPowerSupplyStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the System Power Supply.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysSystemPowerSupplyEntry 3 }
-      
-upsDiagSubSysXRCommunicationCardTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of XR Communication Cards attached to the UPS."
-   ::= { upsDiagnosticSubsystem 15 }
-
-upsDiagSubSysXRCommunicationCardTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysXRCommunicationCardEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual XR Communication Cards."
-   ::= { upsDiagnosticSubsystem 16 }
-
-upsDiagSubSysXRCommunicationCardEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysXRCommunicationCardEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of an XR Communication Card."
-   INDEX  { upsDiagSubSysXRCommunicationCardIndex}
-   ::= { upsDiagSubSysXRCommunicationCardTable 1 }
-
-UpsDiagSubSysXRCommunicationCardEntry ::=
-   SEQUENCE {
-      upsDiagSubSysXRCommunicationCardFrameIndex            INTEGER,
-      upsDiagSubSysXRCommunicationCardIndex                 INTEGER,
-      upsDiagSubSysXRCommunicationCardStatus                INTEGER
-   }      
-
-upsDiagSubSysXRCommunicationCardFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysXRCommunicationCardEntry 1 }
-      
-upsDiagSubSysXRCommunicationCardIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of an XR Communication Card."
-   ::= { upsDiagSubSysXRCommunicationCardEntry 2 }
-      
-upsDiagSubSysXRCommunicationCardStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the XR Communication Card.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysXRCommunicationCardEntry 3 }
-      
-upsDiagSubSysExternalPowerFrameBoardTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of External Power Frame Boards attached to the UPS."
-   ::= { upsDiagnosticSubsystem 17 }
-
-upsDiagSubSysExternalPowerFrameBoardTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysExternalPowerFrameBoardEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual External Power Frame Boards."
-   ::= { upsDiagnosticSubsystem 18 }
-
-upsDiagSubSysExternalPowerFrameBoardEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysExternalPowerFrameBoardEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of an External Power Frame Board."
-   INDEX  { upsDiagSubSysExternalPowerFrameBoardIndex}
-   ::= { upsDiagSubSysExternalPowerFrameBoardTable 1 }
-
-UpsDiagSubSysExternalPowerFrameBoardEntry ::=
-   SEQUENCE {
-      upsDiagSubSysExternalPowerFrameBoardFrameIndex            INTEGER,
-      upsDiagSubSysExternalPowerFrameBoardIndex                 INTEGER,
-      upsDiagSubSysExternalPowerFrameBoardStatus                INTEGER
-   }      
-
-upsDiagSubSysExternalPowerFrameBoardFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysExternalPowerFrameBoardEntry 1 }
-      
-upsDiagSubSysExternalPowerFrameBoardIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of an External Power Frame Board."
-   ::= { upsDiagSubSysExternalPowerFrameBoardEntry 2 }
-      
-upsDiagSubSysExternalPowerFrameBoardStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the External Power Frame Board.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysExternalPowerFrameBoardEntry 3 }
-      
-upsDiagSubSysChargerTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of Chargers attached to the UPS."
-   ::= { upsDiagnosticSubsystem 19 }
-
- upsDiagSubSysChargerTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF UpsDiagSubSysChargerEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for diagnostics of individual chargers."
-   ::= { upsDiagnosticSubsystem 20 }
-
-upsDiagSubSysChargerEntry OBJECT-TYPE
-   SYNTAX UpsDiagSubSysChargerEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The diagnostics of a charger."
-   INDEX  { upsDiagSubSysChargerIndex}
-   ::= { upsDiagSubSysChargerTable 1 }
-
-UpsDiagSubSysChargerEntry ::=
-   SEQUENCE {
-      upsDiagSubSysChargerFrameIndex            INTEGER,
-      upsDiagSubSysChargerIndex                 INTEGER,
-      upsDiagSubSysChargerStatus                INTEGER
-   }      
-
-upsDiagSubSysChargerFrameIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The frame index entry."
-   ::= { upsDiagSubSysChargerEntry 1 }
-      
-upsDiagSubSysChargerIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of a charger."
-   ::= { upsDiagSubSysChargerEntry 2 }
-      
-upsDiagSubSysChargerStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     offOk           (3),
-     onOk            (4),
-     offFail         (5),
-     onFail          (6),
-     lostComm        (7)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Charger.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       offOk(3) indicates the device status is off and OK.
-       onOk(4) indicates the device status is on and OK.
-       offFail(5) indicates the device status is off and failed.
-       onFail(6) indicates the device status is on and failed.
-       lostComm(7) indicates the device has lost communication."
-   ::= { upsDiagSubSysChargerEntry 3 }
-      
--- the upsDiagnosticExternalDevices group
-
-upsDiagSwitchGearStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     fail            (4),
-     lostComm        (5),
-     overtemp        (6)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Switch Gear.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       fail(4) indicates the device status has failed.
-       lostComm(5) indicates the device has lost communication.
-       overtemp(6) indicates the device has an over temperature condition."
-   ::= { upsDiagSwitchGear  1 }
-   
-upsDiagSwitchGearInputSwitchStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     opened          (3),
-     closed          (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Switch Gear Input Switch.
-       unknown(1) indicates the switch status is unknown.
-       notInstalled(2) indicates the switch is not installed.
-       opened(3) indicates the switch is opened.
-       closed(4) indicates the switch is closed."
-   ::= { upsDiagSwitchGear  2 }
-
-upsDiagSwitchGearOutputSwitchStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     opened          (3),
-     closed          (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Switch Gear Output Switch.
-       unknown(1) indicates the switch status is unknown.
-       notInstalled(2) indicates the switch is not installed.
-       opened(3) indicates the switch is opened.
-       closed(4) indicates the switch is closed."
-   ::= { upsDiagSwitchGear  3 }
-
-upsDiagSwitchGearBypassSwitchStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     opened          (3),
-     closed          (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Switch Gear Bypass Switch.
-       unknown(1) indicates the switch status is unknown.
-       notInstalled(2) indicates the switch is not installed.
-       opened(3) indicates the switch is opened.
-       closed(4) indicates the switch is closed."
-   ::= { upsDiagSwitchGear  4 }
-
-upsDiagMCCBBoxStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     opened          (3),
-     closed          (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the MCCB Box (Molded Case Circuit Breaker Box) external device.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       opened(3) indicates the circuit is opened.
-       closed(4) indicates the circuit is closed."
-   ::= { upsDiagMCCBBox  1 }
-
-upsDiagTransformerStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     fail            (4),
-     lostComm        (5),
-     overtemp        (6),
-     opened          (7),
-     closed          (8)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the External Transformer.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       fail(4) indicates the device status has failed.
-       lostComm(5) indicates the device has lost communication.
-       overtemp(6) indicates the device has an over temperature condition.
-       opened(7) indicates the circuit is opened.
-       closed(8) indicates the circuit is closed."
-   ::= { upsDiagTransformer  1 }
-
--- the upsDiagnosticComBus group
-
-upsDiagComBusInternalMIMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     lostComm        (4),
-     rxFailure       (5),
-     txFailure       (6)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the internal MIM communication bus.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       lostComm(4) indicates the device has lost communication.
-       rxFailure(5) indicates the device has a receive failure.
-       txFailure(6) indicates the device has a transmit failure."
-   ::= { upsDiagnosticComBus  1 }
-
-upsDiagComBusInternalRIMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     lostComm        (4),
-     rxFailure       (5),
-     txFailure       (6)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the internal RIM communication bus.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       lostComm(4) indicates the device has lost communication.
-       rxFailure(5) indicates the device has a receive failure.
-       txFailure(6) indicates the device has a transmit failure."
-   ::= { upsDiagnosticComBus  2 }
-
-upsDiagComBusMIMtoRIMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     lostComm        (4),
-     rxFailure       (5),
-     txFailure       (6)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the MIM to RIM communication bus.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       lostComm(4) indicates the device has lost communication.
-       rxFailure(5) indicates the device has a receive failure.
-       txFailure(6) indicates the device has a transmit failure."
-   ::= { upsDiagnosticComBus  3 }
-
-upsDiagComBusExternalMIMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     lostComm        (4),
-     rxFailure       (5),
-     txFailure       (6)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the external MIM communication bus.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       lostComm(4) indicates the device has lost communication.
-       rxFailure(5) indicates the device has a receive failure.
-       txFailure(6) indicates the device has a transmit failure."
-   ::= { upsDiagnosticComBus  4 }
-
-upsDiagComBusExternalRIMStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-     unknown         (1),
-     notInstalled    (2),
-     ok              (3),
-     lostComm        (4),
-     rxFailure       (5),
-     txFailure       (6)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the external RIM communication bus.
-       unknown(1) indicates the device status is unknown.
-       notInstalled(2) indicates the device is not installed.
-       ok(3) indicates the device status is OK.
-       lostComm(4) indicates the device has lost communication.
-       rxFailure(5) indicates the device has a receive failure.
-       txFailure(6) indicates the device has a transmit failure."
-   ::= { upsDiagnosticComBus  5 }
-
--- the serialPort2Config group
-
-serialPort2Mode OBJECT-TYPE
-   SYNTAX INTEGER  {
-      localConsole(1),
-      passthrough(2)
-   }
-   ACCESS read-write
-   STATUS obsolete
-   DESCRIPTION
-      "Setting this variable to passthrough will enable mini's port2
-       behave like a UPS port. Choosing localConsole will enable the port
-       to be used as local console."
-      ::= { serialPort2Config 1 }
--- the serialPort2Control group
-
-setPulseOnTXD OBJECT-TYPE
-   SYNTAX INTEGER  {
-      noSetPulseOnTXD(1),
-      setPulseOnTXD(2),
-      setTXDLow(3),
-      setTXDHigh(4)
-
-   }
-   ACCESS read-write
-   STATUS obsolete
-   DESCRIPTION
-      "Setting this variable to setPulseOnTXD(2) 
-       causes adapter to generate a PULSE on TXD pin of serial port 2.
-       The duration in the prototype implementation will be 1 second.
-
-       Setting this value to noSetPulseOnTXD(1) has no
-       effect.
-      
-       The value noSetPulseOnTXD(1) will always be returned
-       when the variable is read.
-
-       Setting this value to setTXDLow(3), or setTXDHigh(4) will keep TXD
-       always low or high respectively."
-      ::= { serialPort2Control 1 }
-
--- the sPDUIdent group
-
-sPDUIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the PDU. This value 
-       is set at the factory."
-   ::= { sPDUIdent 1 }
-
-sPDUIdentFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An 8 byte ID string identifying the PDU firmware revision. 
-       This value is set at the factory." 
-   ::= {  sPDUIdent 2 }
-
-
-sPDUIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the PDU was manufactured in mm/dd/yy format.
-       This value is set at the factory. The year 2000 will be 
-       represented by 00." 
-   ::= { sPDUIdent 3 }
-   
-sPDUIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 10-character string identifying the model number of 
-       the PDU internal. This value is set at the factory."
-   ::= { sPDUIdent 4 }
-
-sPDUIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 12-character string identifying the serial number of 
-       the PDU internal microprocessor. This value is set at
-       the factory."
-   ::= { sPDUIdent 5 }
-   
-
--- the sPDUMasterControl group
-
-sPDUMasterControlSwitch  OBJECT-TYPE
-  SYNTAX INTEGER       {
-      turnAllOnNow              (1),
-      turnAllOnSequence         (2),
-      turnAllOffNow             (3),
-      rebootAllNow              (4),
-      rebootAllSequence         (5),
-      noCommand                 (6),
-      turnAllOffSequence        (7)
-   }
-   
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to turnAllOnNow (1) will turn all outlets
-       on immediately.
-       
-       Setting this OID to turnAllOnSequence (2) will turn all outlets
-       on as defined by each outlet's sPDUOutletPowerOnTime OID value.
-       
-       Setting this OID to turnAllOff (3) will turn all outlets
-       off immediately.
-       
-       Setting this OID to rebootAllNow (4) will reboot all outlets
-       immediately.
-       
-       For MasterSwitch firmware version 1.X, setting this OID to 
-       rebootAllSequence (5) reboots all outlets, with power returned 
-       to the outlets in the sequence defined by each outlet's 
-       sPDUOutletPowerOnTime OID value.
-       
-       For MasterSwitch firmware version 2.X, setting this OID to 
-       rebootAllSequence (5) will cause a turnAllOffSequence to be performed. 
-       Once all outlets are off, the MasterSwitch will then delay the 
-       sPDUMasterConfigReboot OID time, and then perform a turnAllOnSequence.    
-
-       For MasterSwitch firmware version 2.X, setting this OID to 
-       turnAllOffSequence (7) will turn all outlets off as defined by 
-       each outlet's sPDUOutletPowerOffTime OID value.
-       
-       For MasterSwitch firmware version 1.X, setting this OID to 
-       turnAllOffSequence (7) will have no effect.
-
-       Getting this OID will return the noCommand (6) value."
-              
-   ::= { sPDUMasterControl 1 }
-
-   
-sPDUMasterState  OBJECT-TYPE
-   SYNTAX DisplayString       
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-          "Getting this OID will cause the status of all outlets to be 
-          returned. This OID is provided for informational purposes only.
-          To change the outlet state, the user should use the sPDUOutletCtl
-          OID in the sPDUOutletControlTable.
-
-          The format of the data returned is a character string consisting
-          of the word 'On' if the outlet is on or 'Off' if the outlet is
-          off. At least one space will delimit each outlet entry in the 
-          string. 
-          
-          If the outlet states are unknown, the character string 'Unknown'
-          will be returned. This signifies that there is an inconsistancy 
-          in the PDU. In the rare case that this should happen, the user 
-          is advised to shut down all equipment powered by the PDU and 
-          then cycle the PDU's power. This will put the PDU in a consistent
-          state."
-           
-   ::= { sPDUMasterControl 2 }
-
-sPDUMasterPending    OBJECT-TYPE
-   SYNTAX DisplayString       
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-          "Getting this OID will cause the command pending status of all outlets to be returned.
-
-          The format of the data returned is a character string consisting
-          of the word 'Yes' if a command is pending for the outlet or 'No'
-          if there is no command pending for the outlet. At least one 
-          space will delimit each outlet entry in the string. 
-          
-          If the pending states are unknown, the character string 'Unknown'
-          will be returned. This signifies that there is an inconsistancy 
-          in the PDU. In the rare case that this should happen, the user 
-          is advised to shut down all equipment powered by the PDU and then
-          cycle the PDU's power. This will put the PDU in a consistent state."
-  ::= { sPDUMasterControl 3 }
-
-
--- the sPDUMasterConfig group
-   
-sPDUMasterConfigPowerOn  OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in seconds, between when
-        power is provided to the PDU and when the PDU
-        provides basic master power to the outlets.       
-       
-       Allowed values are:
-
-       -1 never apply power automatically.
-       0 apply power immediately.
-       15 apply power in 15 seconds.
-       30 apply power in 30 seconds.
-       45 apply power in 45 seconds.
-       60 apply power in 60 seconds  (1 minute).
-       120 apply power in 120 seconds (2 minutes).
-       300 apply power in 300 seconds (5 minutes).
-       
-       If a value other than a supported value is provided in a 
-       set request, the PDU interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-       
-   ::= { sPDUMasterConfig 1 }
-
-sPDUMasterConfigReboot   OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "During a reboot sequence, power is turned off and then 
-       back on. This OID defines the amount of time to wait, 
-       in seconds, after turning the power off, at the start
-       of the sequence, before turning power back on, at the
-       end of the reboot sequence.       
-       
-       Allowed values are:
-       
-       5 wait 5 seconds between off/on.
-       10 wait 10 seconds between off/on.
-       15 wait 15 seconds between off/on.
-       20 wait 20 seconds between off/on.
-       30 wait 30 seconds between off/on.
-       45 wait 45 seconds between off/on.
-       60 wait 60 seconds (1 minute) between off/on.
-       
-       If a value other than a supported value is provided in a 
-       set request, the PDU interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used.
-
-       This OID is read-only for the MasterSwitch version 2.X and is the 
-       maximum sPDUOutletRebootDuration OID of the individual outlets."
-       
-   ::= { sPDUMasterConfig 2 }
-   
-sPDUMasterConfigPDUName  OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the PDU. The maximum value is 20 characters."
-   ::= { sPDUMasterConfig 3 }
-
-
-
--- the sPDUOutletControl group
-sPDUOutletControlTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of outlets for the PDU."
-   ::= { sPDUOutletControl 1 }
-
-   
-sPDUOutletControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletControlEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual outlet switches. The number of
-       entries is contained in the sPDUOutletControlTableSize OID."
-   ::= { sPDUOutletControl 2 }
-
-sPDUOutletControlEntry OBJECT-TYPE
-   SYNTAX OutletControlEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to control."
-   INDEX  { sPDUOutletControlIndex}
-   ::= { sPDUOutletControlTable 1 }
-
-OutletControlEntry ::=
-   SEQUENCE {
-      sPDUOutletControlIndex  INTEGER,
-      sPDUOutletPending       INTEGER,
-      sPDUOutletCtl           INTEGER,
-      sPDUOutletCtlName       DisplayString    
-   }      
-
-sPDUOutletControlIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletControlEntry 1 }
-   
-sPDUOutletPending OBJECT-TYPE
-   SYNTAX INTEGER{
-        commandPending        (1),
-        noCommandPending      (2),
-        commandPendingUnknown (3)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Reports whether the current outlet has a pending command.
-      
-       If the commandPendingUnknown (3) value is returned, all 
-       devices powered by the PDU should be shut down. The PDU's
-       power should then be cycled to clear this condition."
-       
-   ::= { sPDUOutletControlEntry 2 }
-   
-sPDUOutletCtl OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletOn              (1),
-        outletOff             (2),
-        outletReboot          (3),
-        outletUnknown         (4),
-        outletOnWithDelay     (5),
-        outletOffWithDelay    (6),
-        outletRebootWithDelay (7)
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the outletOn (1) value will be returned.
-       If the outlet is off, the outletOff (2) value will be
-       returned. 
-       
-       If the state of the outlet cannot be determined, the 
-       outletUnknown (4) value will be returned. If the 
-       outletUnknown condition should occur, all devices 
-       powered by the PDU should be shut down. The PDU's power 
-       should then be cycled to clear this condition.
-       
-       Setting this variable to outletOn (1) will turn the outlet on.
-       
-       Setting this variable to outletOff (2) will turn the outlet off. 
-
-       Setting this variable to outletReboot (3) will reboot the outlet.
-      
-       Setting this variable to outletOnWithDelay (5) will turn the outlet on
-       after the sPDUOutletPowerOnTime OID has elapsed. This option is not
-       valid for MasterSwitch firmware version 1.X.
-
-       Setting this variable to outletOffWithDelay (6) will turn the outlet off
-       after the sPDUOutletPowerOffTime OID has elapsed. This option is not valid
-       for MasterSwitch firmware version 1.X.
-
-       Setting this variable to outletRebootWithDelay (7) will turn the outlet off
-       after the sPDUOutletPowerOffTime OID has elapsed, wait the sPDUOutletRebootDuration
-       OID time, then turn the outlet back on.  
-       This option is not valid for MasterSwitch firmware version 1.X."
-
-   ::= { sPDUOutletControlEntry 3 }
-
-sPDUOutletCtlName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is 20 characters.
-       This OID is provided for informational purposes only.
-       This value is set by the sPDUOutletName OID."
-       
-   ::= { sPDUOutletControlEntry  4 }
-
--- the sPDUOutletConfig group
-sPDUOutletConfigTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of outlets for the PDU."
-   ::= { sPDUOutletConfig 1 }
-
-sPDUOutletConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF SPDUOutletConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The list of outlets to configure. The number of
-       entries is defined by the sPDUOutletConfigTableSize
-       OID."
-       
-   ::= { sPDUOutletConfig 2  }
-
-sPDUOutletConfigEntry OBJECT-TYPE
-   SYNTAX SPDUOutletConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to control."
-   INDEX  { sPDUOutletConfigIndex}
-   ::= { sPDUOutletConfigTable 1 }
-
-SPDUOutletConfigEntry ::=
-   SEQUENCE {
-      sPDUOutletConfigIndex    INTEGER,
-      sPDUOutletPowerOnTime    INTEGER,
-      sPDUOutletName           DisplayString,
-      sPDUOutletPowerOffTime   INTEGER,
-      sPDUOutletRebootDuration INTEGER
-   }      
-
-sPDUOutletConfigIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletConfigEntry 1 }
-   
-sPDUOutletPowerOnTime OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet will delay 
-       powering on when the MasterSwitch is powered on.
-              
-       Allowed values are:
-       
-       -1 never power on automatically.
-       0  power on with the Master Switch.
-       15 power on 15 seconds after the MasterSwitch has power applied.
-       30 power on 30 seconds after the MasterSwitch has power applied.
-       45 power on 45 seconds after the MasterSwitch has power applied.
-       60 power on 60 seconds (1 minute) after the MasterSwitch has power applied.
-       120 power on 120 seconds (2 minutes) after the MasterSwitch has power applied.
-       300 power on 300 seconds (5 minutes) after the MasterSwitch has power applied.
-       
-       If a value other than a supported value is provided in a 
-       set request, the PDU interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-
-   ::= { sPDUOutletConfigEntry 2 }
-   
-sPDUOutletName   OBJECT-TYPE
-   SYNTAX  DisplayString    ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is 20 characters."
-
-   ::= { sPDUOutletConfigEntry  3 }
-
-sPDUOutletPowerOffTime OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet will delay 
-       powering off.
-              
-       Allowed values are:
-       
-       -1 never power off automatically.
-       0  power off with the MasterSwitch.
-       15 power off 15 seconds after being commanded.
-       30 power off 30 seconds after being commanded.
-       45 power off 45 seconds after being commanded.
-       60 power off 60 seconds (1 minute) after being commanded.
-       120 power off 120 seconds (2 minutes) after being commanded.
-       300 power off 300 seconds (5 minutes) after being commanded.
-       
-       If a value other than a supported value is provided in a 
-       set request, the PDU interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used.
-       
-       This OID is not available for MasterSwitch firmware version 1.X."
-
-   ::= { sPDUOutletConfigEntry 4 }
-
-sPDUOutletRebootDuration OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "During a reboot sequence, power is turned off and then 
-       back on. This OID defines the amount of time to wait, 
-       in seconds, after turning the power off, at the start
-       of the sequence, before turning power back on, at the
-       end of the reboot sequence.       
-       
-       Allowed values are:
-       
-       5 wait 5 seconds between off/on.
-       10 wait 10 seconds between off/on.
-       15 wait 15 seconds between off/on.
-       20 wait 20 seconds between off/on.
-       30 wait 30 seconds between off/on.
-       45 wait 45 seconds between off/on.
-       60 wait 60 seconds (1 minute) between off/on.
-       
-       If a value other than a supported value is provided in a 
-       set request, the PDU interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used.
-
-       This OID is not available for MasterSwitch firmware version 1.X."
-       
-   ::= { sPDUOutletConfigEntry 5 }
-
-
--- the sPDUIdentVM group
-
-sPDUIdentVMTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch VMs controllable
-       by this IP address."
-   ::= { sPDUIdentVM 1 }
-
-   
-sPDUIdentVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IdentVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for query of the individual MasterSwitch VMs. 
-       The number of entries is contained in the 
-       sPDUIdentVMTableSize OID."
-   ::= { sPDUIdentVM 2 }
-
-sPDUIdentVMEntry OBJECT-TYPE
-   SYNTAX IdentVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch VMs to query."
-   INDEX  { sPDUIdentVMIndex}
-   ::= { sPDUIdentVMTable 1 }
-
-IdentVMEntry ::=
-   SEQUENCE {
-      sPDUIdentVMIndex                   INTEGER,
-      sPDUIdentNameVM                    DisplayString,
-      sPDUIdentHardwareRevVM             DisplayString,
-      sPDUIdentFirmwareRevVM             DisplayString,
-      sPDUIdentDateOfManufactureVM       DisplayString,
-      sPDUIdentModelNumberVM             DisplayString,
-      sPDUIdentSerialNumberVM            DisplayString
-   }      
-
-sPDUIdentVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM entry."
-   ::= { sPDUIdentVMEntry 1 }
-
-sPDUIdentNameVM OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 23-character string identifying the 
-       MasterSwitch VM. "
-   ::= { sPDUIdentVMEntry 2 }
-
-sPDUIdentHardwareRevVM OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware version of the MasterSwitch VM. 
-       This value is set at the factory."
-   ::= { sPDUIdentVMEntry 3 }
-
-sPDUIdentFirmwareRevVM OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An 6-character ID string identifying the MasterSwitch VM 
-       firmware version. This value is set at the factory." 
-   ::= {  sPDUIdentVMEntry 4 }
-
-
-sPDUIdentDateOfManufactureVM OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the MasterSwitch VM was manufactured in mm/dd/yyyy format.
-       This value is set at the factory. " 
-   ::= { sPDUIdentVMEntry 5 }
-   
-sPDUIdentModelNumberVM OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 17-character string identifying the model number of 
-       the MasterSwitch VM. This value is set at the factory."
-   ::= { sPDUIdentVMEntry 6 }
-
-sPDUIdentSerialNumberVM OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 17-character string identifying the serial number of 
-       the MasterSwitch VM. This value is set at the factory."
-   ::= { sPDUIdentVMEntry 7 }
-   
-
--- the sPDUMasterControlVM group
-
-sPDUMasterControlVMTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch VMs controllable
-       by this IP address."
-   ::= { sPDUMasterControlVM 1 }
-
-   
-sPDUMasterControlVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MasterControlVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of the individual MasterSwitch VMs.
-       The number of entries is contained in the 
-       sPDUMasterControlVMTableSize OID."
-   ::= { sPDUMasterControlVM 2 }
-
-sPDUMasterControlVMEntry OBJECT-TYPE
-   SYNTAX MasterControlVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch VMs to control."
-   INDEX  { sPDUMasterControlVMIndex}
-   ::= { sPDUMasterControlVMTable 1 }
-
-MasterControlVMEntry ::=
-   SEQUENCE {
-      sPDUMasterControlVMIndex           INTEGER,
-      sPDUMasterControlVMName            DisplayString,
-      sPDUMasterControlVMCommand         INTEGER
-   }      
-
-sPDUMasterControlVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM entry."
-   ::= { sPDUMasterControlVMEntry 1 }
-
-sPDUMasterControlVMName  OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch VM. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigVMName OID."
-   ::= { sPDUMasterControlVMEntry 2 }
-
-sPDUMasterControlVMCommand  OBJECT-TYPE
-  SYNTAX INTEGER       {
-      noCommandAllVM               (1),
-      immediateAllOnVM             (2),
-      immediateAllOffVM            (3),
-      immediateAllRebootVM         (4),
-      delayedAllOnVM               (5),
-      delayedAllOffVM              (6),
-      sequencedAllRebootVM         (7),
-      delayedAllRebootVM           (8),
-      delayedSequenceAllRebootVM   (9),
-      cancelAllPendingCommandsVM   (10),
-      audioAlarmMute               (11)
-   }
-   
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to immediateAllOnVM (2) will turn all outlets
-       on immediately.
-       
-       Setting this OID to immediateAllOffVM (3) will turn all outlets
-       off immediately.
-       
-       Setting this OID to immediateAllRebootVM (4) will reboot all outlets
-       immediately.
-
-       Setting this OID to delayedAllOnVM (5) will turn all outlets on as 
-       defined by each outlet's sPDUOutletConfigVMPowerOnTime OID value. 
-             
-       Setting this OID to delayedAllOffVM (6) will turn all outlets 
-       off as defined by each outlet's sPDUOutletConfigVMPowerOffTime OID value.
-      
-       Setting this OID to sequencedAllRebootVM (7) will cause a 
-       immediateAllOffVM command to be performed. The MasterSwitch VM will 
-       then delay the sPDUMasterStatusVMRebootDuration OID time, and then 
-       perform a delayedAllOnVM command.    
-
-       Setting this OID to delayedAllRebootVM (8) will cause a delayedAllOffVM
-       command to be performed. Each outlet will then wait its 
-       sPDUOutletConfigVMRebootDuration before returning power to the outlet.
-       
-       Setting this OID to delayedSequenceAllRebootVM (9) will cause a 
-       delayedAllOffVM command to be performed. Once all outlets are off, 
-       the MasterSwitch VM will then delay the sPDUMasterStatusVMRebootDuration 
-       OID time, and then perform a delayedAllOnVM command.    
-       
-       Setting this OID to cancelAllPendingCommandsVM (10) will cause all pending
-       commands on the MasterSwitch VM to be canceled.
-       
-
-       Setting this OID to audioAlarmMute (11) will temporarily silence the audible
-       alarm for the duration of the current overload condition. The audible alarm
-       will be activated on subsequent overload alarms.
-
-       Getting this OID will return the noCommandAllVM (1) value."
-   ::= { sPDUMasterControlVMEntry 3 }
-
-
--- the sPDUMasterConfigVM group
-
-sPDUMasterConfigVMTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch VMs configurable
-       by this IP address."
-   ::= { sPDUMasterConfigVM 1 }
-
-   
-sPDUMasterConfigVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MasterConfigVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of the individual MasterSwitch VMs.
-       The number of entries is contained in the 
-       sPDUMasterConfigVMTableSize OID."
-   ::= { sPDUMasterConfigVM 2 }
-
-sPDUMasterConfigVMEntry OBJECT-TYPE
-   SYNTAX MasterConfigVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch VMs to configure."
-   INDEX  { sPDUMasterConfigVMIndex}
-   ::= { sPDUMasterConfigVMTable 1 }
-
-MasterConfigVMEntry ::=
-   SEQUENCE {
-      sPDUMasterConfigVMIndex                     INTEGER,
-      sPDUMasterConfigVMName                      DisplayString,
-      sPDUMasterConfigVMColdstartDelay            INTEGER,
-      sPDUMasterConfigVMAudioAlarmActivated       INTEGER,
-      sPDUMasterConfigVMHighLoadWarningThreshold  INTEGER,
-      sPDUMasterConfigVMLowLoadWarningThreshold   INTEGER,
-      sPDUMasterConfigVMOverloadRestriction       INTEGER
-   }      
-   
-sPDUMasterConfigVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM entry."
-   ::= { sPDUMasterConfigVMEntry 1 }
-
-
-sPDUMasterConfigVMName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch VM. Maximum size is 23 characters."
-   ::= { sPDUMasterConfigVMEntry 2 }
-
-sPDUMasterConfigVMColdstartDelay  OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in seconds, between when
-        power is provided to the MasterSwitch VM and 
-        when the MasterSwitch VM provides basic master 
-        power to the outlets.       
-       
-       Allowed values are:
-
-       -1 never apply power automatically.
-       0 apply power immediately.
-       15 apply power in 15 seconds.
-       30 apply power in 30 seconds.
-       45 apply power in 45 seconds.
-       60 apply power in 60 seconds  (1 minute).
-       120 apply power in 120 seconds (2 minutes).
-       300 apply power in 300 seconds (5 minutes).
-       
-       If a value other than a supported value is provided in a 
-       set request, the MasterSwitch VM interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { sPDUMasterConfigVMEntry 3 }
-
-sPDUMasterConfigVMAudioAlarmActivated  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      audioAlarmActiveNever               (1),
-      audioAlarmActiveOnOverload          (2),
-      audioAlarmActiveOnOverloadImminent  (3)
-   }
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to audioAlarmActiveNever (1) will disable
-       the audio alarm on the MasterSwitch VM.
-       
-       Setting this OID to audioAlarmActiveOnOverload (2) will 
-       activate the audio alarm on the MasterSwitch VM when an
-       overload condition is present.       
-
-       Setting this OID to audioAlarmActiveOnOverloadImminent (3) 
-       will activate the audio alarm on the MasterSwitch VM when
-       the load on the MasterSwitch VM has surpassed the
-       sPDUMasterConfigVMHighLoadWarningThreshold OID value."
-   ::= { sPDUMasterConfigVMEntry 4 }
-   
-sPDUMasterConfigVMHighLoadWarningThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load is nearing an overload condition. It is 
-       represented as a percentage of full load."
-   ::= { sPDUMasterConfigVMEntry 5 }
-
-sPDUMasterConfigVMLowLoadWarningThreshold OBJECT-TYPE
-   SYNTAX INTEGER (0..100)               
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load is nearing a low consumption condition. It is 
-       represented as a percentage of full load."
-   ::= { sPDUMasterConfigVMEntry 6 }
-
-sPDUMasterConfigVMOverloadRestriction OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alwaysAllowTurnON         (1),
-      restrictOnWarning         (2),
-      restrictOnOverload        (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID controls the behavior of the MasterSwitch VM
-       when an overload condition is possible and additional 
-       outlets are requested to be turned on. 
-
-       Setting this OID to alwaysAllowTurnON (1) will always allow 
-       the outlets to turn on.
-       
-       Setting this OID to restrictOnWarning (2) will not allow 
-       outlets to turn on if the sPDUMasterConfigVMHighLoadWarningThreshold
-       OID is exceeded.
-              
-       Setting this OID to restrictOnOverload (3) will not allow
-       outlets to turn on if the MasterSwitch Vm is in an 
-       overload condition."
-   ::= { sPDUMasterConfigVMEntry 7 }
-
--- the sPDUMasterStatusVM group
-
-sPDUMasterStatusVMTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch VMs at
-       this IP address."
-   ::= { sPDUMasterStatusVM 1 }
-
-   
-sPDUMasterStatusVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MasterStatusVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for gathering of status from the individual 
-       MasterSwitch VMs. The number of entries is contained 
-       in the sPDUMasterStatusVMTableSize OID."
-   ::= { sPDUMasterStatusVM 2 }
-
-sPDUMasterStatusVMEntry OBJECT-TYPE
-   SYNTAX MasterStatusVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch VMs to gather status from."
-   INDEX  { sPDUMasterStatusVMIndex}
-   ::= { sPDUMasterStatusVMTable 1 }
-
-MasterStatusVMEntry ::=
-   SEQUENCE {
-      sPDUMasterStatusVMIndex                     INTEGER,
-      sPDUMasterStatusVMName                      DisplayString,
-      sPDUMasterStatusVMCommandPending            INTEGER,
-      sPDUMasterStatusVMOverloadCondition         INTEGER,
-      sPDUMasterStatusVMLowLoadCondition          INTEGER,
-      sPDUMasterStatusVMCurrentLoad               INTEGER,
-      sPDUMasterStatusVMMaxLoad                   INTEGER,
-      sPDUMasterStatusVMOutletCount               INTEGER,
-      sPDUMasterStatusVMRebootDuration            INTEGER
-   }      
-   
-sPDUMasterStatusVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM entry."
-   ::= { sPDUMasterStatusVMEntry 1 }
-
-sPDUMasterStatusVMName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch VM. Maximum size is 23 characters."
-   ::= { sPDUMasterStatusVMEntry 2 }
-
-sPDUMasterStatusVMCommandPending OBJECT-TYPE
-   SYNTAX INTEGER       {
-      commandPendingMasterTrueVM      (1),
-      commandPendingMasterFalseVM     (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return commandPendingMasterTrueVM (1)
-       if the MasterSwitch VM has a pending command on any of its
-       outlets.
-
-       commandPendingMasterFalseVM (2) will be returned if there are
-       no pending commands." 
-   ::= { sPDUMasterStatusVMEntry 3 }
-
-sPDUMasterStatusVMOverloadCondition OBJECT-TYPE
-   SYNTAX INTEGER       {
-      overloadConditionTrueVM         (1),
-      overloadConditionFalseVM        (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return overloadConditionTrueVM (1)
-       if the sPDUMasterConfigVMHighLoadWarningThreshold OID is
-       violated.
-
-       overloadConditionFalseVM (2) will be returned if the 
-       sPDUMasterConfigVMHighLoadWarningThreshold OID is not
-       violated."
-   ::= { sPDUMasterStatusVMEntry 4 }
-
-sPDUMasterStatusVMLowLoadCondition OBJECT-TYPE
-   SYNTAX INTEGER       {
-      lowLoadConditionTrueVM            (1),
-      lowLoadConditionFalseVM           (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return lowLoadConditionTrueVM (1)
-       if the sPDUMasterConfigVMLowLoadWarningThreshold OID is
-       violated.
-
-       lowLoadConditionFalseVM (2) will be returned if the 
-       sPDUMasterConfigVMHighLoadWarningThreshold OID is not
-       violated. "
-   ::= { sPDUMasterStatusVMEntry 5 }
-
-sPDUMasterStatusVMCurrentLoad   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the total amount of power
-       being consumed by the load. It is represented as a 
-       percentage of full load."
-   ::= { sPDUMasterStatusVMEntry 6 }
-
-sPDUMasterStatusVMMaxLoad   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the total amount of power
-       that this MasterSwitch VM can provide. It is represented
-       in Amps."  
-   ::= { sPDUMasterStatusVMEntry 7 }
-
-sPDUMasterStatusVMOutletCount   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the number of controllable
-       outlets for this MasterSwitch VM."
-   ::= { sPDUMasterStatusVMEntry 8 }
-
-sPDUMasterStatusVMRebootDuration   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the largest
-       sPDUOutletConfigVMRebootDuration OID time 
-       for this MasterSwitch VM."
-   ::= { sPDUMasterStatusVMEntry 9 }
-
--- the sPDUOutletControlVM group
-
-   
-sPDUOutletControlVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletControlVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual outlet switches. The number of
-       entries is contained in the sPDUMasterStatusOutletCount OID."
-   ::= { sPDUOutletControlVM 1 }
-
-sPDUOutletControlVMEntry OBJECT-TYPE
-   SYNTAX OutletControlVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to control."
-   INDEX  { sPDUOutletControlVMIndex, sPDUOutletControlVMOutletIndex }
-   ::= { sPDUOutletControlVMTable 1 }
-
-OutletControlVMEntry ::=
-   SEQUENCE {
-      sPDUOutletControlVMIndex         INTEGER,
-      sPDUOutletControlVMName          DisplayString,   
-      sPDUOutletControlVMOutletIndex   INTEGER,
-      sPDUOutletControlVMOutletName    DisplayString,
-      sPDUOutletControlVMOutletCommand INTEGER
-   }      
-
-sPDUOutletControlVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM."
-   ::= { sPDUOutletControlVMEntry 1 }
-
-sPDUOutletControlVMName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch VM. Maximum size is 23 characters.
-       This OID is provided for informational purposes only."
-   ::= { sPDUOutletControlVMEntry 2 }
-
-sPDUOutletControlVMOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletControlVMEntry 3 }
-   
-sPDUOutletControlVMOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is 23 characters.
-       This OID is provided for informational purposes only."
-   ::= { sPDUOutletControlVMEntry 4 }
-
-sPDUOutletControlVMOutletCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      immediateOnVM             (1),
-      immediateOffVM            (2),
-      immediateRebootVM         (3),
-      delayedOnVM               (4),
-      delayedOffVM              (5),
-      delayedRebootVM           (6),
-      cancelPendingCommandVM    (7)
-
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the immediateOnVM (1) value will be returned.
-       If the outlet is off, the immediateOffVM (2) value will be
-       returned. 
-       
-       
-       Setting this variable to immediateOnVM (1) will immediately turn the outlet on.
-       
-       Setting this variable to immediateOffVM (2) will immediately turn the outlet off. 
-
-       Setting this variable to immediateRebootVM (3) will immediately reboot the outlet.
-      
-       Setting this variable to delayedOnVM (4) will turn the outlet on
-       after the sPDUOutletConfigVMPowerOnTime OID time has elapsed.   
-
-       Setting this variable to delayedOffVM (5) will turn the outlet off
-       after the sPDUOutletConfigVMPowerOffTime OID time has elapsed.
-
-       Setting this variable to delayedRebootVM  (6) will cause the 
-       MasterSwitch VM to perform a delayedOffVM command, wait the 
-       sPDUOutletConfigVMRebootDuration OID time, and then perform the
-       immediateOnVM command.
-       
-       Setting this variable to cancelPendingCommandVM (7) will cause any
-       pending command to this outlet to be canceled."
-   ::= { sPDUOutletControlVMEntry 5 }
-
--- the sPDUOutletConfigVM group
-  
-sPDUOutletConfigVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletConfigVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusOutletCount OID."
-   ::= { sPDUOutletConfigVM 1 }
-
-sPDUOutletConfigVMEntry OBJECT-TYPE
-   SYNTAX OutletConfigVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to configure."
-   INDEX  { sPDUOutletConfigVMIndex, sPDUOutletConfigVMOutletIndex }
-   ::= { sPDUOutletConfigVMTable 1 }
-
-OutletConfigVMEntry ::=
-   SEQUENCE {
-      sPDUOutletConfigVMIndex          INTEGER,
-      sPDUOutletConfigVMName           DisplayString,   
-      sPDUOutletConfigVMOutletIndex    INTEGER,
-      sPDUOutletConfigVMOutletName     DisplayString,
-      sPDUOutletConfigVMPowerOnTime    INTEGER,
-      sPDUOutletConfigVMPowerOffTime   INTEGER,
-      sPDUOutletConfigVMRebootDuration INTEGER
-   }      
-
-sPDUOutletConfigVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM."
-   ::= { sPDUOutletConfigVMEntry 1 }
-
-sPDUOutletConfigVMName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch VM. Maximum size is 23 characters."
-   ::= { sPDUOutletConfigVMEntry 2 }
-
-sPDUOutletConfigVMOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletConfigVMEntry 3 }
-   
-
-sPDUOutletConfigVMOutletName   OBJECT-TYPE
-   SYNTAX  DisplayString    ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is 23 characters."
-   ::= { sPDUOutletConfigVMEntry 4 }
-
-sPDUOutletConfigVMPowerOnTime OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet will delay 
-       powering on at coldstart or when a command that requires 
-       a turn-on delay is issued.
-              
-       Allowed values are:
-       
-       -1 never power on.
-       0  power on immediately.
-       15 power on 15 seconds after being commanded.
-       30 power on 30 seconds after being commanded.
-       45 power on 45 seconds after being commanded.
-       60 power on 60 seconds (1 minute) after being commanded.
-       120 power on 120 seconds (2 minutes) after being commanded.
-       300 power on 300 seconds (5 minutes) after being commanded.
-       
-       If a value other than a supported value is provided in a 
-       set request, the MasterSwitch VM interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { sPDUOutletConfigVMEntry 5 }
-   
-
-sPDUOutletConfigVMPowerOffTime OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet will delay 
-       powering off when a command that requires 
-       a turn-off delay is issued.
-
-              
-       Allowed values are:
-       
-       -1 never power off automatically.
-       0  power off immediately.
-       15 power off 15 seconds after being commanded.
-       30 power off 30 seconds after being commanded.
-       45 power off 45 seconds after being commanded.
-       60 power off 60 seconds (1 minute) after being commanded.
-       120 power off 120 seconds (2 minutes) after being commanded.
-       300 power off 300 seconds (5 minutes) after being commanded.
-       
-       If a value other than a supported value is provided in a 
-       set request, the MasterSwitch VM interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { sPDUOutletConfigVMEntry 6 }
-
-sPDUOutletConfigVMRebootDuration OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "During a reboot sequence, power is turned off and then 
-       back on. This OID defines the amount of time to wait, 
-       in seconds, after turning the power off, at the start
-       of the sequence, before turning power back on, at the
-       end of the reboot sequence.       
-       
-       Allowed values are:
-       
-       5 wait 5 seconds between off/on.
-       10 wait 10 seconds between off/on.
-       15 wait 15 seconds between off/on.
-       20 wait 20 seconds between off/on.
-       30 wait 30 seconds between off/on.
-       45 wait 45 seconds between off/on.
-       60 wait 60 seconds (1 minute) between off/on.
-       
-       If a value other than a supported value is provided in a 
-       set request, the MasterSwitch VM interprets it as the next lower
-       acceptable value.  If the provided value is lower than
-       the lowest acceptable value, the lowest acceptable 
-       value is used."
-   ::= { sPDUOutletConfigVMEntry 7 }
-
--- the sPDUOutletStatusVM group
-  
-sPDUOutletStatusVMTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletStatusVMEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting of status of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusOutletCount OID."
-   ::= { sPDUOutletStatusVM 1 }
-
-sPDUOutletStatusVMEntry OBJECT-TYPE
-   SYNTAX OutletStatusVMEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to gather status from."
-   INDEX  { sPDUOutletStatusVMIndex, sPDUOutletStatusVMOutletIndex }
-   ::= { sPDUOutletStatusVMTable 1 }
-
-OutletStatusVMEntry ::=
-   SEQUENCE {
-      sPDUOutletStatusVMIndex          INTEGER,
-      sPDUOutletStatusVMName           DisplayString,   
-      sPDUOutletStatusVMOutletIndex    INTEGER,
-      sPDUOutletStatusVMOutletName     DisplayString,
-      sPDUOutletStatusVMOutletState    INTEGER,
-      sPDUOutletStatusVMCommandPending INTEGER
-   }      
-
-sPDUOutletStatusVMIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch VM."
-   ::= { sPDUOutletStatusVMEntry 1 }
-
-sPDUOutletStatusVMName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch VM. Maximum size is 23 characters."
-   ::= { sPDUOutletStatusVMEntry 2 }
-
-sPDUOutletStatusVMOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletStatusVMEntry 3 }
-   
-sPDUOutletStatusVMOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is 23 characters."
-   ::= { sPDUOutletStatusVMEntry 4 }
-
-sPDUOutletStatusVMOutletState OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletStatusVMOn              (1),
-        outletStatusVMOff             (2)
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the outletStatusOnVM (1) value will be returned.
-       If the outlet is off, the outletStatusOffVM (2) value will be
-       returned. "
-   ::= { sPDUOutletStatusVMEntry 5 }
-
-sPDUOutletStatusVMCommandPending    OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletStatusVMCommandPending    (1),
-        outletStatusVMNoCommandPending  (2)
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the command pending
-        state of the outlet. If a command is pending on the 
-        outlet, the outletStatusVMCommandPending (1) value
-        will be returned. If there is not a command pending
-        on the outlet, the outletStatusVMNoCommandPending (2)
-        will be returned."
-   ::= { sPDUOutletStatusVMEntry 6 }
-
--- the sPDUIdentMSP group
-
-sPDUIdentMSPTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch pluses controllable
-       by this IP address."
-   ::= { sPDUIdentMSP 1 }
-
-   
-sPDUIdentMSPTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IdentMSPEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for query of the individual MasterSwitch pluses. 
-       The number of entries is contained in the 
-       sPDUIdentMSPTableSize OID."
-   ::= { sPDUIdentMSP 2 }
-
-sPDUIdentMSPEntry OBJECT-TYPE
-   SYNTAX IdentMSPEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch pluses to query."
-   INDEX  { sPDUIdentMSPIndex}
-   ::= { sPDUIdentMSPTable 1 }
-
-IdentMSPEntry ::=
-   SEQUENCE {
-      sPDUIdentMSPIndex                   INTEGER,
-      sPDUIdentNameMSP                   DisplayString,
-      sPDUIdentHardwareRevMSP            DisplayString,
-      sPDUIdentFirmwareRevMSP            DisplayString,
-      sPDUIdentDateOfManufactureMSP      DisplayString,
-      sPDUIdentModelNumberMSP            DisplayString,
-      sPDUIdentSerialNumberMSP           DisplayString
-   }      
-
-sPDUIdentMSPIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus entry."
-   ::= { sPDUIdentMSPEntry 1 }
-
-sPDUIdentNameMSP OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUIdentMSPEntry 2 }
-
-sPDUIdentHardwareRevMSP OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware version of the MasterSwitch plus. 
-       This value is set at the factory."
-   ::= { sPDUIdentMSPEntry 3 }
-
-sPDUIdentFirmwareRevMSP OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An 6-character ID string identifying the MasterSwitch plus 
-       firmware version. This value is set at the factory." 
-   ::= {  sPDUIdentMSPEntry 4 }
-
-sPDUIdentDateOfManufactureMSP OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the MasterSwitch plus was manufactured in mm/dd/yyyy format.
-       This value is set at the factory. " 
-   ::= { sPDUIdentMSPEntry 5 }
-   
-sPDUIdentModelNumberMSP OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 17-character string identifying the model number of 
-       the MasterSwitch plus. This value is set at the factory."
-   ::= { sPDUIdentMSPEntry 6 }
-
-sPDUIdentSerialNumberMSP OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 17-character string identifying the serial number of 
-       the MasterSwitch plus. This value is set at the factory."
-   ::= { sPDUIdentMSPEntry 7 }
-   
-
--- the sPDUMasterControlMSP group
-
-sPDUMasterControlMSPTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch pluses controllable
-       by this IP address."
-   ::= { sPDUMasterControlMSP 1 }
-
-sPDUMasterControlMSPTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MasterControlMSPEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of the individual MasterSwitch pluses.
-       The number of entries is contained in the 
-       sPDUMasterControlMSPTableSize OID."
-   ::= { sPDUMasterControlMSP 2 }
-
-sPDUMasterControlMSPEntry OBJECT-TYPE
-   SYNTAX MasterControlMSPEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch pluses to control."
-   INDEX  { sPDUMasterControlMSPIndex}
-   ::= { sPDUMasterControlMSPTable 1 }
-
-MasterControlMSPEntry ::=
-   SEQUENCE {
-      sPDUMasterControlMSPIndex           INTEGER,
-      sPDUMasterControlMSPName            DisplayString,
-      sPDUMasterControlMSPCommand         INTEGER
-   }      
-
-sPDUMasterControlMSPIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus entry."
-   ::= { sPDUMasterControlMSPEntry 1 }
-
-sPDUMasterControlMSPName  OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUMasterControlMSPEntry 2 }
-
-sPDUMasterControlMSPCommand  OBJECT-TYPE
-  SYNTAX INTEGER       {
-      noCommandAllMSP              (1),
-      immediateAllOnMSP            (2),
-      sequencedAllOnMSP            (3),
-      immediateAllOffMSP           (4),
-      gracefulAllRebootMSP         (5),
-      immediateAllRebootMSP        (6),
-      gracefulAllShutdownMSP       (7),
-      overrideAllBatCapThreshMSP   (8),
-      cancelAllPendingCommandsMSP  (9),
-      restoreFactoryDefaultsMSP   (10)
-   }
-   
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to immediateAllOnMSP (2) will turn all outlets
-       on immediately.
-       
-       Setting this OID to sequencedAllOnMSP (3) will turn all outlets
-       on as defined by each outlet's sPDUOutletConfigMSPPowerOnDelay OID value.
-
-       Setting this OID to immediateAllOffMSP (4) will turn all outlets
-       off immediately.
-       
-       Setting this OID to gracefulAllRebootMSP (5) will reboot all outlets
-       (after the device running PowerChute confirms shutdown) as defined 
-       by each outlet's sPDUOutletConfigMSPRebootDuration OID time value.
-
-       Setting this OID to immediateAllRebootMSP (6) will reboot all outlets
-       immediately.
-
-       Setting this OID to gracefulAllShutdownMSP (7) will shutdown all outlets
-       (after the device running PowerChute confirms shutdown) as defined 
-       by each outlet's sPDUOutletConfigMSPPowerOffDelay OID time value.  Each 
-       outlet will then turn on after the sum of its 
-       sPDUOutletConfigMSPRestartDelay and sPDUOutletConfigMSPPowerOnDelay OID 
-       values.
-
-       Setting this OID to overrideAllBatCapThreshMSP (8) will cause the 
-       outlet to ignore the Battery Capacity Threshold and proceed turning on
-       the outlets as defined by each outlet's sPDUOutletConfigMSPPowerOnDelay 
-       OID value.
-                    
-       Setting this OID to cancelAllPendingCommandsMSP (9) will cause all pending
-       commands on the MasterSwitch plus to be canceled.
-
-       Setting this OID to restoreFactoryDefaultsMSP (10) will cause the settings of
-       the MasterSwitch plus to be restored to the factory defaults.
-
-       Getting this OID will return the noCommandAllMSP (1) value."
-   ::= { sPDUMasterControlMSPEntry 3 }
-
-
--- the sPDUMasterConfigMSP group
-
-sPDUMasterConfigMSPTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch pluses configurable
-       by this IP address."
-   ::= { sPDUMasterConfigMSP 1 }
-   
-sPDUMasterConfigMSPTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MasterConfigMSPEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of the individual MasterSwitch pluses.
-       The number of entries is contained in the 
-       sPDUMasterConfigMSPTableSize OID."
-   ::= { sPDUMasterConfigMSP 2 }
-
-sPDUMasterConfigMSPEntry OBJECT-TYPE
-   SYNTAX MasterConfigMSPEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch pluses to configure."
-   INDEX  { sPDUMasterConfigMSPIndex}
-   ::= { sPDUMasterConfigMSPTable 1 }
-
-MasterConfigMSPEntry ::=
-   SEQUENCE {
-      sPDUMasterConfigMSPIndex                     INTEGER,
-      sPDUMasterConfigMSPName                      DisplayString,
-      sPDUMasterConfigMSPPowerOnTimeDelay          INTEGER,
-      sPDUMasterConfigMSPManualButton              INTEGER
-   }      
-   
-sPDUMasterConfigMSPIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus entry."
-   ::= { sPDUMasterConfigMSPEntry 1 }
-
-sPDUMasterConfigMSPName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. Maximum size is 23 characters."
-   ::= { sPDUMasterConfigMSPEntry 2 }
-
-sPDUMasterConfigMSPPowerOnTimeDelay  OBJECT-TYPE
-   SYNTAX INTEGER (0..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in seconds, between when
-        power is provided to the MasterSwitch plus and 
-        when the MasterSwitch plus provides basic master 
-        power to the outlets.       
-       
-       Allowed values are:
-
-       0 - 9999 seconds (0 - 2hrs, 46 mins, 39 secs).
-       0 indicates to apply power immediately."
-   ::= { sPDUMasterConfigMSPEntry 3 }
-   
-
-sPDUMasterConfigMSPManualButton  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      manualButtonDisabled              (1),
-      manualButtonEnabled               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to manualButtonDisabled (1) will disable
-       the manual button on the MasterSwitch plus.
-
-       Setting this OID to manualButtonEnabled (2) will enable
-       the manual button on the MasterSwitch plus."
-   ::= { sPDUMasterConfigMSPEntry 4 }
-   
--- the sPDUMasterStatusMSP group
-
-sPDUMasterStatusMSPTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of MasterSwitch pluses at
-       this IP address."
-   ::= { sPDUMasterStatusMSP 1 }
-
-   
-sPDUMasterStatusMSPTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF MasterStatusMSPEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for gathering of status from the individual 
-       MasterSwitch pluses. The number of entries is contained 
-       in the sPDUMasterStatusMSPTableSize OID."
-   ::= { sPDUMasterStatusMSP 2 }
-
-sPDUMasterStatusMSPEntry OBJECT-TYPE
-   SYNTAX MasterStatusMSPEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The MasterSwitch pluses to gather status from."
-   INDEX  { sPDUMasterStatusMSPIndex}
-   ::= { sPDUMasterStatusMSPTable 1 }
-
-MasterStatusMSPEntry ::=
-   SEQUENCE {
-      sPDUMasterStatusMSPIndex                     INTEGER,
-      sPDUMasterStatusMSPName                      DisplayString,
-      sPDUMasterStatusMSPOutletCount               INTEGER
-   }      
-   
-sPDUMasterStatusMSPIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus entry."
-   ::= { sPDUMasterStatusMSPEntry 1 }
-
-sPDUMasterStatusMSPName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUMasterStatusMSPEntry 2 }
-
-sPDUMasterStatusMSPOutletCount   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the number of controllable
-       outlets for this MasterSwitch plus."
-   ::= { sPDUMasterStatusMSPEntry 3 }
-
--- the sPDUOutletControlMSP group
-   
-sPDUOutletControlMSPTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletControlMSPEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual outlet switches. The number of
-       entries is contained in the sPDUMasterStatusMSPOutletCount OID."
-   ::= { sPDUOutletControlMSP 1 }
-
-sPDUOutletControlMSPEntry OBJECT-TYPE
-   SYNTAX OutletControlMSPEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to control."
-   INDEX  { sPDUOutletControlMSPIndex, sPDUOutletControlMSPOutletIndex }
-   ::= { sPDUOutletControlMSPTable 1 }
-
-OutletControlMSPEntry ::=
-   SEQUENCE {
-      sPDUOutletControlMSPIndex         INTEGER,
-      sPDUOutletControlMSPName          DisplayString,   
-      sPDUOutletControlMSPOutletIndex   INTEGER,
-      sPDUOutletControlMSPOutletName    DisplayString,
-      sPDUOutletControlMSPOutletCommand INTEGER
-   }      
-
-sPDUOutletControlMSPIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus."
-   ::= { sPDUOutletControlMSPEntry 1 }
-
-sPDUOutletControlMSPName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUOutletControlMSPEntry 2 }
-
-sPDUOutletControlMSPOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletControlMSPEntry 3 }
-   
-sPDUOutletControlMSPOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. The maximum size is 
-       23 characters. The name is set by using the 
-       sPDUOutletConfigMSPallOutletName OID.
-       This OID is provided for informational purposes only."       
-   ::= { sPDUOutletControlMSPEntry 4 }
-
-sPDUOutletControlMSPOutletCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      immediateOnMSP            (1),
-      delayedOnMSP              (2),
-      immediateOffMSP           (3),
-      gracefulRebootMSP         (4),
-      immediateRebootMSP        (5),
-      gracefulshutdownMSP       (6),
-      overrideBatCapThreshMSP   (7),
-      cancelPendingCommandMSP   (8)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the immediateOnMSP (1) value will be returned.
-       If the outlet is off, the immediateOffMSP (3) value will be
-       returned.  
-       
-       Setting this variable to immediateOnMSP (1) will immediately turn the outlet on.
-       
-       Setting this variable to delayedOnMSP (2) will turn the outlet on
-       after the sPDUOutletConfigMSPPowerOnDelay OID time has elapsed. 
-
-       Setting this variable to immediateOffMSP (3) will immediately turn the outlet off. 
-
-       Setting this variable to gracefulRebootMSP (4) will cause the outlet to wait for
-       device confirmation (if applicable) and then turn the outlet off after the
-       sPDUOutletConfigMSPPowerOffDelay OID time has elapsed.  The outlet will then turn
-       on after the sPDUOutletConfigMSPRebootDuration OID time has elapsed. 
-
-       Setting this variable to immediateRebootMSP (5) will immediately reboot the outlet.
-
-       Setting this variable to gracefulshutdownMSP (6) will cause the outlet to wait for
-       device confirmation (if applicable) and then turn the outlet off after the
-       sPDUOutletConfigMSPPowerOffDelay OID time has elapsed.  The outlet will then turn
-       on after the sum of the sPDUOutletConfigMSPRestartTime OID time and the 
-       sPDUOutletConfigMSPPowerOnDelay OID time has elapsed. 
-      
-       Setting this variable to overrideBatCapThreshMSP (7) will cause the outlet to 
-       ignore the Battery Capacity Threshold and proceed waiting on the
-       sPDUOutletConfigMSPPowerOnDelay OID time before turning the outlet on.
-           
-       Setting this variable to cancelPendingCommandMSP (8) will cause any
-       pending command to this outlet to be canceled."
-   ::= { sPDUOutletControlMSPEntry 5 }
-
--- the sPDUOutletConfigMSPall group
-  
-sPDUOutletConfigMSPallTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletConfigMSPallEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusMSPOutletCount OID."
-   ::= { sPDUOutletConfigMSPall 1 }
-
-sPDUOutletConfigMSPallEntry OBJECT-TYPE
-   SYNTAX OutletConfigMSPallEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to configure."
-   INDEX  { sPDUOutletConfigMSPallIndex, sPDUOutletConfigMSPallOutletIndex }
-   ::= { sPDUOutletConfigMSPallTable 1 }
-
-OutletConfigMSPallEntry ::=
-   SEQUENCE {
-      sPDUOutletConfigMSPallIndex          INTEGER,
-      sPDUOutletConfigMSPallName           DisplayString,   
-      sPDUOutletConfigMSPallOutletIndex    INTEGER,
-      sPDUOutletConfigMSPallOutletName     DisplayString,
-      sPDUOutletConfigMSPallOutletCtrlMode INTEGER
-   }      
-
-sPDUOutletConfigMSPallIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus."
-   ::= { sPDUOutletConfigMSPallEntry 1 }
-
-sPDUOutletConfigMSPallName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUOutletConfigMSPallEntry 2 }
-
-sPDUOutletConfigMSPallOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletConfigMSPallEntry 3 }
-   
-sPDUOutletConfigMSPallOutletName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is 23 characters."
-   ::= { sPDUOutletConfigMSPallEntry 4 }
-
-sPDUOutletConfigMSPallOutletCtrlMode  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      modeGracefulShutdown              (1),
-      modeAnnunciator                   (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to modeGracefulShutdown (1) will put this
-       outlet into the Graceful Shutdown control mode.
-
-       Setting this OID to modeAnnunciator (2) will put this outlet
-       into the Annunciator control mode."
-   ::= { sPDUOutletConfigMSPallEntry 5 }
-
-
--- the sPDUOutConfigMSPgs group
-
-sPDUOutletConfigMSPgsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletConfigMSPgsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusMSPOutletCount OID."
-   ::= { sPDUOutletConfigMSPgs 1 }
-
-sPDUOutletConfigMSPgsEntry OBJECT-TYPE
-   SYNTAX OutletConfigMSPgsEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to configure."
-   INDEX  { sPDUOutletConfigMSPgsIndex, sPDUOutletConfigMSPgsOutletIndex }
-   ::= { sPDUOutletConfigMSPgsTable 1 }
-
-OutletConfigMSPgsEntry ::=
-   SEQUENCE {
-      sPDUOutletConfigMSPgsIndex          INTEGER,
-      sPDUOutletConfigMSPgsName           DisplayString,   
-      sPDUOutletConfigMSPgsOutletIndex    INTEGER,
-      sPDUOutletConfigMSPgsOutletName     DisplayString,
-      sPDUOutletConfigMSPgsOutletCtrlMode INTEGER,
-      sPDUOutletConfigMSPgsDeviceConfirm  INTEGER,
-      sPDUOutletConfigMSPgsLowBattWarning INTEGER,
-      sPDUOutletConfigMSPgsLowBattMult    INTEGER,
-      sPDUOutletConfigMSPgsRestartDelay   INTEGER,
-      sPDUOutletConfigMSPgsPowerOnDelay   INTEGER,
-      sPDUOutletConfigMSPgsPowerOffDelay  INTEGER,
-      sPDUOutletConfigMSPgsBattCapThresh  INTEGER,
-      sPDUOutletConfigMSPgsRebootDuration INTEGER
-   }      
-
-sPDUOutletConfigMSPgsIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus."
-   ::= { sPDUOutletConfigMSPgsEntry 1 }
-
-sPDUOutletConfigMSPgsName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUOutletConfigMSPgsEntry 2 }
-
-sPDUOutletConfigMSPgsOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletConfigMSPgsEntry 3 }
-
-sPDUOutletConfigMSPgsOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. The maximum size is 
-       23 characters. The name is set by using the 
-       sPDUOutletConfigMSPallOutletName OID.
-       This OID is provided for informational purposes only."       
-   ::= { sPDUOutletConfigMSPgsEntry 4 }
-
-sPDUOutletConfigMSPgsOutletCtrlMode  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      modeGracefulShutdown              (1),
-      modeAnnunciator                   (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Control Mode of the outlet.
-       This OID is provided for informational purposes only."
-   ::= { sPDUOutletConfigMSPgsEntry 5 }
-
-sPDUOutletConfigMSPgsDeviceConfirm  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      deviceConfirmNo               (1),
-      deviceConfirmYes              (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to deviceConfirmNo (1) cause the outlet to
-       NOT wait for device confirmation while performing graceful
-       operations.
-
-       Setting this OID to deviceConfirmYes (2) cause the outlet to
-       wait for device confirmation while performing graceful
-       operations."
-   ::= { sPDUOutletConfigMSPgsEntry 6 }
-
-sPDUOutletConfigMSPgsLowBattWarning  OBJECT-TYPE
-   SYNTAX INTEGER (-2..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in 6 second intervals, between 
-        when the UPS goes on battery and the power down sequence for
-        the outlet is initiated.     
-       
-       Allowed values are:
-
-       -2 - Never initiate the power down sequence on low battery warning.
-       -1 - Initiate power down sequence based on remaining runtime.
-       1 - 9999 six second intervals (6 secs - 16hrs, 39 mins, 54 secs).
-       0 indicates to immediately initiate power down sequence on low 
-         battery warning."
-   ::= { sPDUOutletConfigMSPgsEntry 7 }
-   
-sPDUOutletConfigMSPgsLowBattMult  OBJECT-TYPE
-   SYNTAX INTEGER     (1..7)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-     " Only applicable if sPDUOutletConfigMSPgsLowBattWarning OID is 
-       set to -1 (On Runtime Remaining).
-        
-       Allows you to set the value to stagger the shutdown sequence of the outlets.
-       1 provides the longest delay (the outlet to shutoff first), and 7 would
-       provide the shortest delay (the outlet to shut off last).
-        
-       Allowed values are:
-       1 - 7."
-   ::= { sPDUOutletConfigMSPgsEntry 8 }
-
-sPDUOutletConfigMSPgsRestartDelay  OBJECT-TYPE
-   SYNTAX INTEGER (-1..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in 6 minute intervals, between 
-        when the outlet is turned off and the outlet is turned back on
-        when performing a Graceful Shutdown.    
-       
-       Allowed values are:
-
-       -1 - Never turn outlet back on after a Graceful shutdown.
-       0 - 9999 six minute intervals (0 - 999hrs, 54 mins)."
-   ::= { sPDUOutletConfigMSPgsEntry 9 }
-
-sPDUOutletConfigMSPgsPowerOnDelay  OBJECT-TYPE
-   SYNTAX INTEGER (-1..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in seconds, between the UPS entering
-        normal (on-line) state and the outlet being powered on.
-       
-       Allowed values are:
-
-       -1 - Remain Off when the UPS enters the on-line state.
-       0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
-   ::= { sPDUOutletConfigMSPgsEntry 10 }
-
-
-sPDUOutletConfigMSPgsPowerOffDelay  OBJECT-TYPE
-   SYNTAX INTEGER (0..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in seconds, between when the server
-        shuts down and the outlet is powered off.
-       
-       Allowed values are:
-
-       0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
-   ::= { sPDUOutletConfigMSPgsEntry 11 }
-   
-sPDUOutletConfigMSPgsBattCapThresh  OBJECT-TYPE
-   SYNTAX INTEGER (0..100)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The minimum battery capacity, as a percent (0-100%), required
-        of the UPS before an outlet will be allowed to power on.
-       
-       Allowed values are:
-
-       0 - 100 percent."
-   ::= { sPDUOutletConfigMSPgsEntry 12 }
-
-sPDUOutletConfigMSPgsRebootDuration  OBJECT-TYPE
-   SYNTAX INTEGER (0..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of delay, in seconds, from outlet off until
-        outlet on during a reboot.
-        
-       Allowed values are:
-
-       0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
-   ::= { sPDUOutletConfigMSPgsEntry 13 }
-
-
--- the sPDUOutConfigMSPannun group
-
-sPDUOutletConfigMSPannunTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletConfigMSPannunEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusMSPOutletCount OID."
-   ::= { sPDUOutletConfigMSPannun 1 }
-
-sPDUOutletConfigMSPannunEntry OBJECT-TYPE
-   SYNTAX OutletConfigMSPannunEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to configure."
-   INDEX  { sPDUOutletConfigMSPannunIndex, sPDUOutletConfigMSPannunOutletIndex }
-   ::= { sPDUOutletConfigMSPannunTable 1 }
-
-OutletConfigMSPannunEntry ::=
-   SEQUENCE {
-      sPDUOutletConfigMSPannunIndex          INTEGER,
-      sPDUOutletConfigMSPannunName           DisplayString,   
-      sPDUOutletConfigMSPannunOutletIndex    INTEGER,
-      sPDUOutletConfigMSPannunOutletName     DisplayString,
-      sPDUOutletConfigMSPannunOutletCtrlMode INTEGER,     
-      sPDUOutletConfigMSPannunInitialState   INTEGER,
-      sPDUOutletConfigMSPannunAlarmActionDly INTEGER
-   }      
-
-sPDUOutletConfigMSPannunIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus."
-   ::= { sPDUOutletConfigMSPannunEntry 1 }
-
-sPDUOutletConfigMSPannunName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUOutletConfigMSPannunEntry 2 }
-
-sPDUOutletConfigMSPannunOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletConfigMSPannunEntry 3 }
-
-sPDUOutletConfigMSPannunOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. The maximum size is 
-       23 characters. The name is set by using the 
-       sPDUOutletConfigMSPallOutletName OID.
-       This OID is provided for informational purposes only."       
-   ::= { sPDUOutletConfigMSPannunEntry 4 }
-
-sPDUOutletConfigMSPannunOutletCtrlMode  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      modeGracefulShutdown              (1),
-      modeAnnunciator                   (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Control Mode of the outlet.
-       This OID is provided for informational purposes only."
-   ::= { sPDUOutletConfigMSPannunEntry 5 }
-
-sPDUOutletConfigMSPannunInitialState  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      initialStateOff              (1),
-      initialStateOn               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to initialStateOff (1) causes the outlet 
-       to default to off when in the non-alarmed condition.
-
-       Setting this OID to initialStateOn (2) causes the outlet 
-       to default to on when in the non-alarmed condition."
-   ::= { sPDUOutletConfigMSPannunEntry 6 }
-
-sPDUOutletConfigMSPannunAlarmActionDly  OBJECT-TYPE
-   SYNTAX INTEGER (0..9999)                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      " The amount of time, in seconds, that an enabled Measure-UPS
-        alarm must be asserted before an alarm condition is recognized.
-       
-       Allowed values are:
-
-       0 - 9999 seconds (0 - 2 hrs, 46 mins, 39 secs)."
-   ::= { sPDUOutletConfigMSPannunEntry 7 }
-
-
--- the sPDUOutConfigMSPmups group
-
-sPDUOutletConfigMSPmupsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletConfigMSPmupsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusMSPOutletCount OID."
-   ::= { sPDUOutletConfigMSPmups 1 }
-
-sPDUOutletConfigMSPmupsEntry OBJECT-TYPE
-   SYNTAX OutletConfigMSPmupsEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to configure."
-   INDEX  { sPDUOutletConfigMSPmupsIndex, sPDUOutletConfigMSPmupsOutletIndex }
-   ::= { sPDUOutletConfigMSPmupsTable 1 }
-
-OutletConfigMSPmupsEntry ::=
-   SEQUENCE {
-      sPDUOutletConfigMSPmupsIndex          INTEGER,
-      sPDUOutletConfigMSPmupsName           DisplayString,   
-      sPDUOutletConfigMSPmupsOutletIndex    INTEGER,
-      sPDUOutletConfigMSPmupsOutletName     DisplayString,
-      sPDUOutletConfigMSPmupsZone1          INTEGER,
-      sPDUOutletConfigMSPmupsZone2          INTEGER,
-      sPDUOutletConfigMSPmupsZone3          INTEGER,
-      sPDUOutletConfigMSPmupsZone4          INTEGER,
-      sPDUOutletConfigMSPmupsP1LowHum       INTEGER,
-      sPDUOutletConfigMSPmupsP1HiHum        INTEGER,
-      sPDUOutletConfigMSPmupsP1LowTemp      INTEGER,
-      sPDUOutletConfigMSPmupsP1HiTemp       INTEGER,
-      sPDUOutletConfigMSPmupsP2LowHum       INTEGER,
-      sPDUOutletConfigMSPmupsP2HiHum        INTEGER,
-      sPDUOutletConfigMSPmupsP2LowTemp      INTEGER,
-      sPDUOutletConfigMSPmupsP2HiTemp       INTEGER
-   }      
-
-sPDUOutletConfigMSPmupsIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch plus."
-   ::= { sPDUOutletConfigMSPmupsEntry 1 }
-
-sPDUOutletConfigMSPmupsName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUOutletConfigMSPmupsEntry 2 }
-
-sPDUOutletConfigMSPmupsOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletConfigMSPmupsEntry 3 }
-
-sPDUOutletConfigMSPmupsOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. The maximum size is 
-       23 characters. The name is set by using the 
-       sPDUOutletConfigMSPallOutletName OID.
-       This OID is provided for informational purposes only."       
-   ::= { sPDUOutletConfigMSPmupsEntry 4 }
-
-sPDUOutletConfigMSPmupsZone1  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Zone 1 alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Zone 1 alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 5 }
-
-sPDUOutletConfigMSPmupsZone2  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Zone 2 alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Zone 2 alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 6 }
-
-sPDUOutletConfigMSPmupsZone3  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Zone 3 alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Zone 3 alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 7 }
-
-sPDUOutletConfigMSPmupsZone4  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Zone 4 alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Zone 4 alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 8 }
-
-sPDUOutletConfigMSPmupsP1LowHum  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 1 low humidity alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 1 low humidity alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 9 }
-
-sPDUOutletConfigMSPmupsP1HiHum  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 1 high humidity alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 1 high humidity alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 10 }
-
-sPDUOutletConfigMSPmupsP1LowTemp  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 1 low temperature alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 1 low temperature alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 11 }
-
-sPDUOutletConfigMSPmupsP1HiTemp  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 1 high temperature alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 1 high temperature alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 12 }
-
-sPDUOutletConfigMSPmupsP2LowHum  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 2 low humidity alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 2 low humidity alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 13 }
-
-sPDUOutletConfigMSPmupsP2HiHum  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 2 high humidity alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 2 high humidity alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 14 }
-
-sPDUOutletConfigMSPmupsP2LowTemp  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 2 low temperature alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 2 low temperature alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 15 }
-
-sPDUOutletConfigMSPmupsP2HiTemp  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disableAlarm              (1),
-      enableAlarm               (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to disableAlarm (1) disables the
-       Probe 2 high temperature alarm for this outlet.
-
-       Setting this OID to enableAlarm (2) enables the
-       Probe 2 high temperature alarm for this outlet."
-   ::= { sPDUOutletConfigMSPmupsEntry 16 }
-
--- the sPDUOutletStatusMSP group
-  
-sPDUOutletStatusMSPTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletStatusMSPEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting of status of individual outlets. The number of
-       entries is contained in the sPDUMasterStatusOutletCount OID."
-   ::= { sPDUOutletStatusMSP 1 }
-
-sPDUOutletStatusMSPEntry OBJECT-TYPE
-   SYNTAX OutletStatusMSPEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to gather status from."
-   INDEX  { sPDUOutletStatusMSPIndex, sPDUOutletStatusMSPOutletIndex }
-   ::= { sPDUOutletStatusMSPTable 1 }
-
-OutletStatusMSPEntry ::=
-   SEQUENCE {
-      sPDUOutletStatusMSPIndex          INTEGER,
-      sPDUOutletStatusMSPName           DisplayString,   
-      sPDUOutletStatusMSPOutletIndex    INTEGER,
-      sPDUOutletStatusMSPOutletName     DisplayString,
-      sPDUOutletStatusMSPOutletState    INTEGER,
-      sPDUOutletStatusMSPCommandPending INTEGER,
-      sPDUOutletStatusMSPOutletCtrlMode INTEGER
-   }      
-
-sPDUOutletStatusMSPIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the MasterSwitch MSP."
-   ::= { sPDUOutletStatusMSPEntry 1 }
-
-sPDUOutletStatusMSPName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the MasterSwitch plus. The maximum 
-       value is 23 characters. The name is set by
-       using the sPDUMasterConfigMSPName OID."
-   ::= { sPDUOutletStatusMSPEntry 2 }
-
-sPDUOutletStatusMSPOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { sPDUOutletStatusMSPEntry 3 }
-   
-sPDUOutletStatusMSPOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. The maximum size is 
-       23 characters. The name is set by using the 
-       sPDUOutletConfigMSPallOutletName OID.
-       This OID is provided for informational purposes only."       
-   ::= { sPDUOutletStatusMSPEntry 4 }
-
-sPDUOutletStatusMSPOutletState OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletStatusMSPOn              (1),
-        outletStatusMSPOff             (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the outletStatusMSPOn (1) value will be returned.
-       If the outlet is off, the outletStatusMSPOff (2) value will be
-       returned. "
-   ::= { sPDUOutletStatusMSPEntry 5 }
-
-sPDUOutletStatusMSPCommandPending    OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletStatusMSPCommandPending    (1),
-        outletStatusMSPNoCommandPending  (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the command pending
-        state of the outlet. If a command is pending on the 
-        outlet, the outletStatusMSPCommandPending (1) value
-        will be returned. If there is not a command pending
-        on the outlet, the outletStatusMSPNoCommandPending (2)
-        will be returned."
-   ::= { sPDUOutletStatusMSPEntry 6 }
-
-sPDUOutletStatusMSPOutletCtrlMode  OBJECT-TYPE
-   SYNTAX INTEGER       {
-      modeGracefulShutdown              (1),
-      modeAnnunciator                   (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The Control Mode of the outlet.
-       This OID is provided for informational purposes only."
-   ::= { sPDUOutletStatusMSPEntry 7 }
-
-
--- the rPDUIdent group
-
-rPDUIdentName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the Rack PDU. 
-       The maximum string size is device dependent."
-   ::= { rPDUIdent 1 }
-
-rPDUIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the Rack PDU. 
-       This value is set at the factory."
-   ::= { rPDUIdent 2 }
-
-rPDUIdentFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An 8-byte ID string identifying the Rack PDU firmware revision. 
-       This value is set at the factory." 
-   ::= {  rPDUIdent 3 }
-
-
-rPDUIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the Rack PDU was manufactured in mm/dd/yy format.
-       This value is set at the factory. The year 2000 will be 
-       represented by 00." 
-   ::= { rPDUIdent 4 }
-   
-rPDUIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 10-character string identifying the model number of 
-       the Rack PDU. This value is set at the factory."
-   ::= { rPDUIdent 5 }
-
-rPDUIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 12-character string identifying the serial number of 
-       the Rack PDU. This value is set at the factory."
-   ::= { rPDUIdent 6 }
-
-rPDUIdentDeviceRating OBJECT-TYPE
-   SYNTAX INTEGER      
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the electrical rating of the device."
-
-   ::= { rPDUIdent 7 } 
-
-rPDUIdentDeviceNumOutlets OBJECT-TYPE
-   SYNTAX INTEGER      
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the number of outlets contained in the device."
-
-   ::= { rPDUIdent 8 } 
-
-rPDUIdentDeviceNumPhases OBJECT-TYPE
-   SYNTAX INTEGER      
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the number of phases supported by the device."
-
-   ::= { rPDUIdent 9 } 
-
-rPDUIdentDeviceNumBreakers OBJECT-TYPE
-   SYNTAX INTEGER      
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the number of circuit breakers supported by the device.
-       This is the same as the number of banks of outlets."
-
-   ::= { rPDUIdent 10 } 
-
-rPDUIdentDeviceBreakerRating OBJECT-TYPE
-   SYNTAX INTEGER      
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return rating of the circuit breakers on the device if it has any."
-
-   ::= { rPDUIdent 11 } 
-
-rPDUIdentDeviceOrientation OBJECT-TYPE
-   SYNTAX INTEGER       {
-      orientHorizontal            (1),
-      orientVertical              (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the intended physical orientation of the device.
-       
-       OrientHorizonatal(1) indicates Horizontal.
-       OrientVertical(2) indicates Vertical."
-
-   ::= { rPDUIdent 12 } 
-   
-rPDUIdentDeviceOutletLayout OBJECT-TYPE
-   SYNTAX INTEGER       {
-      seqPhaseToNeutral            (1),
-      seqPhaseToPhase              (2),
-      seqPhToNeu21PhToPh           (3),
-      seqPhToPhGrouped             (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return outlet layout for the device.
-       
-       SeqPhaseToNeutral(1) indicates outlet layout as follows:
-       1:1-N,2:2-N,3:3-N,4:1-N,5:2-N,...
-
-       SeqPhaseToPhase(2) indicates outlet layout as follows:
-       1:1-2,2:2-3,3:3-1,4:1-2,5:2-3,...
-
-       SeqPhToNeu21PhToPh(3) indicates outlet layout as follows:
-       1:1-N,2:2-N...21:3-N,22:1-2,23:2-3,24:3-1,...
-
-       SeqPhToPhGrouped(4) indicates outlet layout as follows:
-       Otlts1-8::(3-1),Otlts9-16::(2-3),Otlts17-24::(1-2)."
-   ::= { rPDUIdent 13 } 
-
-
-
--- the rPDULoadDevice group
-
-rPDULoadDevMaxPhaseLoad   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the maximum rated power
-       that each phase of the Rack PDU can provide. It is 
-       represented in Amps."  
-   ::= { rPDULoadDevice 1 }
-
-rPDULoadDevNumPhases OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of phases available with this Rack PDU."
-   ::= { rPDULoadDevice 2 }
-
-rPDULoadDevMaxBankLoad   OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the maximum rated power
-       that each bank of the Rack PDU can provide. It is 
-       represented in Amps.
-       
-       0 will be returned if the device does not have any banks."
-       
-   ::= { rPDULoadDevice 3 }
-
-rPDULoadDevNumBanks OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of banks of outlets available with this Rack PDU.
-       A bank of outlets has a unique circuit breaker for a subset 
-       of the total number of outlets on the rPDU."
-   ::= { rPDULoadDevice 4 }
-
--- the rPDULoadPhaseConfig group
-
-rPDULoadPhaseConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF LoadPhaseConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of each Rack PDU phase.
-       The number of entries is contained in the 
-       rPDULoadDevNumPhases OID."
-   ::= { rPDULoadPhaseConfig 1 }
-
-rPDULoadPhaseConfigEntry OBJECT-TYPE
-   SYNTAX LoadPhaseConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Rack PDU phase to configure."
-   INDEX  { rPDULoadPhaseConfigIndex}
-   ::= { rPDULoadPhaseConfigTable 1 }
-
-LoadPhaseConfigEntry ::=
-   SEQUENCE {
-      rPDULoadPhaseConfigIndex                    INTEGER,
-      rPDULoadPhaseConfigLowLoadThreshold         INTEGER,
-      rPDULoadPhaseConfigNearOverloadThreshold    INTEGER,
-      rPDULoadPhaseConfigOverloadThreshold        INTEGER
-   }      
-
-rPDULoadPhaseConfigIndex OBJECT-TYPE
-   SYNTAX INTEGER {
-      phase1                     (1),
-      phase2                     (2),
-      phase3                     (3)
-   }        
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Rack PDU phase entry."
-   ::= { rPDULoadPhaseConfigEntry 1 }
-
-rPDULoadPhaseConfigLowLoadThreshold OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load is nearing a low consumption condition. It is 
-       represented in amps.  A warning will be issued when the
-       load is less than the threshold value.  
-       
-       A threshold value of 0 amps effectively disables this 
-       warning.  
-       
-       Maximum value must be less than the value returned 
-       by the rPDULoadPhaseConfigNearOverloadThreshold OID."  
-   ::= { rPDULoadPhaseConfigEntry 2 }
-
-rPDULoadPhaseConfigNearOverloadThreshold OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load is nearing an overload condition. It is 
-       represented in amps.  A warning will be issued when the 
-       load is greater than or equal to the threshold value.
-       
-       Minimum value must be greater than the value returned by
-       the rPDULoadPhaseConfigLowLoadThreshold OID.
-       
-       Maximum value must be less than or equal to the value 
-       returned by the rPDULoadPhaseConfigOverloadThreshold OID."
-   ::= { rPDULoadPhaseConfigEntry 3 }
-
-rPDULoadPhaseConfigOverloadThreshold OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load has entered an overload condition. It is 
-       represented in amps.  A warning will be issued when the 
-       load is greater than or equal to the threshold value.
-       
-       Minimum value must be greater than or equal to the value 
-       returned by the rPDULoadPhaseConfigNearOverloadThreshold OID.
-       
-       Maximum value must be less than or equal to the value 
-       returned by the rPDULoadDevMaxPhaseLoad OID."
-   ::= { rPDULoadPhaseConfigEntry 4 }
-
-
--- the rPDULoadStatus group
-
-rPDULoadStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF LoadStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting of status of each Rack PDU phase/bank.
-       The number of entries is calculated by adding
-       the number of phases (rPDULoadDevNumPhases OID) and
-       the number of banks of outlets (rPDULoadDevNumBanks)
-       Number of entries = #phases + #banks.
-       NOTE: If a device has phase and bank information, all phase information
-       shall preceed the bank information."
-   ::= { rPDULoadStatus 1 }
-
-rPDULoadStatusEntry OBJECT-TYPE
-   SYNTAX LoadStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Rack PDU phase/bank to gather status from."
-   INDEX  { rPDULoadStatusIndex}
-   ::= { rPDULoadStatusTable 1 }
-
-LoadStatusEntry ::=
-   SEQUENCE {
-      rPDULoadStatusIndex                 INTEGER,
-      rPDULoadStatusLoad                  Gauge,
-      rPDULoadStatusLoadState             INTEGER,
-      rPDULoadStatusPhaseNumber           INTEGER,
-      rPDULoadStatusBankNumber            INTEGER
-   }      
-
-rPDULoadStatusIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Rack PDU phase/bank entry. All phase information will preceed
-       any bank information"
-   ::= { rPDULoadStatusEntry 1 }
-
-rPDULoadStatusLoad OBJECT-TYPE
-   SYNTAX Gauge       
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the phase/bank load measured
-       in tenths of amps."
-   ::= { rPDULoadStatusEntry 2 }
-
-rPDULoadStatusLoadState OBJECT-TYPE
-   SYNTAX INTEGER       {
-      phaseLoadNormal                 (1),
-      phaseLoadLow                    (2),
-      phaseLoadNearOverload           (3),
-      phaseLoadOverload               (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return the phase/bank load state.
-       
-       phaseLoadNormal(1) indicates that the phase/bank is 
-       operating properly within the rPDULoadConfigLowLoadThreshold 
-       and rPDULoadConfigNearOverloadThreshold OID values.
-       
-       phaseLoadLow(2) indicates that the phase/bank load has
-       dropped below the rPDULoadConfigLowLoadThreshold OID value.
-       An SNMP trap will occur when this state is entered or cleared.
-       
-       phaseLoadNearOverload(3) indicates that the phase/bank load
-       is greater than or equal to the 
-       rPDULoadConfigNearOverloadThreshold OID value.
-       An SNMP trap will occur when this state is entered or cleared.
-       
-       phaseLoadOverload(4) indicates that the phase/bank load is
-       greater than or equal to the rPDULoadConfigOverloadThreshold 
-       OID value.
-       An SNMP trap will occur when this state is entered or cleared."
-   ::= { rPDULoadStatusEntry 3 } 
-
-rPDULoadStatusPhaseNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The phase number to which this record refers.  A value of 0 will be returned if
-       this is bank related information."
-   ::= { rPDULoadStatusEntry 4 }
-
-rPDULoadStatusBankNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The bank number to which this record refers.  A value of 0 will be returned if
-       this is phase related information."
-   ::= { rPDULoadStatusEntry 5 }
-        
--- the rPDULoadBankConfig group
-
-rPDULoadBankConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF LoadBankConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of each Rack PDU bank.
-       The number of entries is contained in the 
-       rPDULoadDevNumBanks OID."
-   ::= { rPDULoadBankConfig 1 }
-
-rPDULoadBankConfigEntry OBJECT-TYPE
-   SYNTAX LoadBankConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Rack PDU bank to configure."
-   INDEX  { rPDULoadBankConfigIndex}
-   ::= { rPDULoadBankConfigTable 1 }
-
-LoadBankConfigEntry ::=
-   SEQUENCE {
-      rPDULoadBankConfigIndex                    INTEGER,
-      rPDULoadBankConfigLowLoadThreshold         INTEGER,
-      rPDULoadBankConfigNearOverloadThreshold    INTEGER,
-      rPDULoadBankConfigOverloadThreshold        INTEGER
-   }      
-
-rPDULoadBankConfigIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Rack PDU bank entry."
-   ::= { rPDULoadBankConfigEntry 1 }
-
-rPDULoadBankConfigLowLoadThreshold OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load is nearing a low consumption condition. It is 
-       represented in amps.  A warning will be issued when the
-       load is less than the threshold value.  
-       
-       A threshold value of 0 amps effectively disables this 
-       warning.  
-       
-       Maximum value must be less than the value returned 
-       by the rPDULoadBankConfigNearOverloadThreshold OID.
-   
-       -1 will be returned if the device has no banks."
-
-   ::= { rPDULoadBankConfigEntry 2 }
-
-rPDULoadBankConfigNearOverloadThreshold OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load is nearing an overload condition. It is 
-       represented in amps.  A warning will be issued when the 
-       load is greater than or equal to the threshold value.
-       
-       Minimum value must be greater than the value returned by
-       the rPDULoadBankConfigLowLoadThreshold OID.
-       
-       Maximum value must be less than or equal to the value 
-       returned by the rPDULoadBankConfigOverloadThreshold OID.
-
-       -1 will be returned if the device has no banks."
-
-   ::= { rPDULoadBankConfigEntry 3 }
-
-rPDULoadBankConfigOverloadThreshold OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A threshold that indicates the power consumption of
-       the load has entered an overload condition. It is 
-       represented in amps.  A warning will be issued when the 
-       load is greater than or equal to the threshold value.
-       
-       Minimum value must be greater than or equal to the value 
-       returned by the rPDULoadBankConfigNearOverloadThreshold OID.
-       
-       Maximum value must be less than or equal to the value 
-       returned by the rPDULoadDevMaxBankLoad OID.
-
-       -1 will be returned if the device has no banks."
-
-   ::= { rPDULoadBankConfigEntry 4 }
-
-
--- the rPDUOutletDevice group
-
-rPDUOutletDevCommand  OBJECT-TYPE
-  SYNTAX INTEGER       {
-      noCommandAll               (1),
-      immediateAllOn             (2),
-      immediateAllOff            (3),
-      immediateAllReboot         (4),
-      delayedAllOn               (5),
-      delayedAllOff              (6),
-      delayedAllReboot           (7),
-      cancelAllPendingCommands   (8),
-      gracefulAllOff             (9),
-      gracefulAllReboot          (10)
-   }
-   
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this OID to immediateAllOn (2) will turn all outlets
-       on immediately.
-       
-       Setting this OID to immediateAllOff (3) will turn all outlets
-       off immediately.
-       
-       Setting this OID to immediateAllReboot (4) will reboot all outlets
-       immediately.
-
-       Setting this OID to delayedAllOn (5) will turn all outlets on as 
-       defined by each outlet's rPDUOutletConfigPowerOnTime OID value. 
-             
-       Setting this OID to delayedAllOff (6) will turn all outlets 
-       off as defined by each outlet's rPDUOutletConfigPowerOffTime OID value.
-      
-       Setting this OID to delayedAllReboot (7) will cause a 
-       delayedAllOff command to be performed. Once all outlets are off, 
-       the Switched Rack PDU will then delay the largest 
-       rPDUOutletConfigRebootDuration OID time, and then perform a 
-       delayedAllOn command.    
-       
-       Setting this OID to cancelAllPendingCommands (8) will cause all pending
-       commands on the Switched Rack PDU to be canceled.
-
-       Setting this variable to gracefulAllOff (9) will cause the
-       Switched Rack PDU to shut all outlets off after it waits the 
-       servers graceful shutdown time and each outlet's shutdown delay.
-
-       Setting this variable to gracefulAllReboot (10) will cause the
-       Switched Rack PDU to shut all outlets off after it waits the 
-       servers graceful shutdown time and each outlet's shutdown delay.
-       Once all outlet are off, it will wait until the UPS reaches the
-       configured minimum return battery capacity, then each outlet's 
-       return delay before it turns the outlet back on.
-
-       Getting this OID will return the noCommandAll (1) value."
-   ::= { rPDUOutletDevice 1 }
-
-rPDUOutletDevColdstartDelay  OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of delay, in seconds, between when
-       power is provided to the Switched Rack PDU and 
-       when the Switched Rack PDU provides basic master 
-       power to the outlets.       
-       
-       Allowed values are:
-
-       -1       - never apply power automatically.
-       0        - apply power immediately.
-       1 to 300 - delay up to 300 seconds (5 minutes)."
-   ::= { rPDUOutletDevice 2 }
-
-rPDUOutletDevNumCntrlOutlets OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of controlled outlets on this Switched Rack PDU."
-   ::= { rPDUOutletDevice 3 }
-
-rPDUOutletDevNumTotalOutlets OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of outlets on this Rack PDU."
-   ::= { rPDUOutletDevice 4 }
-        
-
--- the rPDUOutletPhase group
-
-rPDUOutletPhaseTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletPhaseEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for management of outlets on a per phase basis."
-   ::= { rPDUOutletPhase 1 }
-
-rPDUOutletPhaseEntry OBJECT-TYPE
-   SYNTAX OutletPhaseEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The phase to manage."
-   INDEX  { rPDUOutletPhaseIndex}
-   ::= { rPDUOutletPhaseTable 1 }
-
-OutletPhaseEntry ::=
-   SEQUENCE {
-      rPDUOutletPhaseIndex                INTEGER,
-      rPDUOutletPhaseOverloadRestriction  INTEGER
-   }      
-
-rPDUOutletPhaseIndex OBJECT-TYPE
-   SYNTAX INTEGER {
-      phase1                     (1),
-      phase2                     (2),
-      phase3                     (3)
-   }        
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Switched Rack PDU phase entry."
-   ::= { rPDUOutletPhaseEntry 1 }
-
-rPDUOutletPhaseOverloadRestriction OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alwaysAllowTurnON         (1),
-      restrictOnNearOverload    (2),
-      restrictOnOverload        (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID controls the behavior of a Switched Rack PDU 
-       phase when an overload condition is possible and 
-       additional outlets are requested to be turned on. 
-
-       Setting this OID to alwaysAllowTurnON (1) will always allow 
-       the outlets on the corresponding phase to turn on.
-       
-       Setting this OID to restrictOnNearOverload (2) will not allow 
-       outlets on the corresponding phase to turn on if the 
-       rPDULoadConfigNearOverloadThreshold OID is exceeded.
-              
-       Setting this OID to restrictOnOverload (3) will not allow
-       outlets on the corresponding phase to turn on if the 
-       rPDULoadConfigOverloadThreshold OID is exceeded."
-   ::= { rPDUOutletPhaseEntry 2 }
-
-
--- the rPDUOutletControl group
-
-rPDUOutletControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF RPDUOutletControlEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of the individual outlets.
-       The number of entries is contained in the 
-       rPDUOutletDevNumCntrlOutlets OID."
-   ::= { rPDUOutletControl 1 }
-
-rPDUOutletControlEntry OBJECT-TYPE
-   SYNTAX RPDUOutletControlEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlet to control."
-   INDEX  { rPDUOutletControlIndex}
-   ::= { rPDUOutletControlTable 1 }
-
-RPDUOutletControlEntry ::=
-   SEQUENCE {
-      rPDUOutletControlIndex         INTEGER,
-      rPDUOutletControlOutletName    DisplayString,
-      rPDUOutletControlOutletPhase   INTEGER,
-      rPDUOutletControlOutletCommand INTEGER,
-      rPDUOutletControlOutletBank    INTEGER
-   }      
-
-rPDUOutletControlIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { rPDUOutletControlEntry 1 }
-   
-rPDUOutletControlOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is dependent on device.
-       An error will be returned if the set request exceeds the max size.
-       This OID is provided for informational purposes only."
-   ::= { rPDUOutletControlEntry 2 }
-
-rPDUOutletControlOutletPhase    OBJECT-TYPE
-   SYNTAX INTEGER {
-      phase1                     (1),
-      phase2                     (2),
-      phase3                     (3),
-      phase1-2                   (4),
-      phase2-3                   (5),
-      phase3-1                   (6)
-   }        
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The phase/s associated with this outlet.
-      
-       For single phase devices, this object will always 
-       return phase1(1).
-       
-       For 3-phase devices, this object will return phase1 (1), 
-       phase2 (2), or phase3 (3) for outlets tied to a single 
-       phase.  For outlets tied to two phases, this object will
-       return phase1-2 (4) for phases 1 and 2, phase2-3 (5) for 
-       phases 2 and 3, and phase3-1 (6) for phases 3 and 1."
-   ::= { rPDUOutletControlEntry 3 }
-
-rPDUOutletControlOutletCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      immediateOn             (1),
-      immediateOff            (2),
-      immediateReboot         (3),
-      delayedOn               (4),
-      delayedOff              (5),
-      delayedReboot           (6),
-      cancelPendingCommand    (7),
-      gracefulOff             (8),
-      gracefulReboot          (9)
-
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-        the outlet is on, the immediateOn (1) value will be returned.
-        If the outlet is off, the immediateOff (2) value will be
-        returned. 
-       
-       
-        Setting this variable to immediateOn (1) will immediately turn 
-        the outlet on.
-       
-        Setting this variable to immediateOff (2) will immediately turn 
-        the outlet off. 
-
-        Setting this variable to immediateReboot (3) will immediately 
-        reboot the outlet.
-      
-        Setting this variable to delayedOn (4) will turn the outlet on
-        after the rPDUOutletConfigPowerOnTime OID time has elapsed.   
-
-        Setting this variable to delayedOff (5) will turn the outlet off
-        after the rPDUOutletConfigPowerOffTime OID time has elapsed.
-
-        Setting this variable to delayedReboot  (6) will cause the 
-        Switched Rack PDU to perform a delayedOff command, wait the 
-        rPDUOutletConfigRebootDuration OID time, and then perform a 
-        delayedOn command. 
-       
-        Setting this variable to cancelPendingCommand (7) will cause any
-        pending command to this outlet to be canceled.
-
-        Setting this variable to gracefulOff (8) will cause the
-        Switched Rack PDU to shut the outlet off after it waits the 
-        servers graceful shutdown time and the outlets shutdown delay.
-
-        Setting this variable to gracefulReboot (9) will cause the
-        Switched Rack PDU to shut the outlet off after it waits the 
-        servers graceful shutdown time and the outlets shutdown delay.
-        Once the outlet is off, it will wait until the UPS reaches the
-        configured minimum return battery capacity, then the outlets 
-        return delay before it turns the outlet back on."
-
-    ::= { rPDUOutletControlEntry 4 }
-
-rPDUOutletControlOutletBank    OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The bank associated with this outlet."
-   ::= { rPDUOutletControlEntry 5 }
-
-
--- the rPDUOutletConfig group
-
-rPDUOutletConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF RPDUOutletConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the rPDUOutletDevNumCntrlOutlets OID."
-   ::= { rPDUOutletConfig 1 }
-
-rPDUOutletConfigEntry OBJECT-TYPE
-   SYNTAX RPDUOutletConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlet to configure."
-   INDEX  { rPDUOutletConfigIndex}
-   ::= { rPDUOutletConfigTable 1 }
-
-RPDUOutletConfigEntry ::=
-   SEQUENCE {
-      rPDUOutletConfigIndex          INTEGER,
-      rPDUOutletConfigOutletName     DisplayString,
-      rPDUOutletConfigOutletPhase    INTEGER,
-      rPDUOutletConfigPowerOnTime    INTEGER,
-      rPDUOutletConfigPowerOffTime   INTEGER,
-      rPDUOutletConfigRebootDuration INTEGER,
-      rPDUOutletConfigOutletBank     INTEGER
-   }      
-
-rPDUOutletConfigIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { rPDUOutletConfigEntry 1 }
-   
-rPDUOutletConfigOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is dependent on device.
-       An error will be returned if the set request exceeds the max size."
-   ::= { rPDUOutletConfigEntry 2 }
-
-rPDUOutletConfigOutletPhase    OBJECT-TYPE
-   SYNTAX INTEGER {
-      phase1                     (1),
-      phase2                     (2),
-      phase3                     (3),
-      phase1-2                   (4),
-      phase2-3                   (5),
-      phase3-1                   (6)
-   }        
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The phase/s associated with this outlet.
-      
-       For single phase devices, this object will always 
-       return phase1(1).
-       
-       For 3-phase devices, this object will return phase1 (1), 
-       phase2 (2), or phase3 (3) for outlets tied to a single 
-       phase.  For outlets tied to two phases, this object will
-       return phase1-2 (4) for phases 1 and 2, phase2-3 (5) for 
-       phases 2 and 3, and phase3-1 (6) for phases 3 and 1."
-   ::= { rPDUOutletConfigEntry 3 }
-
-rPDUOutletConfigPowerOnTime OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet will delay 
-       powering on at coldstart or when a command that requires 
-       a turn-on delay is issued.
-              
-       Allowed values are:
-
-       -1       - never power on.
-       0        - power on immediately.
-       1 to 300 - power on up to 300 seconds (5 minutes) after being
-                  commanded."
-   ::= { rPDUOutletConfigEntry 4 }
-
-rPDUOutletConfigPowerOffTime OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The amount of time (in seconds) the outlet will delay 
-       powering off when a command that requires 
-       a turn-off delay is issued.
-
-       Allowed values are:
-
-       -1       - never power off.
-       0        - power off immediately.
-       1 to 300 - power off up to 300 seconds (5 minutes) after being
-                  commanded."
-   ::= { rPDUOutletConfigEntry 5 }
-
-rPDUOutletConfigRebootDuration OBJECT-TYPE
-   SYNTAX INTEGER                
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "During a reboot sequence, power is turned off and then 
-       back on. This OID defines the amount of time to wait, 
-       in seconds, after turning the power off, at the start
-       of the sequence, before turning power back on, at the
-       end of the reboot sequence.       
-       
-       Allowed range is any value between 5 and 60 seconds (1 minute)."
-   ::= { rPDUOutletConfigEntry 6 }
-
-rPDUOutletConfigOutletBank    OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The bank associated with this outlet."
-   ::= { rPDUOutletConfigEntry 7 }
-
-
--- the rPDUOutletStatus group
-
-rPDUOutletStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF RPDUOutletStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting of status of individual outlets. The number of
-       entries is contained in the rPDUOutletDevNumCntrlOutlets OID."
-   ::= { rPDUOutletStatus 1 }
-
-rPDUOutletStatusEntry OBJECT-TYPE
-   SYNTAX RPDUOutletStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlet to gather status from."
-   INDEX  { rPDUOutletStatusIndex}
-   ::= { rPDUOutletStatusTable 1 }
-
-RPDUOutletStatusEntry ::=
-   SEQUENCE {
-      rPDUOutletStatusIndex          INTEGER,
-      rPDUOutletStatusOutletName     DisplayString,
-      rPDUOutletStatusOutletPhase    INTEGER,
-      rPDUOutletStatusOutletState    INTEGER,
-      rPDUOutletStatusCommandPending INTEGER,
-      rPDUOutletStatusOutletBank     INTEGER
-   }      
-
-rPDUOutletStatusIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { rPDUOutletStatusEntry 1 }
-   
-rPDUOutletStatusOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet. Maximum size is dependent on device.
-       An error will be returned if the set request exceeds the max size.
-       This OID is provided for informational purposes only."
-   ::= { rPDUOutletStatusEntry 2 }
-
-rPDUOutletStatusOutletPhase    OBJECT-TYPE
-   SYNTAX INTEGER {
-      phase1                     (1),
-      phase2                     (2),
-      phase3                     (3),
-      phase1-2                   (4),
-      phase2-3                   (5),
-      phase3-1                   (6)
-   }        
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The phase/s associated with this outlet.
-      
-       For single phase devices, this object will always 
-       return phase1(1).
-       
-       For 3-phase devices, this object will return phase1 (1), 
-       phase2 (2), or phase3 (3) for outlets tied to a single 
-       phase.  For outlets tied to two phases, this object will
-       return phase1-2 (4) for phases 1 and 2, phase2-3 (5) for 
-       phases 2 and 3, and phase3-1 (6) for phases 3 and 1."
-   ::= { rPDUOutletStatusEntry 3 }
-
-rPDUOutletStatusOutletState OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletStatusOn              (1),
-        outletStatusOff             (2)
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the outletStatusOn (1) value will be returned.
-       If the outlet is off, the outletStatusOff (2) value will be
-       returned. "
-   ::= { rPDUOutletStatusEntry 4 }
-
-rPDUOutletStatusCommandPending    OBJECT-TYPE
-   SYNTAX INTEGER {
-        outletStatusCommandPending    (1),
-        outletStatusNoCommandPending  (2)
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the command pending
-        state of the outlet. If a command is pending on the 
-        outlet, the outletStatusCommandPending (1) value
-        will be returned. If there is not a command pending
-        on the outlet, the outletStatusNoCommandPending (2)
-        will be returned."
-   ::= { rPDUOutletStatusEntry 5 }
-
-rPDUOutletStatusOutletBank    OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The bank associated with this outlet."
-   ::= { rPDUOutletStatusEntry 6 }
-
-
--- the rPDUOutletBank group
-
-rPDUOutletBankTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletBankEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for management of outlets on a per bank basis."
-   ::= { rPDUOutletBank 1 }
-
-rPDUOutletBankEntry OBJECT-TYPE
-   SYNTAX OutletBankEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The bank to manage."
-   INDEX  { rPDUOutletBankIndex}
-   ::= { rPDUOutletBankTable 1 }
-
-OutletBankEntry ::=
-   SEQUENCE {
-      rPDUOutletBankIndex                INTEGER,
-      rPDUOutletBankOverloadRestriction  INTEGER
-   }      
-
-rPDUOutletBankIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the Switched Rack PDU bank entry."
-   ::= { rPDUOutletBankEntry 1 }
-
-rPDUOutletBankOverloadRestriction OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alwaysAllowTurnON         (1),
-      restrictOnNearOverload    (2),
-      restrictOnOverload        (3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID controls the behavior of a Switched Rack PDU 
-       bank when an overload condition is possible and 
-       additional outlets are requested to be turned on. 
-
-       Setting this OID to alwaysAllowTurnON (1) will always allow 
-       the outlets on the corresponding bank to turn on.
-       
-       Setting this OID to restrictOnNearOverload (2) will not allow 
-       outlets on the corresponding bank to turn on if the 
-       rPDULoadConfigNearOverloadThreshold OID is exceeded.
-              
-       Setting this OID to restrictOnOverload (3) will not allow
-       outlets on the corresponding bank to turn on if the 
-       rPDULoadConfigOverloadThreshold OID is exceeded."
-   ::= { rPDUOutletBankEntry 2 }
-
--- the rPDUPowerSupplyDevice group
-
-rPDUPowerSupply1Status   OBJECT-TYPE
-   SYNTAX INTEGER       {
-      powerSupply1Ok             (1),
-      powerSupply1Failed         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return powerSupply1Ok(1) if power
-       supply 1 is functioning normally.  If not functioning normally, 
-       this OID will return powerSupply1Failed(2)."  
-   ::= { rPDUPowerSupplyDevice 1 }
-
-rPDUPowerSupply2Status   OBJECT-TYPE
-   SYNTAX INTEGER       {
-      powerSupply2Ok             (1),
-      powerSupply2Failed         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return powerSupply2Ok(1) if power
-       supply 2 is functioning normally.  If not functioning normally, 
-       this OID will return powerSupply2Failed(2)."  
-   ::= { rPDUPowerSupplyDevice 2 }
-
-
-
--- the dm3IdentSystem group
- 
-dm3IdentSysDescriptionTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC description records."
-   ::= { dm3IdentSystem 1 }
-
-dm3IdentSysDescriptionTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IdentSysDescriptionEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing description records of the powerplant. The number of
-       entries is contained in the dm3IdentSysDescriptionTableSize OID."
-   ::= { dm3IdentSystem 2 }    
-
-dm3IdentSysDescriptionEntry OBJECT-TYPE
-   SYNTAX IdentSysDescriptionEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The powerplant description record to reference."
-   INDEX { dm3IdentSysDescriptionIndex }
-   ::= { dm3IdentSysDescriptionTable 1 }
-   
-IdentSysDescriptionEntry ::=
-   SEQUENCE {
-      dm3IdentSysDescriptionIndex   INTEGER,
-      dm3IdentSysDescriptionText    DisplayString
-   }
-
-dm3IdentSysDescriptionIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant description record."
-   ::= { dm3IdentSysDescriptionEntry 1 }
-
-dm3IdentSysDescriptionText OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A 16 character text field describing the DC power plant device.
-      This field can be configured from the dm3ConfigSysDescriptionText OID."
-   ::= { dm3IdentSysDescriptionEntry 2 }
-
-dm3IdentSysModel OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Model type of the DC power plant."
-   ::= { dm3IdentSystem 3 }
-
-dm3IdentSysCntrlRev OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Integer representation of the hardware revision of the Master Controller board."
-   ::= { dm3IdentSystem 4 }
-
-dm3IdentSysFWVersion OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Integer representation of the power plant Master Controller firmware revision."
-   ::= { dm3IdentSystem 5 }
-   
--- the dm3ConfigSystem group
-
-dm3ConfigSysDescriptionTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC description records."
-   ::= { dm3ConfigSystem 1 }
-
-dm3ConfigSysDescriptionTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigSysDescriptionEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing description records of the powerplant. The number of
-       entries is contained in the dm3ConfigSysDescriptionTableSize OID."
-   ::= { dm3ConfigSystem 2 }       
-
-dm3ConfigSysDescriptionEntry OBJECT-TYPE
-   SYNTAX ConfigSysDescriptionEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The powerplant description record to reference."
-   INDEX { dm3ConfigSysDescriptionIndex }
-   ::= { dm3ConfigSysDescriptionTable 1 }
-   
-ConfigSysDescriptionEntry ::=
-   SEQUENCE {
-      dm3ConfigSysDescriptionIndex   INTEGER,
-      dm3ConfigSysDescriptionText    DisplayString
-   }
-
-dm3ConfigSysDescriptionIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant description record."
-
-   ::= { dm3ConfigSysDescriptionEntry 1 }
-
-dm3ConfigSysDescriptionText OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "16 character text field describing the DC power plant device."
-
-   ::= { dm3ConfigSysDescriptionEntry 2 }
-
-dm3ConfigSysHighTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Ambient high temperature threshold.  Temperature sensor located on Master
-      Controller board.
-
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
-      
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigSystem 3 }
-
-dm3ConfigSysHighTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the System High Temperature Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-   ::= { dm3ConfigSystem 4 }
-   
-dm3ConfigSysLowTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Ambient low temperature threshold.  Temperature sensor located on Master
-      Controller board.
-      
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
-
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigSystem 5 }
-   
-dm3ConfigSysLowTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the System Low Temperature Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-   ::= { dm3ConfigSystem 6 }
-
-dm3ConfigSysHardwareTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the System Hardware Temperature Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-   ::= { dm3ConfigSystem 7 }
-
-dm3ConfigSysRemoteAccess OBJECT-TYPE
-   SYNTAX INTEGER       {
-      accessEnabled               (1),
-      accessDisabled              (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "
-      This OID is used to disable remote write access to the power plant.
-      Setting this OID to accessEnabled (1) will have no affect.
-      Setting this OID to accessDisabled (2) will disable the ability to 
-      remotely configure the DC powerplant.
-      
-      Once remote access is disabled, it can only be restored from the front
-      panel of the DC power plant."
-   ::= { dm3ConfigSystem 8 }
-    
-
--- the dm3ConfigLVD group
-
-dm3ConfigLVDTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant LVDs controllable
-       by this IP address."
-   ::= { dm3ConfigLVD 1 }
-
-dm3ConfigLVDTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the LVDs. The number of
-       entries is contained in the dm3ConfigLVDTableSize OID."
-   ::= { dm3ConfigLVD 2 }      
-
-dm3ConfigLVDEntry OBJECT-TYPE
-   SYNTAX ConfigLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The LVD to configure."
-   INDEX { dm3ConfigLVDIndex }
-   ::= { dm3ConfigLVDTable 1 }
-   
-ConfigLVDEntry ::=
-   SEQUENCE {
-      dm3ConfigLVDIndex               INTEGER,
-      dm3ConfigLVDName                DisplayString,
-      dm3ConfigLVDEnable              INTEGER,
-      dm3ConfigLVDTripThresh          INTEGER,
-      dm3ConfigLVDResetThresh         INTEGER,
-      dm3ConfigLVDOpenAlarm           INTEGER,
-      dm3ConfigLVDHWAlarm             INTEGER
-   }
-   
-dm3ConfigLVDIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant LVD."
-   ::= { dm3ConfigLVDEntry 1 }
-
-dm3ConfigLVDName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the LVD. The maximum value is 16 characters."
-   ::= { dm3ConfigLVDEntry 2 }
-   
-dm3ConfigLVDEnable OBJECT-TYPE
-   SYNTAX INTEGER       {
-      enabledYes               (1),
-      enabledNo                (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID is used to control and indicate if the LVD is on or off.
-      Setting this OID to enabledYes (1) will enable (turn on) the LVD.
-      Setting this OID to enabledNo (2) will disable (turn off) the LVD."
-   ::= { dm3ConfigLVDEntry 3 }
-
-dm3ConfigLVDTripThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "LVD Trip threshold.  If voltage exceeds threshold, the LVD will trip.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigLVDEntry 4 }
-
-dm3ConfigLVDResetThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "LVD Reset threshold.  If voltage exceeds threshold, the LVD will reset.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigLVDEntry 5 }
-   
-dm3ConfigLVDOpenAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the LVD Open Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-   ::= { dm3ConfigLVDEntry 6 }
-   
-dm3ConfigLVDHWAlarm OBJECT-TYPE   
-SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the LVD Hardware Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-   ::= { dm3ConfigLVDEntry 7 }
-
-
--- the dm3ConfigBattery group
-
-dm3ConfigBattFloatVolt OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Float Voltage.  This setting controls the power plant voltage.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 1 }
-
-dm3ConfigBattMaxRecharge OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Maximum Recharge Rate.  This setting controls the battery max
-      recharge rate.  The value is based on C/20 for 240 AHr battery string.
-      
-      Values are represented in thousandths of Amps (mA).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 2 }
-
-dm3ConfigBattDischargeThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery discharge threshold.  If battery output current exceeds threshold
-      a battery discharge alarm will occur.
-      
-      Values are represented in thousandths of Amps (mA).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 3 }
-   
-dm3ConfigBattDischargeAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery Discharge Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 4 }
-
-dm3ConfigBattHighVoltThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery high voltage threshold.  If system battery voltage exceeds threshold
-      a battery high voltage alarm will occur.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 5 }
-   
-dm3ConfigBattHighVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery High Voltage Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 6 }
-   
-dm3ConfigBattLowVoltThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery low voltage threshold.  If system battery voltage is under threshold
-      a battery low voltage alarm will occur.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 7 }
-   
-dm3ConfigBattLowVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery Low Voltage Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 8 }
-   
-dm3ConfigBattHighTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery high temperature threshold.  If system battery temperature exceeds threshold
-      a battery high temperature alarm will occur.
-      
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
-
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-      
-   ::= { dm3ConfigBattery 9 }
-   
-dm3ConfigBattHighTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery High Temperature Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 10 }
-   
-dm3ConfigBattLowTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery low temperature threshold.  If system battery temperature is under threshold
-      a battery low temperature alarm will occur.
-      
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit).
-
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-      
-   ::= { dm3ConfigBattery 11 }
-   
-dm3ConfigBattLowTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery Low Temperature Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 12 }
-
-dm3ConfigBattAmpHour OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Amp-Hour Size.  Units are thousandths of Amp hours (mAHr).
-
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 13 }
-
-dm3ConfigCompMethod OBJECT-TYPE
-   SYNTAX INTEGER       {
-      tempcompOn          (1),
-      tempcompOff         (2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID is used to configure and get the state of the battery
-      temperature compensation.
-      
-      Setting this OID to tempcompOn (1) will enable/turn on the battery temperature compensation.
-      Setting this OID to tempcompOff (2) will disable/turn off the battery temperature compensation."
-   ::= { dm3ConfigBattery 14 }
-
-dm3ConfigCompTempCoeff OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Compensation Temperature Coefficient. (uV/degC/cell).
-      
-      Units are presented in microvolts.
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 15 }
-
-dm3ConfigHighKneeTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "High Knee for temperature compensation:  Compensation temperature coefficient 
-      becomes 0mV/degC/cell.
-      
-      Values are represented in thousandths of degrees Celcius.
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 16 }
-
-dm3ConfigLowKneeTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Low Knee for temperature compensation:  Compensation temperature coefficient 
-      becomes 0mV/degC/cell.
-      
-      Values are represented in thousandths of degrees Celcius.
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigBattery 17 }
-   
-dm3ConfigBattHwCurrentAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery Current Hardware Alarm (indicating current is outside realistic
-       limits, or a possible measurement fault;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 18 }
-   
-dm3ConfigBattHwTempAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Battery Temperature Hardware Alarm (indicating temperature is outside realistic
-       limits, or a possible measurement fault;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBattery 19 }
-
-
--- the dm3ConfigRectThresh group
-dm3ConfigRectHighVoltThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Rectifier high voltage threshold.  If rectifier voltage exceeds threshold
-      a rectifier high voltage alarm will occur.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigRectThresh 1 }
-
-
-dm3ConfigRectLowVoltThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Rectifier low voltage threshold.  If rectifier voltage is under threshold
-      a rectifier low voltage alarm will occur.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigRectThresh 2 }
-
-dm3ConfigRectFailSafe OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Rectifier Fail Safe point.  This OID represents the value sent to rectifier controllers
-      to use in the event of communications loss with the Master Controller or Master Controller
-      board failure.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigRectThresh 3 }
-
-dm3ConfigRectFailComm OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Rectifier Communication Fail timeout.  This OID represents the time interval in which there is no 
-      communication between the rectifier and the master controller at which the rectifier will reset 
-      all its values to default.
-      
-      Values are represented in hundredths of Seconds.
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigRectThresh 4 }
-
--- the dm3ConfigRectAlarms group
-
-dm3ConfigRectHighVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier High Voltage Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 1 }
-
-dm3ConfigRectLowVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Low Voltage Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 2 }
-   
-dm3ConfigRectConfigAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This alarm is activated when a new rectifier is detected;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 3 }
-   
-dm3ConfigRect1ofNAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This setting indicates the action if ONE rectifier of a N+1 system has failed;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 4 }
-
-dm3ConfigRect2ofNAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This setting indicates the action if TWO OR MORE rectifiers of a N+1 system have failed;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 5 }
-
-dm3ConfigRectDiagAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Controller Diagnostics Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
-      to be activated if ONE rectifier fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
-
-   ::= { dm3ConfigRectAlarms 6 }
-
-dm3ConfigRectImbalanceAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Imbalance Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 7 }
-
-dm3ConfigRectCurrLimitAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Current Limit Alarm (indicating rectifier in the Current Limit state);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
-      to be activated if ONE rectifier fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
-
-   ::= { dm3ConfigRectAlarms 8 }
-
-dm3ConfigRectStandbyAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Standby Alarm (indicating output DC has been turned off);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
-      to be activated if ONE rectifier fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
-
-   ::= { dm3ConfigRectAlarms 9 }
-   
-dm3ConfigRectFanFailAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Fan Fail Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
-      to be activated if ONE rectifier fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
-
-   ::= { dm3ConfigRectAlarms 10 }
-
-dm3ConfigRectFailAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Fail Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigRect1ofNAlarm OID
-      to be activated if ONE rectifier fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigRect2ofNAlarm OID to be activated if TWO OR MORE rectifiers fail in an N+1 system."
-
-   ::= { dm3ConfigRectAlarms 11 }
-
-dm3ConfigRectHwVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Rectifier Hardware Voltage Alarm (indicating voltage outside realistic limits,
-      or a possible measurement fault);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigRectAlarms 12 }
-
-
--- the dm3ConfigConvThresh group
-
-dm3ConfigConvHighVoltThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter high voltage threshold.  If converter voltage exceeds threshold
-      a converter high voltage alarm will occur.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-
-   ::= { dm3ConfigConvThresh 1 }
-   
-dm3ConfigConvLowVoltThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter low voltage threshold.  If converter voltage exceeds threshold
-      a converter low voltage alarm will occur.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigConvThresh 2 }
-
-dm3ConfigConvFailSafe OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter Fail Safe point.  This OID represents the value sent to converter controllers
-      to use in the event of communications loss with the Master Controller or Master Controller
-      board failure.
-      
-      Values are represented in thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigConvThresh 3 }
-
-dm3ConfigConvSetPoint OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter Set point.  This OID represents the initial set point used in the
-      voltage control loop.
-      
-      Units are thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigConvThresh 4 }
-
-dm3ConfigConvFailMax OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter Fail Maximum limit.  This OID represents the value sent to the converter
-      controllers to define the maximum set point allowed.
-      
-      Units are thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigConvThresh 5 }
-
-dm3ConfigConvFailMin OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter Fail Minimum limit.  This OID represents the value sent to the converter
-      controllers to define the minimum set point allowed.
-      
-      Units are thousandths of Volts (mV).
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigConvThresh 6 }
-
-dm3ConfigConvFailComm OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Converter Communication Fail timeout.  This OID represents the time interval in which there is no 
-      communication between the converter and the master controller at which the converter will reset 
-      all its values to default.
-      
-      Values are represented in hundredths of Seconds.
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigConvThresh 7 }
-
--- the dm3ConfigConvAlarms group
-dm3ConfigConvHighVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter High Voltage Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigConvAlarms 1 }
-
-dm3ConfigConvLowVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Low Voltage Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigConvAlarms 2 }
-
-dm3ConfigConvConfigAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Configuration Alarm (indicating a new converter has been detected);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigConvAlarms 3 }
-
-dm3ConfigConv1ofNAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter 1ofN Alarm (indicating action if ONE converter of a N+1 system has failed);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigConvAlarms 4 }
-
-dm3ConfigConv2ofNAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter 2ofN Alarm (indicating action if TWO OR MORE converters of a N+1 system has failed);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigConvAlarms 5 }
-
-dm3ConfigConvDiagAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Diagnostics Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 6 }
-
-dm3ConfigConvImbalanceAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Imbalance Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 7 }
-
-dm3ConfigConvCurrLimitAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Current Limit Alarm (indicating the converter is in the Current Limit state);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 8 }
-
-dm3ConfigConvStandbyAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Standby Alarm (indicating the converter is in the Standby state);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 9 }
-
-dm3ConfigConvFanFailAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Fan Fail Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 10 }
-   
-dm3ConfigConvFailAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Fail Alarm;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 11 }
-   
-dm3ConfigConvHwVoltAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9),
-      alarmNofN                (10)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "For the Converter Voltage Alarm (indicating voltage outside realistic limits, or a
-      possible measurement fault);
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmNofN (10) causes the alarm specified in the dm3ConfigConv1ofNAlarm OID
-      to be activated if ONE converter fails in an N+1 system.  It causes the alarm specified in the 
-      dm3ConfigConv2ofNAlarm OID to be activated if TWO OR MORE converters fail in an N+1 system."
-
-   ::= { dm3ConfigConvAlarms 12 }
-
-
--- the dm3ConfigOutputRelays group
-
-dm3ConfigOutRlyTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant Output Relays controllable
-       by this IP address."
-   ::= { dm3ConfigOutputRelays 1 }
-
-dm3ConfigOutRlyTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigOutRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the Output Relays. The number of
-       entries is contained in the dm3ConfigOutRlyTableSize OID."
-   ::= { dm3ConfigOutputRelays 2 }     
- 
-dm3ConfigOutRlyEntry OBJECT-TYPE
-   SYNTAX ConfigOutRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The output relay to configure."
-   INDEX { dm3ConfigOutRlyIndex }
-   ::= { dm3ConfigOutRlyTable 1 }
-   
-ConfigOutRlyEntry ::=
-   SEQUENCE {
-      dm3ConfigOutRlyIndex            INTEGER,
-      dm3ConfigOutRlyName             DisplayString,
-      dm3ConfigOutRlyDelay            INTEGER,
-      dm3ConfigOutRlyAlarm            INTEGER
-   }
-   
-dm3ConfigOutRlyIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant output relay."
-   ::= { dm3ConfigOutRlyEntry 1 }
-   
-dm3ConfigOutRlyName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the output relay. The maximum value is 16 characters."
-   ::= { dm3ConfigOutRlyEntry 2 }
-   
-dm3ConfigOutRlyDelay OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Output Relay Delay.  This OID represents the time delay from the initiation of an
-      output relay action to when the output relay action does occur.  If the alarm condition
-      disappears before the end of the delay, no action will occur.  Delay for Major 
-      and Minor alarms is not configurable and is always set to 0.
-      
-      Values are represented in hundredths of seconds.
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigOutRlyEntry 3 }
-   
-dm3ConfigOutRlyAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Output Relay Alarm.  This setting indicates what action to perform in the event of
-      an output relay alarm condition;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition.
-      
-      Relay Alarm for Major and Minor alarms is not configurable and is always set to 
-      alarmMajor and alarmMinor respectively."
-
-   ::= { dm3ConfigOutRlyEntry 4 }
-
-
--- the dm3ConfigInputRelays group
-
-dm3ConfigInRlyTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant Input Relays controllable
-       by this IP address."
-   ::= { dm3ConfigInputRelays 1 }
-
-dm3ConfigInRlyTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigInRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the Input Relays. The number of
-       entries is contained in the dm3ConfigInRlyTableSize OID."
-   ::= { dm3ConfigInputRelays 2 }      
-
-dm3ConfigInRlyEntry OBJECT-TYPE
-   SYNTAX ConfigInRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The input relay to configure."
-   INDEX { dm3ConfigInRlyIndex }
-   ::= { dm3ConfigInRlyTable 1 }
-   
-ConfigInRlyEntry ::=
-   SEQUENCE { 
-      dm3ConfigInRlyIndex             INTEGER,
-      dm3ConfigInRlyName              DisplayString,
-      dm3ConfigInRlyDelay             INTEGER,
-      dm3ConfigInRlyAlarm             INTEGER
-   }
-   
-dm3ConfigInRlyIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant input relay."
-   ::= { dm3ConfigInRlyEntry 1 }
-   
-dm3ConfigInRlyName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the input relay. The maximum value is 16 characters."
-
-   ::= { dm3ConfigInRlyEntry 2 }
-   
-dm3ConfigInRlyDelay OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Input Relay Delay.  This OID represents the time delay from the initiation of an
-      input relay action to when the input relay action does occur.   If the alarm condition
-      disappears before the end of the delay, no action will occur.
-      
-      Values are represented in hundredths of seconds.
-
-      Attempts to set the value above or below the acceptable range of the powerplant
-       will cause the value to be set at the high or low point of the range respectively."
-   ::= { dm3ConfigInRlyEntry 3 }
-   
-dm3ConfigInRlyAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Input Relay Alarm.  This setting indicates what action to perform in the event of
-      an input relay alarm condition;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigInRlyEntry 4 }
-
--- the dm3ConfigBreakers group
-
-dm3ConfigBreakersTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant circuit breakers controllable
-       by this IP address."
-   ::= { dm3ConfigBreakers 1 }
-
-dm3ConfigBreakersTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigBreakersEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the circuit breakers. The number of
-       entries is contained in the dm3ConfigBreakersTableSize OID."
-   ::= { dm3ConfigBreakers 2 }     
-
-dm3ConfigBreakersEntry OBJECT-TYPE
-   SYNTAX ConfigBreakersEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The circuit breaker to configure."
-   INDEX { dm3ConfigBreakersIndex }
-   ::= { dm3ConfigBreakersTable 1 }
-   
-ConfigBreakersEntry ::=
-   SEQUENCE {
-      dm3ConfigBreakersIndex         INTEGER,
-      dm3ConfigBreakersName          DisplayString,
-      dm3ConfigBreakersAlarm         INTEGER
-   }
-   
-dm3ConfigBreakersIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant circuit breaker."
-   ::= { dm3ConfigBreakersEntry 1 }
-   
-dm3ConfigBreakersName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the circuit breaker. The maximum value is 16 characters."
-   ::= { dm3ConfigBreakersEntry 2 }
-   
-dm3ConfigBreakersAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Circuit Breaker Alarm.  This setting indicates what action to perform in the event of
-      a circuit breaker alarm condition;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigBreakersEntry 3 }
-
--- the dm3ConfigFuses group
-
-dm3ConfigFusesTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant Fuses controllable
-       by this IP address."
-   ::= { dm3ConfigFuses 1 }
-
-dm3ConfigFusesTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigFusesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the Fuses. The number of
-       entries is contained in the dm3ConfigFusesTableSize OID."
-   ::= { dm3ConfigFuses 2 }    
-   
-dm3ConfigFusesEntry OBJECT-TYPE
-   SYNTAX ConfigFusesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The fuse to configure."
-   INDEX { dm3ConfigFusesIndex }
-   ::= { dm3ConfigFusesTable 1 }
-   
-ConfigFusesEntry ::=
-   SEQUENCE {
-      dm3ConfigFusesIndex              INTEGER,
-      dm3ConfigFusesName               DisplayString,
-      dm3ConfigFusesAlarm              INTEGER
-   }
-   
-dm3ConfigFusesIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant fuse."
-   ::= { dm3ConfigFusesEntry 1 }
-   
-dm3ConfigFusesName OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the fuse. The maximum value is 16 characters."
-   ::= { dm3ConfigFusesEntry 2 }
-   
-dm3ConfigFusesAlarm OBJECT-TYPE
-   SYNTAX INTEGER       {
-      alarmIgnore               (1),
-      alarmRelay1               (2),
-      alarmRelay2               (3),
-      alarmRelay3               (4),
-      alarmRelay4               (5),
-      alarmRelay5               (6),
-      alarmRelay6               (7),
-      alarmMinor                (8),
-      alarmMajor                (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Fuses Alarm.  This setting indicates what action to perform in the event of
-      a Fuse alarm condition;
-      Setting this OID to alarmIgnore (1) results in the alarm condition being ignored.
-      Setting this OID to alarmRelay1 (2) causes relay 1 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay2 (3) causes relay 2 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay3 (4) causes relay 3 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay4 (5) causes relay 4 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay5 (6) causes relay 5 to be activated for an
-      alarm condition.
-      Setting this OID to alarmRelay6 (7) causes relay 6 to be activated for an
-      alarm condition.
-      Setting this OID to alarmMinor (8) causes the Minor relay to be activated for an
-      alarm condition.
-      Setting this OID to alarmMajor (9) causes the Major relay to be activated for an
-      alarm condition."
-
-   ::= { dm3ConfigFusesEntry 3 }
-
--- the dm3StatusSystem group
-
-dm3StatusSystemTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "System temperature based on sensor on Master Controller PCB.
-
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-
-   ::= { dm3StatusSystem 1 }
-
-dm3StatusSystemStart OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Time stamp at DC powerplant initialization.
-       The time is represented as MMM,DD,YYYY,HH:MM:SS."
-   ::= { dm3StatusSystem 2 }
-
-dm3StatusSysRemoteAccess OBJECT-TYPE
-   SYNTAX INTEGER       {
-      accessEnabled              (1),
-      accessDisabled             (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Remote Access indicator
-      This setting indicates if configuration (write) access to the powerplant is enabled or 
-      disabled at the powerplant level.
-      This value will be accessEnabled (1) if remote configuration is enabled, and 
-      accessDisabled (2) if remote configuration is disabled."
-   ::= { dm3StatusSystem 3 }
-
-dm3StatusSysSecurityLevel OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable shows the current active security access level of controller.  This
-      can only be changed directly from the front panel."
-   ::= { dm3StatusSystem 4 }
-
-dm3StatusSysTempSanity OBJECT-TYPE
-   SYNTAX INTEGER{
-      saneYES              (1),
-      saneNO               (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "System temperature sanity indicator.  Indicates if the system temperature is 
-      reasonable.  Reasonable is defined based on powerplant type.  A value of saneYes (1)
-      indicates temperature is reasonable, a value of saneNo (2) indicates it is not."
-   ::= { dm3StatusSystem 5 }
-
-dm3StatusSysAlarmState OBJECT-TYPE
-   SYNTAX INTEGER{
-      alarmMinor           (1),
-      alarmMajor           (2),
-      alarmBoth            (3),
-      alarmNone            (4)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "System Alarm State.  Reflects the alarm status of the overall DC system.
-      If a minor alarm is present, the value will be alarmMinor(1).
-      If a major alarm is present, the value will be alarmMajor(2).
-      If both minor and a major alarm is present, the value will be alarmBoth(3).
-      If no alarm is present, the value will be alarmNone(4)."
-   ::= { dm3StatusSystem 6 }
-
-dm3StatusSysTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       in the DC system, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { dm3StatusSystem 7 }
-
-
--- the dm3StatusAlarms group
-
-dm3StatusAlarmsTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant alarms viewable
-       by this IP address."
-   ::= { dm3StatusAlarms 1 }
-
-dm3StatusAlarmsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusAlarmsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing system alarms. The number of
-       entries is contained in the dm3StatusAlarmsTableSize OID."
-   ::= { dm3StatusAlarms 2 }       
-
-dm3StatusAlarmsEntry OBJECT-TYPE
-   SYNTAX StatusAlarmsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The alarm to display."
-   INDEX { dm3StatusAlarmsIndex }
-   ::= { dm3StatusAlarmsTable 1 }
-   
-StatusAlarmsEntry ::=
-   SEQUENCE {   
-      dm3StatusAlarmsIndex               INTEGER,
-      dm3StatusAlarmsText                DisplayString
-   }
-
-dm3StatusAlarmsIndex OBJECT-TYPE
-   SYNTAX  INTEGER
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The index of the system alarm."       
-   ::= { dm3StatusAlarmsEntry 1 }
-   
-dm3StatusAlarmsText OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The 16 character text describing the active alarm condition."
-   ::= { dm3StatusAlarmsEntry 2 }
-   
--- the dm3StatusBattery group
-
-dm3StatusBattCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Current:  This OID shows the battery current in thousandths of Amps (mA)."
-   ::= { dm3StatusBattery 1 }
-
-dm3StatusBattTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Temperature:
-      
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dm3StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-
-   ::= { dm3StatusBattery 2 }
-
-dm3StatusBattCurrentSanity OBJECT-TYPE
-   SYNTAX INTEGER{
-      saneYES              (1),
-      saneNO               (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery current sanity indicator.  Indicates if the battery current is 
-      reasonable.  Reasonable is defined based on powerplant type.  A value of saneYes (1)
-      indicates current is reasonable, a value of saneNo (2) indicates it is not."
-   ::= { dm3StatusBattery 3 }
-
-dm3StatusBattTempSanity OBJECT-TYPE
-   SYNTAX INTEGER{
-      saneYES              (1),
-      saneNO               (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery temperature sanity indicator.  Indicates if the battery temperature is 
-      reasonable.  Reasonable is defined based on powerplant type.  A value of saneYes (1)
-      indicates temperature is reasonable, a value of saneNo (2) indicates it is not."
-   ::= { dm3StatusBattery 4 }
-
--- the dm3StatusOEM group
-
-dm3StatusOEMrectOffset OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier offset value in thousandths of Volts (mV)."
-   ::= { dm3StatusOEM 1 }
-
-dm3StatusOEMrectGain OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier gain value in thousandths of Volts (mV/V)."
-   ::= { dm3StatusOEM 2 }
-
-dm3StatusOEMconvOffset OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter offset value in thousandths of Volts (mV)."
-   ::= { dm3StatusOEM 3 }
-
-dm3StatusOEMconvGain OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter gain value in thousandths of Volts (mV/V)."
-   ::= { dm3StatusOEM 4 }
-
-dm3StatusOEMshuntOffset OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the shunt offset value in thousandths of Amps (mA)."
-   ::= { dm3StatusOEM 5 }
-
-dm3StatusOEMshuntGain OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the shunt gain value in thousandths of Amps (mA/A)."
-   ::= { dm3StatusOEM 6 }
-
--- the dm3StatusLVD group
-
-dm3StatusLVDTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant LVDs viewable
-       by this IP address."
-   ::= { dm3StatusLVD 1 }
-
-dm3StatusLVDTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the LVDs. The number of
-       entries is contained in the dm3StatusLVDTableSize OID."
-   ::= { dm3StatusLVD 2 }      
-   
-dm3StatusLVDEntry OBJECT-TYPE
-   SYNTAX StatusLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The LVD to gather status from."
-   INDEX { dm3StatusLVDIndex }
-   ::= { dm3StatusLVDTable 1 }
-   
-StatusLVDEntry ::=
-   SEQUENCE {
-      dm3StatusLVDIndex               INTEGER,
-      dm3StatusLVDName                DisplayString,
-      dm3StatusLVDState               INTEGER,
-      dm3StatusLVDHwFault             INTEGER
-   }
-   
-dm3StatusLVDIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant LVD."
-   ::= { dm3StatusLVDEntry 1 }
-   
-dm3StatusLVDName OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the LVD. The maximum size is 
-       16 characters. The name is set by using the 
-       dm3ConfigLVDName OID.
-       This OID is provided for informational purposes only."       
-   ::= { dm3StatusLVDEntry 2 }
-   
-dm3StatusLVDState OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusClosed             (1),
-      statusOpened             (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusClosed (1) if the LVD is closed.
-       statusOpened (2) will be returned if the LVD is opened." 
-   ::= { dm3StatusLVDEntry 3 }
-
-dm3StatusLVDHwFault OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusFault               (1),
-      statusNofault             (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusFault (1) if the LVD is faulted.
-       statusNofault (2) will be returned if the LVD is not faulted." 
-   ::= { dm3StatusLVDEntry 4 }
-
--- the dm3StatusRectifier group
-
-dm3StatusRectTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant rectifiers viewable
-       by this IP address."
-   ::= { dm3StatusRectifier 1 }
-
-dm3StatusRectTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusRectEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the rectifiers. The number of
-       entries is contained in the dm3StatusRectTableSize OID."
-   ::= { dm3StatusRectifier 2 }    
-
-dm3StatusRectEntry OBJECT-TYPE
-   SYNTAX StatusRectEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The rectifier to gather status from."
-   INDEX { dm3StatusRectIndex }
-   ::= { dm3StatusRectTable 1 }
-   
-StatusRectEntry ::=
-   SEQUENCE {
-      dm3StatusRectIndex            INTEGER,
-      dm3StatusRectID               INTEGER,
-      dm3StatusRectDesc             DisplayString,
-      dm3StatusRectCurrent          INTEGER,
-      dm3StatusRectCurrentLimit     INTEGER,
-      dm3StatusRectStandby          INTEGER,
-      dm3StatusRectFanFail          INTEGER,
-      dm3StatusRectFail             INTEGER,
-      dm3StatusRectDevType          INTEGER,
-      dm3StatusRectPhyAddr          INTEGER,
-      dm3StatusRectCfg              INTEGER,
-      dm3StatusRectPcbRev           INTEGER,
-      dm3StatusRectFwVer            INTEGER,
-      dm3StatusRectPresent          INTEGER,
-      dm3StatusRectDiagPass         INTEGER,
-      dm3StatusRectState            INTEGER
-   }
-
-dm3StatusRectIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant rectifier."
-   ::= { dm3StatusRectEntry 1 }
-
-dm3StatusRectID OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier ID.  This enumerates the number of the rectifier within 
-       a group of rectifiers."
-   ::= { dm3StatusRectEntry 2 }
-
-dm3StatusRectDesc OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the 16-character rectifier description."
-   ::= { dm3StatusRectEntry 3 }
-
-dm3StatusRectCurrent OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier current in thousandths of Amps (mA)."
-   ::= { dm3StatusRectEntry 4 }
-
-dm3StatusRectCurrentLimit OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier is in the Current Limit state.
-       statusFalse (2) will be returned if the rectifier is not in the Current Limit state." 
-   ::= { dm3StatusRectEntry 5 }
-
-dm3StatusRectStandby OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier is in the Standby state.
-       statusFalse (2) will be returned if the rectifier is not in the Standby state." 
-   ::= { dm3StatusRectEntry 6 }
-
-dm3StatusRectFanFail OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier Fan has failed.
-       statusFalse (2) will be returned if the rectifier Fan has not failed." 
-   ::= { dm3StatusRectEntry 7 }
-
-dm3StatusRectFail    OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier has failed.
-       statusFalse (2) will be returned if the rectifier has not failed." 
-   ::= { dm3StatusRectEntry 8 }
-
-dm3StatusRectDevType OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier device type."
-   ::= { dm3StatusRectEntry 9 }
-
-dm3StatusRectPhyAddr OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier physical address (the address on the bus)."
-   ::= { dm3StatusRectEntry 10 }
-
-dm3StatusRectCfg OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier is present after
-      power-up or set-configuration.
-       statusFalse (2) will be returned if the rectifier is not configured." 
-   ::= { dm3StatusRectEntry 11 }
-
-dm3StatusRectPcbRev OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier device PCB serial number."
-   ::= { dm3StatusRectEntry 12 }
-
-dm3StatusRectFwVer OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier device firmware revision."
-   ::= { dm3StatusRectEntry 13 }
-
-dm3StatusRectPresent OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier is present.
-       statusFalse (2) will be returned if the rectifier is not present." 
-   ::= { dm3StatusRectEntry 14 }
-
-dm3StatusRectDiagPass OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier diagnostics have passed.
-       statusFalse (2) will be returned if the rectifier diagnostics have not passed." 
-   ::= { dm3StatusRectEntry 15 }
-
-dm3StatusRectState OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier device state as defined by the device status register."
-   ::= { dm3StatusRectEntry 16 }
-
-dm3StatusSysRectVoltSanity OBJECT-TYPE
-   SYNTAX INTEGER {
-      saneYES              (1),
-      saneNO               (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Rectifier voltage sanity indicator.  Indicates if the rectifier voltage is 
-      reasonable.  Reasonable is defined based on powerplant type.  A value of saneYes (1)
-      indicates voltage is reasonable, a value of saneNo (2) indicates it is not."
-   ::= { dm3StatusRectifier 3 }
-
-dm3StatusSysRectAvailable OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier is available.
-       statusFalse (2) will be returned if the rectifier is not available." 
-   ::= { dm3StatusRectifier 4 }
-
-dm3StatusSysRectType OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the type of rectifier the system has.  There can only be a single type of
-      rectifier in the power plant"
-   ::= { dm3StatusRectifier 5 }
-
-dm3StatusSysRectVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the system level rectifier voltage in thousandths of Volts (mV)."
-   ::= { dm3StatusRectifier 6 }
-
-dm3StatusSysRectCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the system level rectifier current in thousandths of Amps (mA)."
-   ::= { dm3StatusRectifier 7 }
-
-
--- the dm3StatusConverter group
-
-dm3StatusConvTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant converters viewable
-       by this IP address."
-   ::= { dm3StatusConverter 1 }
-
-dm3StatusConvTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusConvEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for viewing status of the converters. The number of
-       entries is contained in the dm3StatusConvTableSize OID."
-   ::= { dm3StatusConverter 2 }    
- 
-dm3StatusConvEntry OBJECT-TYPE
-   SYNTAX StatusConvEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The converter to gather status from."
-   INDEX { dm3StatusConvIndex }
-   ::= { dm3StatusConvTable 1 }
-   
-StatusConvEntry ::=
-   SEQUENCE {
-      dm3StatusConvIndex            INTEGER,
-      dm3StatusConvID               INTEGER,
-      dm3StatusConvDesc             DisplayString,
-      dm3StatusConvCurrent          INTEGER,
-      dm3StatusConvCurrentLimit     INTEGER,
-      dm3StatusConvStandby          INTEGER,
-      dm3StatusConvFanFail          INTEGER,
-      dm3StatusConvFail             INTEGER,
-      dm3StatusConvDevType          INTEGER,
-      dm3StatusConvPhyAddr          INTEGER,
-      dm3StatusConvCfg              INTEGER,
-      dm3StatusConvPcbRev           INTEGER,
-      dm3StatusConvFwVer            INTEGER,
-      dm3StatusConvPresent          INTEGER,
-      dm3StatusConvDiagPass         INTEGER,
-      dm3StatusConvState            INTEGER
-   }
-
-dm3StatusConvIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant converter."
-   ::= { dm3StatusConvEntry 1 }
-   
-dm3StatusConvID OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter ID.  This enumerates the number of the converter within 
-       a group of converters."
-   ::= { dm3StatusConvEntry 2 }
-
-dm3StatusConvDesc OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the 16 character converter description."
-   ::= { dm3StatusConvEntry 3 }
-
-dm3StatusConvCurrent OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter current in thousandths of Amps (mA)."
-   ::= { dm3StatusConvEntry 4 }
-
-dm3StatusConvCurrentLimit OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter is in the Current Limit state.
-       statusFalse (2) will be returned if the converter is not in the Current Limit state." 
-   ::= { dm3StatusConvEntry 5 }
-
-dm3StatusConvStandby OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter is in the Standby state.
-       statusFalse (2) will be returned if the converter is not in the Standby state." 
-   ::= { dm3StatusConvEntry 6 }
-
-dm3StatusConvFanFail OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter Fan has failed.
-       statusFalse (2) will be returned if the converter Fan has not failed." 
-   ::= { dm3StatusConvEntry 7 }
-
-dm3StatusConvFail OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter has failed.
-       statusFalse (2) will be returned if the converter has not failed." 
-   ::= { dm3StatusConvEntry 8 }
-
-dm3StatusConvDevType OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter device type."
-   ::= { dm3StatusConvEntry 9 }
-
-dm3StatusConvPhyAddr OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter physical address (the address on the bus)."
-   ::= { dm3StatusConvEntry 10 }
-
-dm3StatusConvCfg OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter is present after
-      power-up or set-configuration.
-       statusFalse (2) will be returned if the converter is not configured." 
-   ::= { dm3StatusConvEntry 11 }
-
-dm3StatusConvPcbRev OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter device PCB serial number."
-   ::= { dm3StatusConvEntry 12 }
-
-dm3StatusConvFwVer OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter device firmware version."
-   ::= { dm3StatusConvEntry 13 }
-
-dm3StatusConvPresent OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter is present.
-       statusFalse (2) will be returned if the converter is not present." 
-   ::= { dm3StatusConvEntry 14 }
-
-dm3StatusConvDiagPass OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter diagnostics have passed.
-       statusFalse (2) will be returned if the converter diagnostics have not passed." 
-   ::= { dm3StatusConvEntry 15 }
-
-dm3StatusConvState OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter state as defined by the device status register."
-   ::= { dm3StatusConvEntry 16 }
-
-dm3StatusSysConvVoltSanity OBJECT-TYPE
-   SYNTAX INTEGER{
-      saneYES              (1),
-      saneNO               (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Converter voltage sanity indicator.  Indicates if the converter voltage is 
-      reasonable.  Reasonable is defined based on powerplant type.  A value of saneYes (1)
-      indicates voltage is reasonable, a value of saneNo (2) indicates it is not."
-   ::= { dm3StatusConverter 3 }
-   
-dm3StatusSysConvAvailable OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the converter is available.
-       statusFalse (2) will be returned if the converter is not available." 
-   ::= { dm3StatusConverter 4 }
-   
-dm3StatusSysConvType OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the converter type."
-   ::= { dm3StatusConverter 5 }
-   
-dm3StatusSysConvVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the system level converter voltage in thousandths of volts (mV)."
-   ::= { dm3StatusConverter 6 }
-   
-dm3StatusSysConvCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the system level converter current in thousandths of Amps (mA)."
-   ::= { dm3StatusConverter 7 }
-
--- the dm3StatusOutputRelays group
-
-dm3StatusOutRlyTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant output relays viewable
-       by this IP address."
-   ::= { dm3StatusOutputRelays 1 }
-
-dm3StatusOutRlyTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusOutRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for viewing status of the output relays. The number of
-       entries is contained in the dm3StatusOutRlyTableSize OID."
-   ::= { dm3StatusOutputRelays 2 }     
-   
-dm3StatusOutRlyEntry OBJECT-TYPE
-   SYNTAX StatusOutRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The output relay to gather status from."
-   INDEX { dm3StatusOutRlyIndex }
-   ::= { dm3StatusOutRlyTable 1 }
-
-StatusOutRlyEntry ::=
-   SEQUENCE {
-      dm3StatusOutRlyIndex            INTEGER,
-      dm3StatusOutRlyName             DisplayString,
-      dm3StatusOutRlyStatus           INTEGER
-   }
-   
-dm3StatusOutRlyIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant output relay."
-   ::= { dm3StatusOutRlyEntry 1 }
-   
-dm3StatusOutRlyName OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the output relay. The maximum size is 
-       16 characters. The name is set by using the 
-       dm3ConfigOutRlyName OID.
-       This OID is provided for informational purposes only."       
-   ::= { dm3StatusOutRlyEntry 2 }
-   
-dm3StatusOutRlyStatus OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusOn          (1),
-      statusOff         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusOn (1) if the output relay is enabled/on.
-       statusOff (2) will be returned if the output relay is disabled/off." 
-   ::= { dm3StatusOutRlyEntry 3 }
-
-
--- the dm3StatusInputRelays group
-
-dm3StatusInRlyTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant input relays viewable
-       by this IP address."
-   ::= { dm3StatusInputRelays 1 }
-
-dm3StatusInRlyTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusInRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for viewing status of the input relays. The number of
-       entries is contained in the dm3StatusInRlyTableSize OID."
-   ::= { dm3StatusInputRelays 2 }      
-
-   
-dm3StatusInRlyEntry OBJECT-TYPE
-   SYNTAX StatusInRlyEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The input relays to gather status from."
-   INDEX { dm3StatusInRlyIndex }
-   ::= { dm3StatusInRlyTable 1 }
-   
-StatusInRlyEntry ::=
-   SEQUENCE {
-      dm3StatusInRlyIndex           INTEGER,
-      dm3StatusInRlyName            DisplayString,
-      dm3StatusInRlyStatus          INTEGER
-   }
-   
-dm3StatusInRlyIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant input relay."
-   ::= { dm3StatusInRlyEntry 1 }
-   
-dm3StatusInRlyName OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the input relay. The maximum size is 
-       16 characters. The name is set by using the 
-       dm3ConfigInRlyName OID.
-       This OID is provided for informational purposes only."       
-   ::= { dm3StatusInRlyEntry 2 }
-   
-dm3StatusInRlyStatus OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusOn          (1),
-      statusOff         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusOn (1) if the input relay is enabled/on.
-       statusOff (2) will be returned if the input relay is disabled/off." 
-   ::= { dm3StatusInRlyEntry 3 }
-
--- the dm3StatusBreakers group
-
-dm3StatusBreakersTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant circuit breakers viewable
-       by this IP address."
-   ::= { dm3StatusBreakers 1 }
-
-dm3StatusBreakersTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusBreakersEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for viewing status of the circuit breakers. The number of
-       entries is contained in the dm3StatusBreakersTableSize OID."
-   ::= { dm3StatusBreakers 2 }     
-
-dm3StatusBreakersEntry OBJECT-TYPE
-   SYNTAX StatusBreakersEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The circuit breaker to gather status from."
-   INDEX { dm3StatusBreakersIndex }
-   ::= { dm3StatusBreakersTable 1 }
-
-StatusBreakersEntry ::=
-   SEQUENCE {
-      dm3StatusBreakersIndex               INTEGER,
-      dm3StatusBreakersName                DisplayString,
-      dm3StatusBreakersStatus              INTEGER
-   }
-   
-dm3StatusBreakersIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant circuit breaker."
-   ::= { dm3StatusBreakersEntry 1 }
-   
-dm3StatusBreakersName OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the circuit breaker. The maximum size is 
-       16 characters. The name is set by using the 
-       dm3ConfigBreakersName OID.
-       This OID is provided for informational purposes only."       
-   ::= { dm3StatusBreakersEntry 2 }
-   
-dm3StatusBreakersStatus OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusClosed          (1),
-      statusOpen            (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusClosed (1) if the circuit breaker is closed.
-       statusOpen (2) will be returned if the circuit breaker is open." 
-   ::= { dm3StatusBreakersEntry 3 }
-   
--- the dm3StatusFuses group
-
-dm3StatusFusesTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant fuses controllable
-       by this IP address."
-   ::= { dm3StatusFuses 1 }
-
-dm3StatusFusesTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusFusesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for viewing status of the fuses. The number of
-       entries is contained in the dm3StatusFusesTableSize OID."
-   ::= { dm3StatusFuses 2 }    
-   
-dm3StatusFusesEntry OBJECT-TYPE
-   SYNTAX StatusFusesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The fuse to gather status from."
-   INDEX { dm3StatusFusesIndex }
-   ::= { dm3StatusFusesTable 1 }
-   
-StatusFusesEntry ::=
-   SEQUENCE {
-      dm3StatusFusesIndex               INTEGER,
-      dm3StatusFusesName                DisplayString,
-      dm3StatusFusesStatus              INTEGER
-   }
-
-dm3StatusFusesIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant fuse."
-   ::= { dm3StatusFusesEntry 1 }
-   
-dm3StatusFusesName OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the fuse. The maximum size is 
-       16 characters. The name is set by using the 
-       dm3ConfigFuseName OID.
-       This OID is provided for informational purposes only."       
-   ::= { dm3StatusFusesEntry 2 }
-
-dm3StatusFusesStatus OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusClosed          (1),
-      statusOpen            (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusClosed (1) if the fuse is closed.
-       statusOpen (2) will be returned if the fuse is open." 
-   ::= { dm3StatusFusesEntry 3 }
-
--- the atsIdent group
-
-atsIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware version of the Automatic Transfer Switch. 
-       This value is set at the factory."
-   ::= { atsIdent 1 }
-
-atsIdentFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A string identifying the Automatic Transfer Switch 
-       firmware version." 
-   ::= {  atsIdent 2 }
-
-atsIdentFirmwareDate OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date of release for this Automatic Transfer Switch 
-       firmware version. " 
-   ::= {  atsIdent 3 }
-
-atsIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the Automatic Transfer Switch was manufactured in mm/dd/yyyy format.
-       This value is set at the factory. " 
-   ::= { atsIdent 4 }
-   
-atsIdentModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A string identifying the model number of the Automatic Transfer Switch. 
-       This value is set at the factory."
-   ::= { atsIdent 5 }
-
-atsIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A string identifying the serial number of 
-       the Automatic Transfer Switch. This value is set at the factory."
-   ::= { atsIdent 6 }
-
-atsIdentNominalLineVoltage OBJECT-TYPE
-       SYNTAX     INTEGER 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-         "RMS Utility Voltage measured in V."
-       ::= { atsIdent 7 }
-
-atsIdentNominalLineFrequency OBJECT-TYPE
-       SYNTAX     INTEGER 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "Utility Power Frequency measured in Hz."
-       ::= { atsIdent 8 }
-
---  the atsCalibration group  
- 
--- Input Voltage Calibration Factor table
-
-   atsCalibrationNumInputs OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of inputs to this device."
-       ::= { atsCalibrationInput 1 }
-
-   atsCalibrationNumInputPhases OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of phases per input for this device."
-       ::= { atsCalibrationInput 2 }
-
-   atsCalibrationInputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSCalibrationInputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of phases per input line to this device."
-       ::= { atsCalibrationInput 3 }
-
-   atsCalibrationInputPhaseEntry OBJECT-TYPE
-       SYNTAX     ATSCalibrationInputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing calibration information applicable to a
-               particular input phase."
-       INDEX { atsCalibrationInputTableIndex, atsCalibrationInputPhaseTableIndex }
-       ::= { atsCalibrationInputTable 1 }
-
-   ATSCalibrationInputPhaseEntry ::= SEQUENCE {
-       atsCalibrationInputTableIndex         INTEGER,
-       atsCalibrationInputPhaseTableIndex    INTEGER,
-       atsLineVoltageCalibrationFactor       INTEGER
-   }
-
-   atsCalibrationInputTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input identifier."
-       ::= { atsCalibrationInputPhaseEntry 1 }
-
-   atsCalibrationInputPhaseTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input phase identifier."
-       ::= { atsCalibrationInputPhaseEntry 2 }
-
-   atsLineVoltageCalibrationFactor  OBJECT-TYPE
-       SYNTAX INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The Line Voltage Calibration factor.
-                This value is set at the factory."
-       ::= { atsCalibrationInputPhaseEntry 3 }
-
--- Power Supply Voltage Calibration table
-
-   atsCalibrationPowerSupplyVoltages OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of power supply voltages supported by this device.
-                This variable indicates the number of rows in the
-                atsCalibrationPowerSupplyTable. There is one entry per
-                supported voltage: 24V, 12V and 5V"
-       ::= { atsCalibrationPowerSupply 1 }
-
-   atsCalibrationPowerSupplyVoltageTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSCalibrationPowerSupplyVoltageEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of Power Supply table entries."
-       ::= { atsCalibrationPowerSupply 2 }
-
-   atsCalibrationPowerSupplyVoltageEntry OBJECT-TYPE
-       SYNTAX     ATSCalibrationPowerSupplyVoltageEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular Power Supply Voltage."
-       INDEX { atsCalibrationPowerSupplyVoltageTableIndex }
-       ::= { atsCalibrationPowerSupplyVoltageTable 1 }
-
-   ATSCalibrationPowerSupplyVoltageEntry ::= SEQUENCE {
-       atsCalibrationPowerSupplyVoltageTableIndex     INTEGER,
-       atsCalibrationPowerSupplyVoltage               INTEGER,
-       atsPowerSupplyVoltageCalibrationFactor         INTEGER
-   }
-
-   atsCalibrationPowerSupplyVoltageTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-           "The power supply voltage identifier.
-            Three power supply voltages are supported by the ATS:
-             24V , 12V and 5V .
-            The value of this index indicates the power supply voltage:
-             1 = 24V
-             2 = 12V
-             3 = 5V"
-       ::= { atsCalibrationPowerSupplyVoltageEntry 1 }
-
-  atsCalibrationPowerSupplyVoltage OBJECT-TYPE
-    SYNTAX INTEGER  {
-      powerSupply24V(1),
-      powerSupply12V(2),
-      powerSupply(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This value describes the power supply voltage."
-   ::= { atsCalibrationPowerSupplyVoltageEntry 2 } 
-
-   atsPowerSupplyVoltageCalibrationFactor  OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The Line Voltage Calibration factor.
-                This value is set at the factory."
-       ::= { atsCalibrationPowerSupplyVoltageEntry 3 }
-
--- Output Current Calibration table
-
-   atsCalibrationNumOutputs OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of output lines from this device.
-               This variable indicates the number of rows in the
-               atsCalibrationOutputTable."
-       ::= { atsCalibrationOutput 1 }
-
-   atsCalibrationNumOutputPhases OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of output phases utilized in this
-               device."
-       ::= { atsCalibrationOutput 2 }
-
-   atsCalibrationOutputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSCalibrationOutputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of output table entries."
-       ::= { atsCalibrationOutput 3 }
-
-   atsCalibrationOutputEntry OBJECT-TYPE
-       SYNTAX     ATSCalibrationOutputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-                particular output."
-       INDEX { atsCalibrationOutputTableIndex, atsCalibrationOutputPhasesTableIndex }
-       ::= { atsCalibrationOutputTable 1 }
-
-   ATSCalibrationOutputEntry ::= SEQUENCE {
-       atsCalibrationOutputTableIndex       INTEGER,
-       atsCalibrationOutputPhasesTableIndex INTEGER,
-       atsOutputCurrentCalibrationFactor    INTEGER
-   }
-
-   atsCalibrationOutputTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output identifier."
-       ::= { atsCalibrationOutputEntry 1 }
-
-   atsCalibrationOutputPhasesTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3),
-          neutral(4)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "Description of each calibration factor for each 
-                output phase utilized in this device and one for neutral. "
-       ::= { atsCalibrationOutputEntry 2 }
-
-   atsOutputCurrentCalibrationFactor OBJECT-TYPE
-       SYNTAX     INTEGER 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output current calibration factor measured in Amps."
-       ::= { atsCalibrationOutputEntry 3 }
-
-
---  the atsControl group  
-           
-atsControlResetATS OBJECT-TYPE
-    SYNTAX INTEGER  {
-          none(1),
-          reset(2) 
-   } 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable will cause the Automatic Transfer Switch to 
-       perform a power-on reset."
-   ::= { atsControl 1 }
-
-atsControlClearAllAlarms OBJECT-TYPE
-    SYNTAX INTEGER  {
-          none(1),
-          clear(2) 
-   } 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable will clear all alarms in the Automatic Transfer Switch."
-   ::= { atsControl 2 }  
-
---  the atsConfig group
-  
-atsConfigProductName OBJECT-TYPE
-       SYNTAX     DisplayString
-       ACCESS     read-write
-       STATUS     mandatory
-       DESCRIPTION
-               "A configurable character string."
-       ::= { atsConfig 1 }
-           
-atsConfigPreferredSource OBJECT-TYPE
-    SYNTAX INTEGER  {
-      sourceA(1),
-      sourceB(2),
-      none(3)
-   } 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the preferred source of power when both sources are OK."
-   ::= { atsConfig 2 } 
-
-atsConfigFrontPanelLockout OBJECT-TYPE
-   SYNTAX INTEGER  {
-      disableFrontPanel(1),
-      enableFrontPanel(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Setting this variable to disableFrontPanel(1) will disallow source 
-       preference configuration of the Automatic Transfer Switch via the
-       Front Panel. Once this value is set, it can only be re-enabled through
-       the serial interface of the ATS.
-       When this variable is set to enableFrontPanel(2), source preference 
-       configuration of the Automatic Transfer Switch via the Front Panel
-       is allowed."
-   ::= { atsConfig 3 }
-
-atsConfigVoltageSensitivity OBJECT-TYPE
-   SYNTAX INTEGER {
-      high(1),
-      low(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This variable defines the sensitivity to changes in voltage: 
-       high(1) for best protection, low(2) for frequent small line 
-       voltage changes."
-   ::= { atsConfig 4 }
-
-atsConfigTransferVoltageRange OBJECT-TYPE
-   SYNTAX INTEGER {
-      wide(1),
-      medium(2),
-      narrow(3)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This variable defines the range of acceptable voltage from a power source.
-       If the voltage measured from the selected input source is not within this
-       range, the Automatic Transfer Switch will switch over (transfer) to the 
-       alternate power source."
-
-   ::= { atsConfig 5 }
-
-atsConfigCurrentLimit OBJECT-TYPE
-   SYNTAX INTEGER (0..20)
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The threshold (in Amps) at which an Over Current Alarm will be generated."
-      
-   ::= { atsConfig 6 }
-
-
-atsConfigResetValues OBJECT-TYPE
-   SYNTAX INTEGER {
-      none(1),
-      reset(2) 
-   }
-   ACCESS     read-write
-   STATUS     mandatory
-   DESCRIPTION
-      "Resets the ATS configuration to its default values."
-
-   ::= { atsConfig 7 }
-
--- the atsStatus  group
-
-   atsStatusCommStatus OBJECT-TYPE
-    SYNTAX INTEGER  {
-      atsNeverDiscovered(1),
-      atsCommEstablished(2),
-      atsCommLost(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the current communication status
-       of the Automatic Transfer Switch. "
-   ::= { atsStatusDeviceStatus 1 }
-
-   atsStatusSelectedSource OBJECT-TYPE
-    SYNTAX INTEGER  {
-      sourceA(1),
-      sourceB(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the current source of power. "
-   ::= { atsStatusDeviceStatus 2 }
-
-   atsStatusRedundancyState OBJECT-TYPE
-    SYNTAX INTEGER  {
-       atsRedundancyLost(1),
-       atsFullyRedundant(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the current redundancy state of the ATS.
-       atsRedundancyLost(1) indicates that the ATS is unable to
-       switch over to the alternate power source if the current source fails.
-       atsFullyRedundant(2) indicates that the ATS will switch over to 
-       the alternate power source if the current source fails."
-   ::= { atsStatusDeviceStatus 3 }
-
-  atsStatusOverCurrentState OBJECT-TYPE
-    SYNTAX INTEGER  {
-        atsOverCurrent(1),
-        atsCurrentOK(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the output current state of the ATS.
-      atsOverCurrent(1) indicates that the ATS has exceeded the output 
-      current threshold and will not allow a switch over to the alternate power
-      source if the current source fails.
-      atsCurrentOK(2) indicates that the output current is below the 
-      output current threshold."
-   ::= { atsStatusDeviceStatus 4 }
-
-  atsStatus5VPowerSupply OBJECT-TYPE
-    SYNTAX INTEGER {
-        atsPowerSupplyFailure(1), 
-        atsPowerSupplyOK(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the current state of the ATS 5-volt power supply.
-       atsPowerSupplyFailure(1) indicates the 5-volt power supply has failed
-       and that the ATS serial port Configuration Menu is not accessible .
-       atsPowerSupplyOK(2) indicates that the ATS 5-volt power supply
-       is operating within tolerance."
-   ::= { atsStatusDeviceStatus 5 }
-
-  atsStatus24VPowerSupply OBJECT-TYPE
-    SYNTAX INTEGER  {
-        atsPowerSupplyFailure(1),
-        atsPowerSupplyOK(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This variable returns the current state of the ATS 24-volt power supply.
-       atsPowerSupplyFailure(1) indicates the 24-volt power supply has failed
-       and the ATS is unable to switch over to the alternate power source if 
-       the current source fails.
-       atsPowerSupplyOK(2) indicates that the ATS 24-volt power supply
-       is operating within tolerance."
-   ::= { atsStatusDeviceStatus 6 }
-
-   atsStatusResetMaxMinValues OBJECT-TYPE
-       SYNTAX INTEGER {
-          none(1),
-          reset(2) 
-       }
-       ACCESS     read-write
-       STATUS     mandatory
-       DESCRIPTION
-               "Resets the maximum and minimum ATS values:
-                atsInputMaxVoltage,       atsInputMinVoltage,
-                atsInputMaxCurrent,       atsInputMinCurrent,
-                atsInputMaxPower,         atsInputMinPower,
-                atsOutputMaxCurrent,      atsOutputMinCurrent,
-                atsOutputMaxLoad,         atsOutputMinLoad,
-                atsOutputMaxPercentLoad,  atsOutputMinPercentLoad,
-                atsOutputMaxPower,        atsOutputMinPower,
-                atsOutputMaxPercentPower, atsOutputMinPercentPower.
-                These variables represent the maximum and minimum ATS values
-                since the last time they were read or reset by this OID.
-                Values unsupported by this ATS will return (-1)."
-       ::= { atsStatusResetValues 1 }
-
---
--- Input Group
---
-
--- Number of Inputs
-
-   atsNumInputs OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of input feeds to this device.
-               This variable indicates the number of rows in the
-               input table."
-       ::= { atsStatusInput 1 }
-
--- Input Table
-
-   atsInputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSPhaseInputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of input table entries.  The number of entries
-               is given by the value of atsNumInputs."
-       ::= { atsStatusInput 2 }
-
-   atsInputEntry OBJECT-TYPE
-       SYNTAX     ATSPhaseInputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular input."
-       INDEX { atsInputTableIndex }
-       ::= { atsInputTable 1 }
-
-   ATSPhaseInputEntry ::= SEQUENCE {
-       atsInputTableIndex         INTEGER,
-       atsNumInputPhases          INTEGER,
-       atsInputVoltageOrientation INTEGER,
-       atsInputFrequency          INTEGER,
-       atsInputType               INTEGER,
-       atsInputName               DisplayString
-   }
-
-   atsInputTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input identifier."
-       ::= { atsInputEntry 1 }
-
-   atsNumInputPhases OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of input phases utilized in this
-               device.  The sum of all the atsNumInputPhases
-               variable indicates the number of rows in the 
-               input phase table."
-       ::= { atsInputEntry 2 }
-
-   atsInputVoltageOrientation OBJECT-TYPE
-       SYNTAX INTEGER {
-          unknown(1),
-          singlePhase(2),
-          splitPhase(3),
-          threePhasePhaseToNeutral(4),
-          threePhasePhaseToPhase(5)
-       }
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input voltage orientation: 
-               1: unknown for this Source
-               2: singlePhase - phase 1 voltage is between Phase 1
-               and Neutral.
-               3: splitPhase - phase 1 voltage is between Phase 1 and 
-               Neutral; phase 2 voltage is between Phase 2 and Neutral; 
-               phase 3 voltage is between Phase 1 and Phase2.
-               4: threePhasePhaseToNeutral - phase 1 voltage is between
-               Phase 1 and Neutral; phase 2 voltage is between Phase 2 
-               and Neutral; phase 3 voltage is between Phase3 and
-               Neutral.
-               5: threePhasePhaseToPhase - phase 1 voltage is between 
-               Phase 1 and Phase 2; phase 2 voltage is between Phase 2
-               and Phase 3; phase 3 voltage is between Phase 3 and
-               Phase 1."
-       ::= { atsInputEntry 3 }
-
-   atsInputFrequency OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input frequency in Hertz, or -1 if it's unsupported
-               by this Source."
-       ::= { atsInputEntry 4 }
-
-   atsInputType OBJECT-TYPE
-       SYNTAX     INTEGER {
-          unknown(1),
-          main(2),
-          bypass(3)
-       }
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input type."
-       ::= { atsInputEntry 5 }
-
-   atsInputName OBJECT-TYPE
-       SYNTAX     DisplayString
-       ACCESS     read-write
-       STATUS     mandatory
-       DESCRIPTION
-               "A name given to a particular input."
-       ::= { atsInputEntry 6 }
-
--- Input Phase Table
-
-   atsInputPhaseTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSPhaseInputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of input table entries.  The number of entries
-               is given by the sum of the atsNumInputPhases."
-       ::= { atsStatusInput 3 }
-
-   atsInputPhaseEntry OBJECT-TYPE
-       SYNTAX     ATSPhaseInputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular input phase."
-       INDEX { atsInputPhaseTableIndex, atsInputPhaseIndex }
-       ::= { atsInputPhaseTable 1 }
-
-   ATSPhaseInputPhaseEntry ::= SEQUENCE {
-       atsInputPhaseTableIndex    INTEGER,
-       atsInputPhaseIndex         INTEGER,
-       atsInputVoltage            INTEGER,
-       atsInputMaxVoltage         INTEGER,
-       atsInputMinVoltage         INTEGER,
-       atsInputCurrent            INTEGER,
-       atsInputMaxCurrent         INTEGER,
-       atsInputMinCurrent         INTEGER,
-       atsInputPower              INTEGER,
-       atsInputMaxPower           INTEGER,
-       atsInputMinPower           INTEGER
-   }
-
-   atsInputPhaseTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input identifier."
-       ::= { atsInputPhaseEntry 1 }
-
-   atsInputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input phase identifier."
-       ::= { atsInputPhaseEntry 2 }
-
-   atsInputVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input voltage in VAC, or -1 if it's unsupported
-               by this Source."
-       ::= { atsInputPhaseEntry 3 }
-
-   atsInputMaxVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum input voltage in VAC measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsInputPhaseEntry 4 }
-
-   atsInputMinVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum input voltage in VAC measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsInputPhaseEntry 5 }
-
-   atsInputCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input current in amperes, or -1 if it's
-               unsupported by this Source."
-       ::= { atsInputPhaseEntry 6 }
-
-   atsInputMaxCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum input current in amperes measured
-                 since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsInputPhaseEntry 7 }
-
-   atsInputMinCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum input current in amperes measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsInputPhaseEntry 8 }
-
-   atsInputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The input power in Watts, or -1 if it's unsupported
-               by this Source."
-       ::= { atsInputPhaseEntry 9 }
-
-   atsInputMaxPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum input power in Watts measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsInputPhaseEntry 10 }
-
-   atsInputMinPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum input power in Watts measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsInputPhaseEntry 11 }
-
-   --
-   -- The Output group.
-   --
-
-   -- Number of Outputs
-
-   atsNumOutputs OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of output feeds to this device.
-               This variable indicates the number of rows in the
-               output table."
-       ::= { atsStatusOutput 1 }
-
-   -- Output Table
-
-   atsOutputTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSPhaseOutputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of output table entries.  The number of entries
-               is given by the value of atsOutputNumPhases."
-       ::= { atsStatusOutput 2 }
-
-   atsOutputEntry OBJECT-TYPE
-       SYNTAX     ATSPhaseOutputEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular output."
-       INDEX { atsOutputTableIndex }
-       ::= { atsOutputTable 1 }
-
-   ATSPhaseOutputEntry ::= SEQUENCE {
-       atsOutputTableIndex         INTEGER,
-       atsNumOutputPhases          INTEGER,
-       atsOutputVoltageOrientation INTEGER,
-       atsOutputFrequency          INTEGER
-   }
-
-   atsOutputTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output identifier."
-       ::= { atsOutputEntry 1 }
-
-   atsNumOutputPhases OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The number of output phases utilized in this
-               device.  The sum of all the atsNumOutputPhases
-               variable indicates the number of rows in the 
-               output phase table."
-       ::= { atsOutputEntry 2 }
-
-   atsOutputVoltageOrientation OBJECT-TYPE
-       SYNTAX INTEGER {
-          unknown(1),
-          singlePhase(2),
-          splitPhase(3),
-          threePhasePhaseToNeutral(4),
-          threePhasePhaseToPhase(5)
-       }
-       ACCESS read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output voltage orientation: 
-               1: unknown for this ATS
-               2: singlePhase - phase 1 voltage is between Phase 1
-               and Neutral.
-               3: splitPhase - phase 1 voltage is between Phase 1 and 
-               Neutral; phase 2 voltage is between Phase 2 and Neutral; 
-               phase 3 voltage is between Phase 1 and Phase2.
-               4: threePhasePhaseToNeutral - phase 1 voltage is between
-               Phase 1 and Neutral; phase 2 voltage is between Phase 2 
-               and Neutral; phase 3 voltage is between Phase3 and
-               Neutral.
-               5: threePhasePhaseToPhase - phase 1 voltage is between 
-               Phase 1 and Phase 2; phase 2 voltage is between Phase 2
-               and Phase 3; phase 3 voltage is between Phase 3 and
-               Phase 1."
-       ::= { atsOutputEntry 3 }
-
-   atsOutputFrequency OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output frequency in Hertz, or -1 if it's
-               unsupported by this ATS."
-       ::= { atsOutputEntry 4 }
-
-   -- Output Phase Table
-
-   atsOutputPhaseTable OBJECT-TYPE
-       SYNTAX     SEQUENCE OF ATSPhaseOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "A list of output table entries.  The number of
-               entries is given by the sum of the atsNumOutputPhases."
-       ::= { atsStatusOutput 3 }
-
-   atsOutputPhaseEntry OBJECT-TYPE
-       SYNTAX     ATSPhaseOutputPhaseEntry
-       ACCESS     not-accessible
-       STATUS     mandatory
-       DESCRIPTION
-               "An entry containing information applicable to a
-               particular output phase."
-       INDEX { atsOutputPhaseTableIndex, atsOutputPhaseIndex }
-       ::= { atsOutputPhaseTable 1 }
-
-   ATSPhaseOutputPhaseEntry ::= SEQUENCE {
-       atsOutputPhaseTableIndex INTEGER,
-       atsOutputPhaseIndex      INTEGER,
-       atsOutputVoltage         INTEGER,
-       atsOutputCurrent         INTEGER,
-       atsOutputMaxCurrent      INTEGER,
-       atsOutputMinCurrent      INTEGER,
-       atsOutputLoad            INTEGER,
-       atsOutputMaxLoad         INTEGER,
-       atsOutputMinLoad         INTEGER,
-       atsOutputPercentLoad     INTEGER,
-       atsOutputMaxPercentLoad  INTEGER,
-       atsOutputMinPercentLoad  INTEGER,       
-       atsOutputPower           INTEGER,
-       atsOutputMaxPower        INTEGER,
-       atsOutputMinPower        INTEGER,
-       atsOutputPercentPower    INTEGER,
-       atsOutputMaxPercentPower INTEGER,
-       atsOutputMinPercentPower INTEGER
-   }
-
-   atsOutputPhaseTableIndex OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output identifier."
-       ::= { atsOutputPhaseEntry 1 }
-
-   atsOutputPhaseIndex OBJECT-TYPE
-       SYNTAX     INTEGER{
-          phase1(1),
-          phase2(2),
-          phase3(3),
-          neutral(4)
-         } 
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-              "Description of each output phase utilized in 
-               this device and one for neutral. "
-       ::= { atsOutputPhaseEntry 2 }
-
-   atsOutputVoltage OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output voltage in VAC, or -1 if it's unsupported
-               by this ATS."
-       ::= { atsOutputPhaseEntry 3 }
-
-   atsOutputCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output current in 0.1 amperes drawn 
-               by the load on the ATS, or -1 if it's unsupported
-               by this ATS."
-       ::= { atsOutputPhaseEntry 4 }
-
-   atsOutputMaxCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum output current in 0.1 amperes measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 5 }
-
-   atsOutputMinCurrent OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum output current in 0.1 amperes measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 6 }
-
-   atsOutputLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output load in VA, or -1 if it's unsupported
-               by this ATS."
-       ::= { atsOutputPhaseEntry 7 }
-
-   atsOutputMaxLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum output load in VA measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1)  if unsupported."
-       ::= { atsOutputPhaseEntry 8 }
-
-   atsOutputMinLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum output load in VA measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 9 }
-
-   atsOutputPercentLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The percentage of the ATS load capacity in VA at 
-               redundancy @ (n + x) presently being used on this 
-               output phase, or -1 if it's unsupported by this ATS."
-       ::= { atsOutputPhaseEntry 10 }
-
-   atsOutputMaxPercentLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum percentage of the ATS load capacity in 
-               VA measured at redundancy @ (n + x) presently 
-               being used on this output phase since the last time
-               this variable was read or reset (atsStatusResetMaxMinValues).
-               Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 11 }
-
-   atsOutputMinPercentLoad OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum percentage of the ATS load capacity in 
-               VA measured at redundancy @ (n + x) presently 
-               being used on this output phase since the last time
-               this variable was read or reset (atsStatusResetMaxMinValues).
-               Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 12 }
-
-   atsOutputPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The output power in Watts, or -1 if it's
-               unsupported by this ATS."
-       ::= { atsOutputPhaseEntry 13 }
-
-   atsOutputMaxPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum output power in Watts measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 14 }
-
-   atsOutputMinPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum output power in Watts measured
-                since the last time this variable was read 
-                or reset (atsStatusResetMaxMinValues).
-                Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 15 }
-
-   atsOutputPercentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The percentage of the ATSpower capacity in Watts at 
-               redundancy @ (n + x) presently being used on this 
-               output phase, or -1 if it's unsupported by this ATS."
-       ::= { atsOutputPhaseEntry 16 }
-
-   atsOutputMaxPercentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The maximum percentage of the ATSpower capacity
-               in Watts measured at redundancy @ (n + x) presently
-               being used on this output phase since the last time
-               this variable was read or reset (atsStatusResetMaxMinValues).
-               Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 17 }
-
-   atsOutputMinPercentPower OBJECT-TYPE
-       SYNTAX     INTEGER
-       ACCESS     read-only
-       STATUS     mandatory
-       DESCRIPTION
-               "The minimum percentage of the ATSpower capacity
-               in Watts measured at redundancy @ (n + x) presently
-               being used on this output phase since the last time
-               this variable was read or reset (atsStatusResetMaxMinValues).
-               Returns (-1) if unsupported."
-       ::= { atsOutputPhaseEntry 18 }
-
--- the dcmim2IdentSystem group
- 
-dcmim2IdentSysFWVersion OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Integer representation of the power plant Master Controller firmware revision."
-   ::= { dcmim2IdentSystem 1 }
-
-
--- the dcmim2ControlSystem group
-
-dcmim2ControlRunFunctBatteryTest OBJECT-TYPE
-   SYNTAX INTEGER {
-      battTestOff             (1),
-      battTestOn              (2)
-}     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this OID will return the battery functional test state. If 
-       the test is off, the battTestOff (1) value will be returned.
-       If the test is on, the battTestOn (2) value will be
-       returned.  
-       
-       Setting this OID to battTestOff (1) will turn the battery functional test off.
-       Setting this OID to battTestOn (2) will turn the battery functional test on."
-
-   ::= { dcmim2ControlSystem 1 }
-
-dcmim2ControlRunCapacityBatteryTest OBJECT-TYPE
-   SYNTAX INTEGER {
-      battTestOff             (1),
-      battTestOn              (2)
-}     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this OID will return the battery capacity test state. If 
-       the test is off, the battTestOff (1) value will be returned.
-       If the test is on, the battTestOn (2) value will be
-       returned.  
-       
-       Setting this OID to battTestOff (1) will turn the battery capacity test off.
-       Setting this OID to battTestOn (2) will turn the battery capacity test on."
-
-   ::= { dcmim2ControlSystem 2 }
-
-
--- the dcmim2ConfigSystem group
-
-dcmim2ConfigSysHighTempTrip OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Trip level (threshold) at which System High Temp alarm condition is created. 
-       Range 28 to 100 (degC).
-
-       Values are represented in thousandths of a degree.
-       Units are displayed in the scale shown in
-       the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-       
-      
-   ::= { dcmim2ConfigSystem 1 }
-
-dcmim2ConfigSysHighTempReset OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Level at which System High Temp alarm condition is reset (cleared). 
-       Range 25 to (upper temp - 3) (degC).
-       
-       Values are represented in thousandths of a degree.
-       Units are displayed in the scale shown in
-       the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-       
-   ::= { dcmim2ConfigSystem 2 }
-      
-dcmim2ConfigSysLowTempTrip OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Trip level (threshold) at which System Low Temp alarm condition is created. 
-       Range -100 to 10 (degC).
-       Values are represented in thousandths of a degree.
-       Units are displayed in the scale shown in
-       the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-      
-   ::= { dcmim2ConfigSystem 3 }
-
-dcmim2ConfigSysLowTempReset OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Level at which System Low Temp alarm condition is reset (cleared). 
-       Range (lower temp + 3) to 13 (degC).
-       Values are represented in thousandths of a degree.
-       Units are displayed in the scale shown in
-       the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-      
-   ::= { dcmim2ConfigSystem 4 }
-
--- the dcmim2ConfigBattery group
-
-dcmim2ConfigBattFloatVolt OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Float Voltage defined at 25 degrees Celsius.
-      
-      Values are represented in thousandths of Volts (mV)."
-      
-   ::= { dcmim2ConfigBattery 1 }
-
-dcmim2ConfigBattMaxRecharge OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Maximum Recharge Rate.  This is the maximum current used
-       during battery charging.  
-      
-      Values are represented in thousandths of Amps (mA)."
-      
-   ::= { dcmim2ConfigBattery 2 }
-
-dcmim2ConfigBattMfgCapacity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Battery capacity (Amp-Hour Size) as specified by the battery manufacturer.
-  
-      Values are represented in thousandths of Amp hours (mAHr)."
-      
-   ::= { dcmim2ConfigBattery 3 }
-   
-dcmim2ConfigBattType OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Type of battery in the powerplant
-      
-      Valid values range from 0 to 254."
-      
-   ::= { dcmim2ConfigBattery 4 }
-   
-dcmim2ConfigBattFunctTestDuration OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Duration of the battery functional test.
-      
-      Values are represented in thousandths of seconds (mSecs)."
-      
-   ::= { dcmim2ConfigBattery 5 }
-   
-dcmim2ConfigBattFunctTestThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold the battery voltage of the system must remain above
-       in order to pass the battery functional test.
-      
-      Values are represented in thousandths of Volts (mV)."
-      
-   ::= { dcmim2ConfigBattery 6 }
-   
-dcmim2ConfigBattCapacityTestPercent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Threshold for good battery capacity test results.
-      
-      Values range from 0 to 100 percent."
-      
-   ::= { dcmim2ConfigBattery 7 }
-   
-dcmim2ConfigBattCapacityTestEndThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Safeguard voltage at which battery capacity test will end 
-       if there is a battery problem.
-      
-      Values are represented in thousandths of Volts (mV)."
-      
-   ::= { dcmim2ConfigBattery 8 }
-   
-dcmim2ConfigBattCapacityTestCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Constant current value used during battery capacity testing.
-      
-      Values are represented in thousandths of Amps (mA)."
-      
-   ::= { dcmim2ConfigBattery 9 }
-
-
--- the dcmim2ConfigLVD group
-
-dcmim2ConfigLVDTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant LVDs controllable
-       by this IP address."
-   ::= { dcmim2ConfigLVD 1 }
-
-dcmim2ConfigLVDTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF DC2ConfigLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the LVDs. The number of
-       entries is contained in the dcmim2ConfigLVDTableSize OID."
-   ::= { dcmim2ConfigLVD 2 }      
-
-dcmim2ConfigLVDEntry OBJECT-TYPE
-   SYNTAX DC2ConfigLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The LVD to configure."
-   INDEX { dcmim2ConfigLVDIndex }
-   ::= { dcmim2ConfigLVDTable 1 }
-   
-DC2ConfigLVDEntry ::=
-   SEQUENCE {
-      dcmim2ConfigLVDIndex               INTEGER,
-      dcmim2ConfigLVDTrip                INTEGER,
-      dcmim2ConfigLVDReset               INTEGER,
-      dcmim2ConfigLVDState               INTEGER
-   }
-   
-dcmim2ConfigLVDIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant LVD."
-   ::= { dcmim2ConfigLVDEntry 1 }
-
-dcmim2ConfigLVDTrip OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "LVD Trip threshold.  System bus voltage at which LVD will trip (open)
-       during a battery backup operation.
-      
-      Values are represented in thousandths of Volts (mV)."
-   ::= { dcmim2ConfigLVDEntry 2 }
-
-dcmim2ConfigLVDReset OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "LVD Reset threshold.  System bus voltage at which LVD will reset (close)
-       after AC power has been restored.
-      
-      Values are represented in thousandths of Volts (mV)."
-   ::= { dcmim2ConfigLVDEntry 3 }
-   
-dcmim2ConfigLVDState OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusClosed             (1),
-      statusOpened             (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusClosed (1) if the LVD is closed.
-       statusOpened (2) will be returned if the LVD is opened." 
-   ::= { dcmim2ConfigLVDEntry 4 }
-
-
--- the dcmim2StatusSystem group
-
-dcmim2StatusSysRectCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "System (Total Rectifier) current in thousandths of Amps (mA)."
-   ::= { dcmim2StatusSystem 1 }
-
-dcmim2StatusSysLoadCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Load current in thousandths of Amps (mA)."
-   ::= { dcmim2StatusSystem 2 }
-
-dcmim2StatusSysBusVoltage OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "System bus voltage in thousandths of Volts (mV)."
-   ::= { dcmim2StatusSystem 3 }
-
-dcmim2StatusSysAmbientTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "System temperature based on sensor on Master Controller PCB.
-      
-      Values are represented in thousandths of a degree.
-      Units are displayed in the scale shown in
-      the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-   ::= { dcmim2StatusSystem 4 }
-
-dcmim2StatusSysUpTime OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Length of time since the DC Powerplant controller has been powered up."
-   ::= { dcmim2StatusSystem 5 }
-
-dcmim2StatusSysTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       in the DC system, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { dcmim2StatusSystem 6 }
-
-
--- the dcmim2StatusRectifier group
-
-dcmim2StatusRectTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant rectifiers viewable
-       by this IP address."
-   ::= { dcmim2StatusRectifier 1 }
-
-dcmim2StatusRectTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF DC2StatusRectEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing settings of the rectifiers. The number of
-       entries is contained in the dcmim2StatusRectTableSize OID."
-   ::= { dcmim2StatusRectifier 2 }    
-
-dcmim2StatusRectEntry OBJECT-TYPE
-   SYNTAX DC2StatusRectEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The rectifier to gather status from."
-   INDEX { dcmim2StatusRectIndex }
-   ::= { dcmim2StatusRectTable 1 }
-   
-DC2StatusRectEntry ::=
-   SEQUENCE {
-      dcmim2StatusRectIndex            INTEGER,
-      dcmim2StatusRectDevType          INTEGER,
-      dcmim2StatusRectID               INTEGER,
-      dcmim2StatusRectPhyAddr          INTEGER,
-      dcmim2StatusRectFail             INTEGER,
-      dcmim2StatusRectCurrent          INTEGER
-   }
-
-dcmim2StatusRectIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant rectifier."
-   ::= { dcmim2StatusRectEntry 1 }
-
-dcmim2StatusRectDevType OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier device type."
-   ::= { dcmim2StatusRectEntry 2 }
-
-dcmim2StatusRectID OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier ID.  This enumerates the number of the rectifier within 
-       a group of rectifiers."
-   ::= { dcmim2StatusRectEntry 3 }
-
-dcmim2StatusRectPhyAddr OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the rectifier physical address (the address on the bus)."
-   ::= { dcmim2StatusRectEntry 4 }
-
-dcmim2StatusRectFail    OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusTrue          (1),
-      statusFalse         (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusTrue (1) if the rectifier has failed.
-       statusFalse (2) will be returned if the rectifier has not failed." 
-   ::= { dcmim2StatusRectEntry 5 }
-
-dcmim2StatusRectCurrent OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID shows the individual rectifier current in thousandths of Amps (mA)."
-   ::= { dcmim2StatusRectEntry 6 }
-
-
--- the dcmim2StatusBattery group
-
-dcmim2StatusBattFloatVolt OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Float Voltage represented in thousandths of Volts (mV)."   
-   ::= { dcmim2StatusBattery 1 }
-
-dcmim2StatusBattCurrent OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Current:  This OID shows the battery current in thousandths of Amps (mA)."
-   ::= { dcmim2StatusBattery 2 }
-
-dcmim2StatusBattTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery Temperature:  
-      
-       Values are represented in thousandths of a degree.
-       Units are displayed in the scale shown in
-       the 'dcmim2StatusSysTempUnits' OID (Celsius or Fahrenheit)."
-   ::= { dcmim2StatusBattery 3 }
-
-dcmim2StatusBattMfgCapacity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery capacity (Amp-Hour Size) as specified by the battery manufacturer.
-      Values are represented in thousandths of Amp hours (mAHr)."
-   ::= { dcmim2StatusBattery 4 }
-
-dcmim2StatusBattTestCapacity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Battery capacity (Amp-Hour Size) as determined by the battery capacity test.  
-      Values are represented in thousandths of Amp hours (mAHr)."     
-   ::= { dcmim2StatusBattery 5 }
-
-dcmim2StatusBattFunctTestResult OBJECT-TYPE
-   SYNTAX INTEGER{
-      functTestNotPerformed   (1),
-      functTestInProcess      (2),
-      functTestInterrupted    (3),
-      functTestPass           (4),
-      functTestFail           (5)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Results of the last battery functional test that was run."
-   ::= { dcmim2StatusBattery 6 }
-
-dcmim2StatusBattCapacityTestResult OBJECT-TYPE
-   SYNTAX INTEGER{
-      capacityTestNotPerformed   (1),
-      capacityTestInProcess      (2),
-      capacityTestInterrupted    (3),
-      capacityTestPass           (4),
-      capacityTestFail            (5)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Results of the last battery capacity test that was run."
-   ::= { dcmim2StatusBattery 7 }
-
-
--- the dcmim2StatusLVD group
-
-dcmim2StatusLVDTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant LVDs accessible
-       by this IP address."
-   ::= { dcmim2StatusLVD 1 }
-
-dcmim2StatusLVDTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF DC2StatusLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing the LVDs. The number of
-       entries is contained in the dcmim2StatusLVDTableSize OID."
-   ::= { dcmim2StatusLVD 2 }      
-
-dcmim2StatusLVDEntry OBJECT-TYPE
-   SYNTAX DC2StatusLVDEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The LVD to access."
-   INDEX { dcmim2StatusLVDIndex }
-   ::= { dcmim2StatusLVDTable 1 }
-   
-DC2StatusLVDEntry ::=
-   SEQUENCE {
-      dcmim2StatusLVDIndex               INTEGER,
-      dcmim2StatusLVDState               INTEGER
-   }
-   
-dcmim2StatusLVDIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the DC powerplant LVD."
-   ::= { dcmim2StatusLVDEntry 1 }
-  
-dcmim2StatusLVDState OBJECT-TYPE
-   SYNTAX INTEGER       {
-      statusClosed             (1),
-      statusOpened             (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Getting this OID will return statusClosed (1) if the LVD is closed.
-       statusOpened (2) will be returned if the LVD is opened." 
-   ::= { dcmim2StatusLVDEntry 2 }
-
-
--- the dcmim2StatusAlarms group
-
-dcmim2StatusAlarmsTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of DC powerplant alarms viewable
-       by this IP address."
-   ::= { dcmim2StatusAlarms 1 }
-
-dcmim2StatusAlarmsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF DC2StatusAlarmsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for accessing system alarms. The number of
-       entries is contained in the dcmim2StatusAlarmsTableSize OID."
-   ::= { dcmim2StatusAlarms 2 }       
-
-dcmim2StatusAlarmsEntry OBJECT-TYPE
-   SYNTAX DC2StatusAlarmsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The alarm to display."
-   INDEX { dcmim2StatusAlarmsIndex }
-   ::= { dcmim2StatusAlarmsTable 1 }
-   
-DC2StatusAlarmsEntry ::=
-   SEQUENCE {   
-      dcmim2StatusAlarmsIndex               INTEGER,
-      dcmim2StatusAlarmsText                DisplayString
-   }
-
-dcmim2StatusAlarmsIndex OBJECT-TYPE
-   SYNTAX  INTEGER
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The index of the system alarm."       
-   ::= { dcmim2StatusAlarmsEntry 1 }
-   
-dcmim2StatusAlarmsText OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The 16 character text describing the active alarm condition."
-   ::= { dcmim2StatusAlarmsEntry 2 }
-
--- External Environmental Monitor
-
-emIdentFirmwareRevision OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the Environmental Monitor."
-   ::= { emIdent 1 }
-
-emConfigProbesNumProbes OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of temperature and humidity probes available."
-   ::= { emConfig 1 }
-
-emConfigProbesTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EmConfigProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of probes supported by the Environmental Monitor
-       and their configurations."
-   ::= { emConfig 2 }
-
-emConfigProbesEntry OBJECT-TYPE
-   SYNTAX EmConfigProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Environmental Monitor probe configurations."
-   INDEX  { emConfigProbeNumber }
-   ::= { emConfigProbesTable 1 }
-
-EmConfigProbesEntry ::=
-   SEQUENCE {
-      emConfigProbeNumber
-         INTEGER,
-      emConfigProbeName
-         DisplayString,
-      emConfigProbeHighTempThreshold
-         INTEGER,
-      emConfigProbeLowTempThreshold
-         INTEGER,
-      emConfigProbeTempUnits
-         INTEGER,
-      emConfigProbeHighHumidThreshold
-         INTEGER,
-      emConfigProbeLowHumidThreshold
-         INTEGER,
-      emConfigProbeHighTempEnable
-         INTEGER,
-      emConfigProbeLowTempEnable
-         INTEGER,
-      emConfigProbeHighHumidEnable
-         INTEGER,
-      emConfigProbeLowHumidEnable
-         INTEGER
-   }
-
-emConfigProbeNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index into an Environmental Monitor probe entry."
-   ::= { emConfigProbesEntry 1 }
-
-emConfigProbeName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name of the probe set by the user,
-       possibly denoting its location or purpose."
-   ::= { emConfigProbesEntry 2 }
-
-emConfigProbeHighTempThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature alarm threshold for the probe.
-       Units are displayed in the scale selected in
-       the 'emConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
-   ::= { emConfigProbesEntry 3 }
-
-emConfigProbeLowTempThreshold OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low temperature alarm threshold for the probe.
-       Units are displayed in the scale selected in
-       the 'emConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
-   ::= { emConfigProbesEntry 4 }
-
-emConfigProbeTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       thresholds of the probe, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { emConfigProbesEntry 5 }
-
-emConfigProbeHighHumidThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high humidity alarm threshold for the probe in
-      percent relative humidity."
-   ::= { emConfigProbesEntry 6 }
-
-emConfigProbeLowHumidThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low humidity alarm threshold for the probe in
-      percent relative humidity."
-   ::= { emConfigProbesEntry 7 }
-
-emConfigProbeHighTempEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { emConfigProbesEntry 8 }
-
-emConfigProbeLowTempEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low temperature alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { emConfigProbesEntry 9 }
-
-emConfigProbeHighHumidEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high humidity alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { emConfigProbesEntry 10 }
-
-emConfigProbeLowHumidEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low humidity alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { emConfigProbesEntry 11 }
-
-emConfigContactsNumContacts OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts supported by the Environmental
-       Monitor."
-   ::= { emConfig 3 }
-
-emConfigContactsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EmConfigContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the Environmental Monitor
-       and their configurations."
-   ::= { emConfig 4 }
-
-emConfigContactsEntry OBJECT-TYPE
-   SYNTAX EmConfigContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Environmental Monitor contact configurations."
-   INDEX  { emConfigContactNumber }
-   ::= { emConfigContactsTable 1 }
-
-EmConfigContactsEntry ::=
-   SEQUENCE {
-       emConfigContactNumber
-           INTEGER,
-       emConfigContactName
-           DisplayString,
-       emConfigContactEnable
-           INTEGER
-   }
-
-emConfigContactNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of an Environmental Monitor contact."
-   ::= { emConfigContactsEntry 1 }
-
-emConfigContactName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for an Environmental Monitor
-      contact set by the user, possibly denoting its
-      location or purpose."
-   ::= { emConfigContactsEntry 2 }
-
-emConfigContactEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "An Environmental Monitor contact alarm enable/disable.
-       No alarm will be generated if the contact is disabled(1).
-       An alarm will be generated if the contact is enabled(2)
-       and the contact has been faulted."
-   ::= { emConfigContactsEntry 3 }
-
-emStatusCommStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      noComm(1),
-      comm(2),
-      commLost(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The communication status between the agent
-       and the Environmental Monitor.
-       
-       noComm(1),   Communication has never been established.
-       comm(2),     Communication has been established.
-       commLost(3), Communication was established, but was lost."
-   ::= { emStatus 1 }
-
-emStatusProbesNumProbes OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of available probes on the Environmental
-       Monitor."
-   ::= { emStatus 2 }
-
-emStatusProbesTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EmStatusProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of probes supported by the Environmental Monitor
-       and their status."
-   ::= { emStatus 3 }
-
-emStatusProbesEntry OBJECT-TYPE
-   SYNTAX EmStatusProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the probe."
-   INDEX  { emStatusProbeNumber }
-   ::= { emStatusProbesTable 1 }
-
-EmStatusProbesEntry ::=
-   SEQUENCE {
-      emStatusProbeNumber
-         INTEGER,
-      emStatusProbeName
-         DisplayString,
-      emStatusProbeStatus
-         INTEGER,
-      emStatusProbeCurrentTemp
-         INTEGER,
-      emStatusProbeTempUnits
-         INTEGER,
-      emStatusProbeCurrentHumid
-         INTEGER,
-      emStatusProbeHighTempViolation
-         INTEGER,
-      emStatusProbeLowTempViolation
-         INTEGER,
-      emStatusProbeHighHumidViolation
-         INTEGER,
-      emStatusProbeLowHumidViolation
-         INTEGER
-   }
-
-emStatusProbeNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the probe."
-   ::= { emStatusProbesEntry 1 }
-
-emStatusProbeName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the probe set by the user,
-       possibly denoting its location or purpose."
-   ::= { emStatusProbesEntry 2 }
-
-emStatusProbeStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      disconnected(1),
-      connected(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The connected status of the probe, either      
-      disconnected(1) or connected(2)."
-   ::= { emStatusProbesEntry 3 }
-
-emStatusProbeCurrentTemp OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current temperature reading from the probe displayed
-       in the units shown in the 'emStatusProbeTempUnits' OID
-       (Celsius or Fahrenheit)."
-   ::= { emStatusProbesEntry 4 }
-
-emStatusProbeTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       thresholds of the probe, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { emStatusProbesEntry 5 }
-
-emStatusProbeCurrentHumid OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current humidity reading from the probe in
-       percent relative humidity."
-   ::= { emStatusProbesEntry 6 }
-
-emStatusProbeHighTempViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      highTempViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature violation status of the probe
-       temperature reading. This OID will show a highTempViolation(2)
-       if the current temperature reading shown in the
-       'emStatusProbeCurrentTemp' OID is greater than or equal to
-       the high temperature threshold value, the 
-       'emConfigProbeHighTempThreshold' OID, and the value of the
-       'emConfigProbeHighTempEnable' OID is enabled. Otherwise it will show
-       noViolation(1). If the 'emConfigProbeHighTempEnable' OID is disabled,
-       this OID will show disabled(3)."
-   ::= { emStatusProbesEntry 7 }
-
-emStatusProbeLowTempViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      lowTempViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature violation status of the probe
-       temperature reading. This OID will show a lowTempViolation(2)
-       if the current temperature reading shown in the
-       'emStatusProbeCurrentTemp' OID is less than or equal to
-       the low temperature threshold value, the 
-       'emConfigProbeLowTempThreshold' OID, and the value of the
-       'emConfigProbeLowTempEnable' OID is enabled. Otherwise it will show
-       noViolation(1). If the 'emConfigProbeLowTempEnable' OID is disabled,
-       this OID will show disabled(3)."
-   ::= { emStatusProbesEntry 8 }
-
-emStatusProbeHighHumidViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      highHumidViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The high humidity violation status of the probe humidity
-       reading. This OID will show a highTempViolation(2)
-       if the current humidity reading shown in the
-       'emStatusProbeCurrentHumid' OID is greater than or equal to
-       the high humidity threshold value, the 
-       'emConfigProbeHighHumidThreshold' OID, and the value of the
-       'emConfigProbeHighHumidEnable' OID is enabled. Otherwise it will
-       show noViolation(1).  If the 'emConfigProbeHighHumidEnable' OID is
-       disabled, this OID will show disabled(3)"
-   ::= { emStatusProbesEntry 9 }
-
-emStatusProbeLowHumidViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      lowHumidViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The low humidity violation status of the probe humidity
-       reading. This OID will show a lowTempViolation(2)
-       if the current humidity reading shown in the
-       'emStatusProbeCurrentHumid' OID is less than or equal to
-       the low humidity threshold value, the 
-       'emConfigProbeLowHumidThreshold' OID, and the value of the
-       'emConfigProbeLowHumidEnable' OID is enabled. Otherwise it will
-       show noViolation(1). If the 'emConfigProbeLowHumidEnable' OID is
-       disabled, this OID will show disabled(3)."
-   ::= { emStatusProbesEntry 10 }
-
-emStatusContactsNumContacts OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts supported by the
-       Environmental Monitor."
-   ::= { emStatus 4 }
-
-emStatusContactsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EmStatusContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the Environmental Monitor
-       and their status."
-   ::= { emStatus 5 }
-
-emStatusContactsEntry OBJECT-TYPE
-   SYNTAX EmStatusContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the contact."
-   INDEX  { emStatusContactNumber }
-   ::= { emStatusContactsTable 1 }
-
-EmStatusContactsEntry ::=
-   SEQUENCE {
-      emStatusContactNumber
-         INTEGER,
-      emStatusContactName
-         DisplayString,
-      emStatusContactStatus
-         INTEGER
-   }
-
-emStatusContactNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the Environmental Monitor contact."
-   ::= { emStatusContactsEntry 1 }
-
-emStatusContactName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the Environmental Monitor contact
-       set by the user, possibly denoting its location or purpose."
-   ::= { emStatusContactsEntry 2 }
-
-emStatusContactStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      noFault(1),
-      fault(2),
-      disabled(3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Environmental Monitor contact. The status
-       will show noFault(1) if the contact is in the normal state
-       and the 'emConfigContactEnable' OID is enabled. The status will
-       show a fault(2) if the contact is faulted and the 
-       'emContactEnable' OID is enabled. If the 'emConfigContactEnable'
-       OID is disabled, the status will show disabled(3)."
-   ::= { emStatusContactsEntry 3 }
-
--- Integrated Environmental Monitor (IEM)
-
-iemIdentHardwareRevision OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the Integrated Environmental
-       Monitor."
-   ::= { iemIdent 1 }
-
-iemConfigProbesNumProbes OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of temperature and humidity probes available."
-   ::= { iemConfig 1 }
-
-iemConfigProbesTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IemConfigProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of probes supported by the Environmental Monitor
-       and their configurations."
-   ::= { iemConfig 2 }
-
-iemConfigProbesEntry OBJECT-TYPE
-   SYNTAX IemConfigProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Environmental Monitor probe configurations."
-   INDEX  { iemConfigProbeNumber }
-   ::= { iemConfigProbesTable 1 }
-
-IemConfigProbesEntry ::=
-   SEQUENCE {
-      iemConfigProbeNumber
-         INTEGER,
-      iemConfigProbeName
-         DisplayString,
-      iemConfigProbeHighTempThreshold
-         INTEGER,
-      iemConfigProbeLowTempThreshold
-         INTEGER,
-      iemConfigProbeTempUnits
-         INTEGER,
-      iemConfigProbeHighHumidThreshold
-         INTEGER,
-      iemConfigProbeLowHumidThreshold
-         INTEGER,
-      iemConfigProbeHighTempEnable
-         INTEGER,
-      iemConfigProbeLowTempEnable
-         INTEGER,
-      iemConfigProbeHighHumidEnable
-         INTEGER,
-      iemConfigProbeLowHumidEnable
-         INTEGER
-   }
-
-iemConfigProbeNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to a Environmental Monitor probe entry."
-   ::= { iemConfigProbesEntry 1 }
-
-iemConfigProbeName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the probe set by the user,
-       possibly denoting its location or purpose."
-   ::= { iemConfigProbesEntry 2 }
-
-iemConfigProbeHighTempThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature alarm threshold for the probe.
-       Units are displayed in the scale selected in the
-       'iemConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
-   ::= { iemConfigProbesEntry 3 }
-
-iemConfigProbeLowTempThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low temperature alarm threshold for the probe.
-       Units are displayed in the scale selected in the
-       'iemConfigProbeTempUnits' OID (Celsius or Fahrenheit)."
-   ::= { iemConfigProbesEntry 4 }
-
-iemConfigProbeTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       thresholds of the probe, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { iemConfigProbesEntry 5 }
-
-iemConfigProbeHighHumidThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high humidity alarm threshold for the probe in
-      percent relative humidity."
-   ::= { iemConfigProbesEntry 6 }
-
-iemConfigProbeLowHumidThreshold OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low humidity alarm threshold for the probe in
-      percent relative humidity."
-   ::= { iemConfigProbesEntry 7 }
-
-iemConfigProbeHighTempEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { iemConfigProbesEntry 8 }
-
-iemConfigProbeLowTempEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low temperature alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { iemConfigProbesEntry 9 }
-
-iemConfigProbeHighHumidEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The high humidity alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { iemConfigProbesEntry 10 }
-
-iemConfigProbeLowHumidEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The low humidity alarm enable/disable for the
-       probe. No alarm will be generated if this value
-       is set to disabled(1). The alarm will be 
-       generated if this value is set to enabled(2) and
-       the threshold has been violated."
-   ::= { iemConfigProbesEntry 11 }
-
-iemConfigContactsNumContacts OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts available on the Environmental
-       Monitor."
-   ::= { iemConfig 3 }
-
-iemConfigContactsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IemConfigContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the Environmental Monitor
-       and their configurations."
-   ::= { iemConfig 4 }
-
-iemConfigContactsEntry OBJECT-TYPE
-   SYNTAX IemConfigContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The Environmental Monitor contact configurations."
-   INDEX  { iemConfigContactNumber }
-   ::= { iemConfigContactsTable 1 }
-
-IemConfigContactsEntry ::=
-   SEQUENCE {
-       iemConfigContactNumber
-           INTEGER,
-       iemConfigContactName
-           DisplayString,
-       iemConfigContactEnable
-           INTEGER
-   }
-
-iemConfigContactNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of an Environmental Monitor contact."
-   ::= { iemConfigContactsEntry 1 }
-
-iemConfigContactName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the Environmental Monitor contact
-       set by the user, possibly denoting its location or purpose."
-   ::= { iemConfigContactsEntry 2 }
-
-iemConfigContactEnable OBJECT-TYPE
-   SYNTAX INTEGER {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "An Environmental Monitor contact alarm enable/disable."
-   ::= { iemConfigContactsEntry 3 }
-
-
-iemStatusProbesNumProbes OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of available probes on the Environmental
-       Monitor."
-   ::= { iemStatus 1 }
-
-iemStatusProbesTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IemStatusProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of probes supported by the Environmental Monitor
-       and their status."
-   ::= { iemStatus 2 }
-
-iemStatusProbesEntry OBJECT-TYPE
-   SYNTAX IemStatusProbesEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the probe."
-   INDEX  { iemStatusProbeNumber }
-   ::= { iemStatusProbesTable 1 }
-
-IemStatusProbesEntry ::=
-   SEQUENCE {
-      iemStatusProbeNumber
-         INTEGER,
-      iemStatusProbeName
-         DisplayString,
-      iemStatusProbeStatus
-         INTEGER,
-      iemStatusProbeCurrentTemp
-         INTEGER,
-      iemStatusProbeTempUnits
-         INTEGER,
-      iemStatusProbeCurrentHumid
-         INTEGER,
-      iemStatusProbeHighTempViolation
-         INTEGER,
-      iemStatusProbeLowTempViolation
-         INTEGER,
-      iemStatusProbeHighHumidViolation
-         INTEGER,
-      iemStatusProbeLowHumidViolation
-         INTEGER
-   }
-
-iemStatusProbeNumber OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the probe."
-   ::= { iemStatusProbesEntry 1 }
-
-iemStatusProbeName OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the probe set by the user,
-       denoting its location or purpose."
-   ::= { iemStatusProbesEntry 2 }
-
-iemStatusProbeStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      disconnected(1),
-      connected(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The connected status of the probe, either      
-      disconnected(1) or connected(2)."
-   ::= { iemStatusProbesEntry 3 }
-
-iemStatusProbeCurrentTemp OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current temperature reading from the probe displayed
-       in the units shown in the 'iemStatusProbeTempUnits' OID
-       (Celsius or Fahrenheit)."
-   ::= { iemStatusProbesEntry 4 }
-
-iemStatusProbeTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)     
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       thresholds of the probe, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { iemStatusProbesEntry 5 }
-
-iemStatusProbeCurrentHumid OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current humidity reading from the probe in percent
-      relative humidity."
-   ::= { iemStatusProbesEntry 6 }
-
-iemStatusProbeHighTempViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      highTempViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature violation status of the probe
-       temperature reading. This OID will show a highTempViolation(2)
-       if the current temperature reading shown in the
-       'iemStatusProbeCurrentTemp' OID is greater than or equal to
-       the high temperature threshold value, the 
-       'iemConfigProbeHighTempThreshold' OID, and the value of the
-       'iemConfigProbeHighTempEnable' OID is enabled. Otherwise it will show
-       noViolation(1). If the 'iemConfigProbeHighTempEnable' OID is disabled,
-       this OID will show disabled(3)."
-   ::= { iemStatusProbesEntry 7 }
-
-iemStatusProbeLowTempViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      lowTempViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The high temperature violation status of the probe
-       temperature reading. This OID will show a lowTempViolation(2)
-       if the current temperature reading shown in the
-       'iemStatusProbeCurrentTemp' OID is less than or equal to
-       the low temperature threshold value, the 
-       'iemConfigProbeLowTempThreshold' OID, and the value of the
-       'iemPConfigrobeLowTempEnable' OID is enabled. Otherwise it will show
-       noViolation(1). If the 'iemConfigProbeLowTempEnable' OID is disabled,
-       this OID will show disabled(3)."
-   ::= { iemStatusProbesEntry 8 }
-
-iemStatusProbeHighHumidViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      highHumidViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The high humidity violation status of the probe humidity
-       reading. This OID will show a highTempViolation(2)
-       if the current humidity reading shown in the
-       'iemStatusProbeCurrentHumid' OID is greater than or equal to
-       the high humidity threshold value, the 
-       'iemConfigProbeHighHumidThreshold' OID, and the value of the
-       'iemConfigProbeHighHumidEnable' OID is enabled. Otherwise it will
-       show noViolation(1). If the 'iemConfigProbeHighHumidEnable' OID is
-       disabled, this OID will show disabled(3)."
-   ::= { iemStatusProbesEntry 9 }
-
-iemStatusProbeLowHumidViolation OBJECT-TYPE
-   SYNTAX INTEGER {
-      noViolation(1),
-      lowHumidViolation(2),
-      disabled(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The low humidity violation status of the probe humidity
-       reading. This OID will show a lowTempViolation(2)
-       if the current humidity reading shown in the
-       'iemStatusProbeCurrentHumid' OID is less than or equal to
-       the low humidity threshold value, the 
-       'iemConfigProbeLowHumidThreshold' OID, and the value of the
-       'iemConfigProbeLowHumidEnable' OID is enabled. Otherwise it will
-       show noViolation(1). If the 'iemConfigProbeLowHumidEnable' OID is
-       disabled, this OID will show disabled(3)."
-   ::= { iemStatusProbesEntry 10 }
-
-iemStatusContactsNumContacts OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of contacts supported on the
-       Environmental Monitor."
-   ::= { iemStatus 3 }
-
-iemStatusContactsTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IemStatusContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of contacts supported by the Environmental Monitor
-       and their status."
-   ::= { iemStatus 4 }
-
-iemStatusContactsEntry OBJECT-TYPE
-   SYNTAX IemStatusContactsEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the contact."
-   INDEX  { iemStatusContactNumber }
-   ::= { iemStatusContactsTable 1 }
-
-IemStatusContactsEntry ::=
-   SEQUENCE {
-      iemStatusContactNumber
-         INTEGER,
-      iemStatusContactName
-         DisplayString,
-      iemStatusContactStatus
-         INTEGER
-   }
-
-iemStatusContactNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the Environmental Monitor contact."
-   ::= { iemStatusContactsEntry 1 }
-
-iemStatusContactName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the Environmental Monitor contact
-       set by the user, denoting its location or purpose."
-   ::= { iemStatusContactsEntry 2 }
-
-iemStatusContactStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      noFault(1),
-      fault(2),
-      disabled(3)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the Environmental Monitor contact. The status
-       will show noFault(1) if the contact is in the normal state
-       and the 'iemConfigContactEnable' OID is enabled. The status will
-       show a fault(2) if the contact is faulted and the 
-       'iemConfigContactEnable' OID is enabled. If the
-       'iemConfigContactEnable' OID is disabled, the status will show
-       disabled(3)."
-   ::= { iemStatusContactsEntry 3 }
-
-iemStatusRelaysNumRelays OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of output relays supported on the
-       Environmental Monitor."
-   ::= { iemStatus 6 }
-
-iemStatusRelaysTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IemStatusRelaysEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "A list of output relays supported by the
-       Environmental Monitor and their status."
-   ::= { iemStatus 7 }
-
-iemStatusRelaysEntry OBJECT-TYPE
-   SYNTAX IemStatusRelaysEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the relay."
-   INDEX  { iemStatusRelayNumber }
-   ::= { iemStatusRelaysTable 1 }
-
-IemStatusRelaysEntry ::=
-   SEQUENCE {
-      iemStatusRelayNumber
-         INTEGER,
-      iemStatusRelayName
-         DisplayString,
-      iemStatusRelayStatus
-         INTEGER
-   }
-
-iemStatusRelayNumber OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the output relay."
-   ::= { iemStatusRelaysEntry 1 }
-
-iemStatusRelayName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A descriptive name for the output relay set by the
-       user, denoting its location or purpose."
-   ::= { iemStatusRelaysEntry 2 }
-
-iemStatusRelayStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      faultState(1),
-      normalState(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the output relay, either faultState(1) or
-      normalState(2)."
-   ::= { iemStatusRelaysEntry 3 }
-
--- Environmental Management System (EMS)
-
---  EMS IDENT
-
-emsIdentEMSName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       device. "
-   ::= { emsIdent 1 }
-
-emsIdentProductNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the model number of 
-       the device. This value is set at the factory."
-   ::= { emsIdent 2 }
-
-emsIdentFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The firmware revision of the device."
-   ::= { emsIdent 3 }
-
-emsIdentHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The hardware revision of the device. 
-       This value is set at the factory."
-   ::= { emsIdent 4 }
-
-emsIdentDateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The date when the device was manufactured in mm/dd/yyyy format.
-       This value is set at the factory. " 
-   ::= { emsIdent 5 }
-   
-emsIdentSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the serial number of 
-       the device. This value is set at the factory."
-   ::= { emsIdent 6 }
-
---  EMS CONTROL
-
--- EMS OUTPUT RELAY CONTROL STATUS TABLE
-
-emsOutputRelayControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutputRelayControlEMSEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual output relays. The number of
-       entries is contained in the emsStatusOutputRelayCount OID."
-   ::= { emsOutputRelayControl 1 }
-
-emsOutputRelayControlEntry OBJECT-TYPE
-   SYNTAX OutputRelayControlEMSEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The output relays to control."
-   INDEX  { emsOutputRelayControlOutputRelayIndex }
-   ::= { emsOutputRelayControlTable 1 }
-
-OutputRelayControlEMSEntry ::=
-   SEQUENCE {
-      emsOutputRelayControlOutputRelayIndex   INTEGER,
-      emsOutputRelayControlOutputRelayName    DisplayString,
-      emsOutputRelayControlOutputRelayCommand INTEGER
-   }      
-
-emsOutputRelayControlOutputRelayIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the output relay entry."
-   ::= { emsOutputRelayControlEntry 1 }
-   
-emsOutputRelayControlOutputRelayName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the output relay.
-       This OID is provided for informational purposes only."
-   ::= { emsOutputRelayControlEntry 2 }
-
-emsOutputRelayControlOutputRelayCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      immediateCloseEMS           (1),
-      immediateOpenEMS            (2)
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the output relay state. If 
-       the output relay is closed, the immediateCloseEMS (1) value will be returned.
-       If the output relay is open, the immediateOpenEMS (2) value will be
-       returned. 
-              
-       Setting this variable to immediateCloseEMS (1) will immediately close the relay.
-       
-       Setting this variable to immediateOpenEMS (2) will immediately open the relay."
-   ::= { emsOutputRelayControlEntry 3 }
-
--- EMS OUTLET CONTROL TABLE
- 
-emsOutletControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF OutletControlEMSEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual outlet switches. The number of
-       entries is contained in the emsStatusOutletCount OID."
-   ::= { emsOutletControl 1 }
-
-emsOutletControlEntry OBJECT-TYPE
-   SYNTAX OutletControlEMSEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to control."
-   INDEX  { emsOutletControlOutletIndex }
-   ::= { emsOutletControlTable 1 }
-
-OutletControlEMSEntry ::=
-   SEQUENCE {
-      emsOutletControlOutletIndex   INTEGER,
-      emsOutletControlOutletName    DisplayString,
-      emsOutletControlOutletCommand INTEGER
-   }      
-
-emsOutletControlOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { emsOutletControlEntry 1 }
-   
-emsOutletControlOutletName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet.
-       This OID is provided for informational purposes only."
-   ::= { emsOutletControlEntry 2 }
-
-emsOutletControlOutletCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      immediateOnEMS             (1),
-      immediateOffEMS            (2)
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the outlet state. If 
-       the outlet is on, the immediateOnEMS (1) value will be returned.
-       If the outlet is off, the immediateOffEMS (2) value will be
-       returned. 
-       
-       Setting this variable to immediateOnEMS (1) will immediately turn the outlet on.
-       
-       Setting this variable to immediateOffEMS (2) will immediately turn the outlet off."
-   ::= { emsOutletControlEntry 3 }
-
--- EMS SENSOR CONTROL TABLE
-
-emsSensorControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSSensorControlEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control/reset of individual sensors. The number of
-       entries is contained in the emsStatusSensorCount OID."
-   ::= { emsSensorControl 1 }
-
-emsSensorControlEntry OBJECT-TYPE
-   SYNTAX EMSSensorControlEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The sensors to control/reset."
-   INDEX  { emsSensorControlSensorIndex }
-   ::= { emsSensorControlTable 1 }
-
-EMSSensorControlEntry ::=
-   SEQUENCE {
-      emsSensorControlSensorIndex         INTEGER,
-      emsSensorControlSensorSystemName    DisplayString,
-      emsSensorControlSensorUserName      DisplayString,
-      emsSensorControlSensorCommand       INTEGER
-   }      
-
-emsSensorControlSensorIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the sensor entry."
-   ::= { emsSensorControlEntry 1 }
-   
-emsSensorControlSensorSystemName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The system name of the sensor.  This describes the hardware system
-       intent of this sensor."
-   ::= { emsSensorControlEntry 2 }
-
-emsSensorControlSensorUserName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the sensor as given by the system user."
-   ::= { emsSensorControlEntry 3 }
-   
-emsSensorControlSensorCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      noCommandEMS        (1),
-      resetCommandEMS     (2)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return noCommandEMS(1).  
-              
-       Setting this variable to resetCommandEMS(2) will issue a reset command to the
-       sensor.  Some sensors cannot be manually reset and will not be affected 
-       by this command."
-   ::= { emsSensorControlEntry 4 }
-
--- EMS ALARM DEVICE CONTROL TABLE
- 
-emsAlarmDeviceControlTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF AlarmDeviceControlEMSEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for control of individual alarm devices. 
-       Note: Some alarm devices are not controllable.  The number of
-       entries is contained in the emsStatusAlarmDeviceCount OID."
-   ::= { emsAlarmDeviceControl 1 }
-
-emsAlarmDeviceControlEntry OBJECT-TYPE
-   SYNTAX AlarmDeviceControlEMSEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The alarm devices to control."
-   INDEX  { emsAlarmDeviceControlDeviceIndex }
-   ::= { emsAlarmDeviceControlTable 1 }
-
-AlarmDeviceControlEMSEntry ::=
-   SEQUENCE {
-      emsAlarmDeviceControlDeviceIndex   INTEGER,
-      emsAlarmDeviceControlDeviceName    DisplayString,
-      emsAlarmDeviceControlDeviceCommand INTEGER
-   }      
-
-emsAlarmDeviceControlDeviceIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the alarm device entry."
-   ::= { emsAlarmDeviceControlEntry 1 }
-   
-emsAlarmDeviceControlDeviceName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the alarm device.
-       This OID is provided for informational purposes only."
-   ::= { emsAlarmDeviceControlEntry 2 }
-
-emsAlarmDeviceControlDeviceCommand OBJECT-TYPE
-   SYNTAX INTEGER {
-      alarmDeviceOnEMS             (1),
-      alarmDeviceOffEMS            (2),
-      alarmDeviceNotInstalledEMS   (3)
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the device state. If 
-       the device is active, the alarmDeviceOnEMS (1) value will be returned.
-       If the device is inactive, the alarmDeviceOffEMS (2) value will be
-       returned. If the device is not installed, the 
-       alarmDeviceNotInstalledEMS (3) value will be returned.
-       
-       Actions resulting from setting this variable are device-dependent.
-
-       Setting this variable to alarmDeviceOnEMS (1) will turn that device (ex. Beacon) on.       
-       Setting this variable to alarmDeviceOffEMS (2) will turn that device off."
-
-   ::= { emsAlarmDeviceControlEntry 3 }
-
-
---  EMS CONFIG
-
-emsConfigName   OBJECT-TYPE
-   SYNTAX  DisplayString    
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the device."
-   ::= { emsConfig 1 }
-
-emsConfigCheckLogLight   OBJECT-TYPE
-   SYNTAX INTEGER       {
-      lightDisabled          (1),
-      lightOnInformational   (2),
-      lightOnWarning         (3),
-      lightOnSevere          (4)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "The setting of this OID determines the level of event that will
-       trigger the check-log light on the EMS. This is not available on the EMU2.
-
-      lightDisabled (1) disables the check-log light.
-      lightOnInformational (2) lights check-log for any event of 
-        informational severity or above.
-      lightOnWarning (3) lights check-log for any event of 
-        warning severity or above.
-      lightOnSevere (4) lights check-log for any event of severe severity."
-
-   ::= { emsConfig 2 }
-   
--- EMS PROBE CONFIG TABLE
-
-emsProbeConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSProbeConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual probes. The number of
-       entries is contained in the emsStatusProbeCount OID."
-   ::= { emsProbeConfig 1 }
-
-emsProbeConfigEntry OBJECT-TYPE
-   SYNTAX EMSProbeConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The probes to configure."
-   INDEX  { emsProbeConfigProbeIndex }
-   ::= { emsProbeConfigTable 1 }
-
-EMSProbeConfigEntry ::=
-   SEQUENCE {
-      emsProbeConfigProbeIndex                INTEGER,
-      emsProbeConfigProbeName                 DisplayString,
-      emsProbeConfigProbeHighTempThresh       INTEGER,
-      emsProbeConfigProbeLowTempThresh        INTEGER,
-      emsProbeConfigProbeHighHumidityThresh   INTEGER,
-      emsProbeConfigProbeLowHumidityThresh    INTEGER,
-      emsProbeConfigProbeMaxTempThresh        INTEGER,
-      emsProbeConfigProbeMinTempThresh        INTEGER,
-      emsProbeConfigProbeDeltaTemp            INTEGER,
-      emsProbeConfigProbeMaxHumidityThresh    INTEGER,
-      emsProbeConfigProbeMinHumidityThresh    INTEGER,
-      emsProbeConfigProbeDeltaHumidity        INTEGER,
-      emsProbeConfigProbeSTIncTempVariance    INTEGER,
-      emsProbeConfigProbeSTIncTempTime        INTEGER,
-      emsProbeConfigProbeSTDecTempVariance    INTEGER,
-      emsProbeConfigProbeSTDecTempTime        INTEGER,
-      emsProbeConfigProbeLTIncTempVariance    INTEGER,
-      emsProbeConfigProbeLTIncTempTime        INTEGER,
-      emsProbeConfigProbeLTDecTempVariance    INTEGER,
-      emsProbeConfigProbeLTDecTempTime        INTEGER
-   }      
-
-emsProbeConfigProbeIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the probe entry."
-   ::= { emsProbeConfigEntry 1 }
-   
-emsProbeConfigProbeName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the probe."
-   ::= { emsProbeConfigEntry 2 }
-
-emsProbeConfigProbeHighTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe high temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 3 }
-   
-emsProbeConfigProbeLowTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe low temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 4 }
-   
-emsProbeConfigProbeHighHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe high humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeConfigEntry 5 }
-   
-emsProbeConfigProbeLowHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe low humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeConfigEntry 6 }
-
-emsProbeConfigProbeMaxTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe maximum temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 7 }
-   
-emsProbeConfigProbeMinTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe minimum temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 8 }
-   
-emsProbeConfigProbeDeltaTemp OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe delta temperature. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 9 }
-   
-emsProbeConfigProbeMaxHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe maximum humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeConfigEntry 10 }
-   
-emsProbeConfigProbeMinHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe minimum humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeConfigEntry 11 }
-   
-emsProbeConfigProbeDeltaHumidity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe delta humidity. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeConfigEntry 12 }
-   
-emsProbeConfigProbeSTIncTempVariance OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe short-term increasing temperature variance used for rate of change alarms. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 13 }
-   
-emsProbeConfigProbeSTIncTempTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe short-term increasing temperature time used for rate of change alarms. 
-
-      Values are represented in whole number minutes."
-   ::= { emsProbeConfigEntry 14 }
-   
-emsProbeConfigProbeSTDecTempVariance OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe short-term decreasing temperature variance used for rate of change alarms. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 15 }
-   
-emsProbeConfigProbeSTDecTempTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe short-term decreasing temperature time used for rate of change alarms. 
-
-      Values are represented in whole number minutes."
-   ::= { emsProbeConfigEntry 16 }
-   
-emsProbeConfigProbeLTIncTempVariance OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe long-term increasing temperature variance used for rate of change alarms. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 17 }
-   
-emsProbeConfigProbeLTIncTempTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe long-term increasing temperature time used for rate of change alarms. 
-
-      Values are represented in whole number hours."
-   ::= { emsProbeConfigEntry 18 }
-   
-emsProbeConfigProbeLTDecTempVariance OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe long-term decreasing temperature variance used for rate of change alarms. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeConfigEntry 19 }
-   
-emsProbeConfigProbeLTDecTempTime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "Probe long-term decreasing temperature time used for rate of change alarms. 
-
-      Values are represented in whole number hours."
-   ::= { emsProbeConfigEntry 20 }
-   
-
--- EMS INPUT CONTACT CONFIG STATUS TABLE
-
-emsInputContactConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSInputContactConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual input contacts. The number of
-       entries is contained in the emsStatusInputContactCount OID."
-   ::= { emsInputContactConfig 1 }
-
-emsInputContactConfigEntry OBJECT-TYPE
-   SYNTAX EMSInputContactConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The input contacts to configure."
-   INDEX  { emsInputContactConfigInputContactIndex }
-   ::= { emsInputContactConfigTable 1 }
-
-EMSInputContactConfigEntry ::=
-   SEQUENCE {
-      emsInputContactConfigInputContactIndex         INTEGER,
-      emsInputContactConfigInputContactName          DisplayString,
-      emsInputContactConfigInputContactNormalState   INTEGER
-   }      
-
-emsInputContactConfigInputContactIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the input contact entry."
-   ::= { emsInputContactConfigEntry 1 }
-   
-emsInputContactConfigInputContactName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the input contact."
-   ::= { emsInputContactConfigEntry 2 }
-
-emsInputContactConfigInputContactNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyClosedEMS        (1),
-      normallyOpenEMS          (2)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the input contact. If 
-       the normal state is closed, the normallyClosedEMS (1) value will be returned.
-       If the normal state is closed, the normallyOpenEMS (2) value will be
-       returned.
-       
-       Setting this variable will change the normal state of the input contact"
-   ::= { emsInputContactConfigEntry 3 }
-   
--- EMS OUTPUT RELAY CONFIG STATUS TABLE
-
-emsOutputRelayConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSOutputRelayConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual output relays. The number of
-       entries is contained in the emsStatusOutputRelayCount OID."
-   ::= { emsOutputRelayConfig 1 }
-
-emsOutputRelayConfigEntry OBJECT-TYPE
-   SYNTAX EMSOutputRelayConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The output relays to configure."
-   INDEX  { emsOutputRelayConfigOutputRelayIndex }
-   ::= { emsOutputRelayConfigTable 1 }
-
-EMSOutputRelayConfigEntry ::=
-   SEQUENCE {
-      emsOutputRelayConfigOutputRelayIndex          INTEGER,
-      emsOutputRelayConfigOutputRelayName           DisplayString,
-      emsOutputRelayConfigOutputRelayNormalState    INTEGER
-   }      
-
-emsOutputRelayConfigOutputRelayIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the output relay entry."
-   ::= { emsOutputRelayConfigEntry 1 }
-   
-emsOutputRelayConfigOutputRelayName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the output relay."
-   ::= { emsOutputRelayConfigEntry 2 }
-
-emsOutputRelayConfigOutputRelayNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyClosedEMS        (1),
-      normallyOpenEMS          (2)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the output relay. If 
-       the normal state is closed, the normallyClosedEMS (1) value will be returned.
-       If the normal state is closed, the normallyOpenEMS (2) value will be
-       returned.
-              
-       Setting this variable will change the normal state of the output relay"
-   ::= { emsOutputRelayConfigEntry 3 }
-   
--- EMS OUTLET CONFIG TABLE
-  
-emsOutletConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSOutletConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual outlets. The number of
-       entries is contained in the emsStatusOutletCount OID."
-   ::= { emsOutletConfig 1 }
-
-emsOutletConfigEntry OBJECT-TYPE
-   SYNTAX EMSOutletConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to configure."
-   INDEX  { emsOutletConfigOutletIndex }
-   ::= { emsOutletConfigTable 1 }
-
-EMSOutletConfigEntry ::=
-   SEQUENCE {
-      emsOutletConfigOutletIndex          INTEGER,
-      emsOutletConfigOutletName           DisplayString,
-      emsOutletConfigOutletNormalState    INTEGER
-   }      
-
-emsOutletConfigOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { emsOutletConfigEntry 1 }
-   
-emsOutletConfigOutletName   OBJECT-TYPE
-   SYNTAX  DisplayString    ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet."
-   ::= { emsOutletConfigEntry 2 }
-
-emsOutletConfigOutletNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyOnEMS             (1),
-      normallyOffEMS            (2)
-   }     
-
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the outlet. If 
-       the normal state is on, the normallyOnEMS (1) value will be returned.
-       If the normal state is off, the normallyOffEMS (2) value will be
-       returned. 
-       
-       Setting this variable will change the normal state of the outlet"
-   ::= { emsOutletConfigEntry 3 }
-   
--- EMS SENSOR CONFIG TABLE
-
-emsSensorConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSSensorConfigEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual sensors. The number of
-       entries is contained in the emsStatusSensorCount OID."
-   ::= { emsSensorConfig 1 }
-
-emsSensorConfigEntry OBJECT-TYPE
-   SYNTAX EMSSensorConfigEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The sensors to configure."
-   INDEX  { emsSensorConfigSensorIndex }
-   ::= { emsSensorConfigTable 1 }
-
-EMSSensorConfigEntry ::=
-   SEQUENCE {
-      emsSensorConfigSensorIndex         INTEGER,
-      emsSensorConfigSensorSystemName    DisplayString,
-      emsSensorConfigSensorUserName      DisplayString,
-      emsSensorConfigSensorNormalState   INTEGER,
-      emsSensorConfigSensorAlarmDelay    INTEGER
-   }      
-
-emsSensorConfigSensorIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the sensor entry."
-   ::= { emsSensorConfigEntry 1 }
-   
-emsSensorConfigSensorSystemName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The system name of the sensor.  This describes the hardware system
-       intent of this sensor."
-   ::= { emsSensorConfigEntry 2 }
-
-emsSensorConfigSensorUserName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the sensor as given by the system user."
-   ::= { emsSensorConfigEntry 3 }
-   
-emsSensorConfigSensorNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyClosedEMS        (1),
-      normallyOpenEMS          (2)
-   }     
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the sensor. If 
-       the normal state is closed, the normallyClosedEMS (1) value will be returned.
-       If the normal state is closed, the normallyOpenEMS (2) value will be
-       returned.
-       
-       Setting this variable will change the normal state of the sensor.  Note:
-       Only the AUX sensor in the EMS has a configurable Normal State"
-   ::= { emsSensorConfigEntry 4 }
-
-emsSensorConfigSensorAlarmDelay   OBJECT-TYPE
-   SYNTAX  INTEGER 
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The delay (in seconds) after a sensor detects an alarm condition before the
-       condition is reported."
-   ::= { emsSensorConfigEntry 5 }
-
---  EMS STATUS
---- EMS MASTER status
-
-emsStatusEMSName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       device. "
-   ::= { emsStatus 1 }
-
-emsStatusCommStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      noComm(1),
-      comm(2),
-      commLost(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The communication status between the agent
-       and the device.
-       
-       noComm(1),   Communication has never been established.
-       comm(2),     Communication has been established.
-       commLost(3), Communication was established, but was lost."
-   ::= { emsStatus 2 }
-
-emsStatusProbeCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of T/H probes (both local and remote) that
-       is supported by this device."
-   ::= { emsStatus 3 }
-
-emsStatusInputContactCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of Input Contacts that
-       is supported by this device."
-   ::= { emsStatus 4 }
-
-emsStatusOutputRelayCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of Output Relays that
-       is supported by this device."
-   ::= { emsStatus 5 }
-
-emsStatusOutletCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of  AC Outlets that
-       is supported by this device."
-   ::= { emsStatus 6 }
-
-emsStatusSensorCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of Sensors that
-       is supported by this device."
-   ::= { emsStatus 7 }
-   
-emsStatusAlinkAruDeviceCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of remote Aru's supported by this device."
-   ::= { emsStatus 8 }
-
-emsStatusAlinkProbeDeviceCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of remote T/H probes supported by this device."
-   ::= { emsStatus 9 }
-
-emsStatusAlarmDeviceCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of alarm devices supported by this device."
-   ::= { emsStatus 10 }
-
-emsStatusSysTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       in the system, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { emsStatus 11 }
-
-emsStatusCheckLogLight   OBJECT-TYPE
-   SYNTAX INTEGER       {
-      lightOff         (1),
-      lightOn          (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the check-log light on the device.
-      For the EMU2, this will always indicate lightOff(1).
-
-      lightOff (1) indicates the light is off (no new log entries).
-      lightOn (2) indicates the light is on (new log entries present)."
-
-   ::= { emsStatus 12 }
-
-emsStatusHardwareStatus   OBJECT-TYPE
-   SYNTAX INTEGER       
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the EMS hardware.  This integer should be interpreted
-       as a bit map, with each bit representing the presence or absence of
-       a specific hardware error condition.
-       
-       0 indicates there are no error conditions detected in the EMS hardware.
-       1 indicates a Current Limit error condition related to the Alink port.
-       2 indicates incorrect hardware is plugged into an EMS port.
-       3 indicates that both of these error conditions are present."
-
-   ::= { emsStatus 13 }
-
--- EMS PROBE STATUS TABLE
-
-emsProbeStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSProbeStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual probes. The number of
-       entries is contained in the emsStatusProbeCount OID."
-   ::= { emsProbeStatus 1 }
-
-emsProbeStatusEntry OBJECT-TYPE
-   SYNTAX EMSProbeStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The probes to access."
-   INDEX  { emsProbeStatusProbeIndex }
-   ::= { emsProbeStatusTable 1 }
-
-EMSProbeStatusEntry ::=
-   SEQUENCE {
-      emsProbeStatusProbeIndex                INTEGER,
-      emsProbeStatusProbeName                 DisplayString,
-      emsProbeStatusProbeTemperature          INTEGER,
-      emsProbeStatusProbeHighTempThresh       INTEGER,
-      emsProbeStatusProbeLowTempThresh        INTEGER,
-      emsProbeStatusProbeHumidity             INTEGER,
-      emsProbeStatusProbeHighHumidityThresh   INTEGER,
-      emsProbeStatusProbeLowHumidityThresh    INTEGER,
-      emsProbeStatusProbeSerialNumber         DisplayString,
-      emsProbeStatusProbeCommStatus           INTEGER,
-      emsProbeStatusProbeAlarmStatus          INTEGER,
-      emsProbeStatusProbeMaxTempThresh        INTEGER,
-      emsProbeStatusProbeMinTempThresh        INTEGER,
-      emsProbeStatusProbeMaxHumidityThresh    INTEGER,
-      emsProbeStatusProbeMinHumidityThresh    INTEGER
-   }      
-
-emsProbeStatusProbeIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the probe entry."
-   ::= { emsProbeStatusEntry 1 }
-   
-emsProbeStatusProbeName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the probe."
-   ::= { emsProbeStatusEntry 2 }
-
-emsProbeStatusProbeTemperature OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe temperature reading. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeStatusEntry 3 }
-
-emsProbeStatusProbeHighTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe high temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeStatusEntry 4 }
-   
-emsProbeStatusProbeLowTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe low temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeStatusEntry 5 }
-   
-emsProbeStatusProbeHumidity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe humidity reading. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeStatusEntry 6 }
-
-emsProbeStatusProbeHighHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe high humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeStatusEntry 7 }
-   
-emsProbeStatusProbeLowHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe low humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeStatusEntry 8 }
-
-emsProbeStatusProbeSerialNumber   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "A label indicating the type (Local[L] or Remote[R]) and Number
-       of the probe.  For example, the first local probe would be L1 and
-       the third remote probe would be R3."
-   ::= { emsProbeStatusEntry 9 }
-
-emsProbeStatusProbeCommStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      commsNeverDiscovered(1),
-      commsEstablished(2),
-      commsLost(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      " The state of communications to the probe.
-      commNeverDiscovered(1) indicates there has never been communications with this device.
-      commsEstablished(2) indicates communication is normal and active with this device.
-      commsLost(3) indicates communication had been established, but is no longer."
-   ::= { emsProbeStatusEntry 10 }
-
-emsProbeStatusProbeAlarmStatus   OBJECT-TYPE
-   SYNTAX INTEGER       
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The alarm status of the probe.  This integer should be interpreted
-       as a bit map, with each bit representing the presence or absence of
-       the specific alarm conditions listed below.  The bit will be '1' if
-       the condition is present, and '0' if the condition is not present.
-       
-       Bit  Hex. Value  Description
-       1    0x0001      Maximum temperature exceeded.
-       2    0x0002      High temperature exceeded.
-       3    0x0004      Low temperature exceeded.
-       4    0x0008      Minimum temperature exceeded.
-       5    0x0010      Short-term increasing temperature rate exceeded.
-       6    0x0020      Short-term decreasing temperature rate exceeded.
-       7    0x0040      Long-term increasing temperature rate exceeded.
-       8    0x0080      Long-term decreasing temperature rate exceeded.
-       9    0x0100      Maximum humidity exceeded.
-       10   0x0200      High humidity exceeded.
-       11   0x0400      Low humidity exceeded.
-       12   0x0800      Minimum humidity exceeded."
-   ::= { emsProbeStatusEntry 11 }
-
-emsProbeStatusProbeMaxTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe maximum temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeStatusEntry 12 }
-   
-emsProbeStatusProbeMinTempThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe minimum temperature threshold. 
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the emsStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { emsProbeStatusEntry 13 }
-   
-emsProbeStatusProbeMaxHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe maximum humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeStatusEntry 14 }
-   
-emsProbeStatusProbeMinHumidityThresh OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "Probe minimum humidity threshold. 
-
-      Values are represented in whole number percentage."
-   ::= { emsProbeStatusEntry 15 }
-   
-
--- EMS INPUT CONTACT STATUS TABLE
-
-emsInputContactStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSInputContactStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual input contacts. The number of
-       entries is contained in the emsStatusInputContactCount OID."
-   ::= { emsInputContactStatus 1 }
-
-emsInputContactStatusEntry OBJECT-TYPE
-   SYNTAX EMSInputContactStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The input contacts to access."
-   INDEX  { emsInputContactStatusInputContactIndex }
-   ::= { emsInputContactStatusTable 1 }
-
-EMSInputContactStatusEntry ::=
-   SEQUENCE {
-      emsInputContactStatusInputContactIndex         INTEGER,
-      emsInputContactStatusInputContactName          DisplayString,
-      emsInputContactStatusInputContactState         INTEGER,
-      emsInputContactStatusInputContactNormalState   INTEGER
-   }      
-
-emsInputContactStatusInputContactIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the input contact entry."
-   ::= { emsInputContactStatusEntry 1 }
-   
-emsInputContactStatusInputContactName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the input contact."
-   ::= { emsInputContactStatusEntry 2 }
-   
-emsInputContactStatusInputContactState OBJECT-TYPE
-   SYNTAX INTEGER {
-      contactClosedEMS         (1),
-      contactOpenEMS           (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the state of the input contact. If 
-       the input contact is closed, the contactClosedEMS (1) value will be returned.
-       If the input contact state is open, the contactOpenEMS (2) value will be
-       returned. "
-       
-   ::= { emsInputContactStatusEntry 3 }
-
-emsInputContactStatusInputContactNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyClosedEMS         (1),
-      normallyOpenEMS           (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the input contact. If 
-       the normal state is closed, the normallyClosedEMS (1) value will be returned.
-       If the normal state is open, the normallyOpenEMS (2) value will be
-       returned. "
-       
-   ::= { emsInputContactStatusEntry 4 }
-
-
--- EMS OUTPUT RELAY STATUS TABLE
-
-emsOutputRelayStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSOutputRelayStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual output relays. The number of
-       entries is contained in the emsStatusOutputRelayCount OID."
-   ::= { emsOutputRelayStatus 1 }
-
-emsOutputRelayStatusEntry OBJECT-TYPE
-   SYNTAX EMSOutputRelayStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The output relays to access."
-   INDEX  { emsOutputRelayStatusOutputRelayIndex }
-   ::= { emsOutputRelayStatusTable 1 }
-
-EMSOutputRelayStatusEntry ::=
-   SEQUENCE {
-      emsOutputRelayStatusOutputRelayIndex          INTEGER,
-      emsOutputRelayStatusOutputRelayName           DisplayString,
-      emsOutputRelayStatusOutputRelayState          INTEGER,
-      emsOutputRelayStatusOutputRelayNormalState    INTEGER
-   }      
-
-emsOutputRelayStatusOutputRelayIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the output relay entry."
-   ::= { emsOutputRelayStatusEntry 1 }
-   
-emsOutputRelayStatusOutputRelayName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the output relay."
-   ::= { emsOutputRelayStatusEntry 2 }
-
-emsOutputRelayStatusOutputRelayState OBJECT-TYPE
-   SYNTAX INTEGER {
-      relayClosedEMS         (1),
-      relayOpenEMS           (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the state of the output relay. If 
-       the output relay is closed, the relayClosedEMS (1) value will be returned.
-       If the output relay is open, the relayOpenEMS (2) value will be
-       returned. "
-       
-   ::= { emsOutputRelayStatusEntry 3 }
-
-emsOutputRelayStatusOutputRelayNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyClosedEMS         (1),
-      normallyOpenEMS           (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the output relay. If 
-       the normal state is closed, the normallyClosedEMS (1) value will be returned.
-       If the normal state is open, the normallyOpenEMS (2) value will be
-       returned. "
-       
-   ::= { emsOutputRelayStatusEntry 4 }
-   
--- EMS OUTLET STATUS TABLE
-  
-emsOutletStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSOutletStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual outlets. The number of
-       entries is contained in the emsStatusOutletCount OID."
-   ::= { emsOutletStatus 1 }
-
-emsOutletStatusEntry OBJECT-TYPE
-   SYNTAX EMSOutletStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The outlets to access."
-   INDEX  { emsOutletStatusOutletIndex }
-   ::= { emsOutletStatusTable 1 }
-
-EMSOutletStatusEntry ::=
-   SEQUENCE {
-      emsOutletStatusOutletIndex          INTEGER,
-      emsOutletStatusOutletName           DisplayString,
-      emsOutletStatusOutletState          INTEGER,
-      emsOutletStatusOutletNormalState    INTEGER
-   }      
-
-emsOutletStatusOutletIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the outlet entry."
-   ::= { emsOutletStatusEntry 1 }
-   
-emsOutletStatusOutletName   OBJECT-TYPE
-   SYNTAX  DisplayString    ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the outlet."
-   ::= { emsOutletStatusEntry 2 }
-
-emsOutletStatusOutletState OBJECT-TYPE
-   SYNTAX INTEGER {
-      outletOnEMS             (1),
-      outletOffEMS            (2)
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the state of the outlet. If 
-       the outlet is on, the outletOnEMS (1) value will be returned.
-       If the outlet is off, the outletOffEMS (2) value will be
-       returned. "
-       
-   ::= { emsOutletStatusEntry 3 }
-
-emsOutletStatusOutletNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyOnEMS             (1),
-      normallyOffEMS            (2)
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the outlet. If 
-       the normal state is on, the normallyOnEMS (1) value will be returned.
-       If the normal state is off, the normallyOffEMS (2) value will be
-       returned. "
-       
-   ::= { emsOutletStatusEntry 4 }
-
--- EMS ALARM DEVICE STATUS TABLE
- 
-emsAlarmDeviceStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSAlarmDeviceStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual alarm devices. The number of
-       entries is contained in the emsStatusAlarmDeviceCount OID."
-   ::= { emsAlarmDeviceStatus 1 }
-
-emsAlarmDeviceStatusEntry OBJECT-TYPE
-   SYNTAX EMSAlarmDeviceStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The alarm devices to access."
-   INDEX  { emsAlarmDeviceStatusDeviceIndex }
-   ::= { emsAlarmDeviceStatusTable 1 }
-
-EMSAlarmDeviceStatusEntry ::=
-   SEQUENCE {
-      emsAlarmDeviceStatusDeviceIndex   INTEGER,
-      emsAlarmDeviceStatusDeviceName    DisplayString,
-      emsAlarmDeviceStatusDeviceState   INTEGER
-   }      
-
-emsAlarmDeviceStatusDeviceIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the alarm device entry."
-   ::= { emsAlarmDeviceStatusEntry 1 }
-   
-emsAlarmDeviceStatusDeviceName    OBJECT-TYPE
-   SYNTAX  DisplayString
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the alarm device.
-       This OID is provided for informational purposes only."
-   ::= { emsAlarmDeviceStatusEntry 2 }
-
-emsAlarmDeviceStatusDeviceState OBJECT-TYPE
-   SYNTAX INTEGER {
-      alarmDeviceOnEMS             (1),
-      alarmDeviceOffEMS            (2),
-      alarmDeviceNotInstalledEMS   (3)   
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the device state. If 
-       the device is active, the alarmDeviceOnEMS (1) value will be returned.
-       If the device is inactive, the alarmDeviceOffEMS (2) value will be
-       returned.  If the device is not installed, the 
-       alarmDeviceNotInstalledEMS (3) value will be returned."
-
-   ::= { emsAlarmDeviceStatusEntry 3 }
-
-   
--- EMS SENSOR STATUS TABLE
-
-emsSensorStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF EMSSensorStatusEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual sensors. The number of
-       entries is contained in the emsStatusSensorCount OID."
-   ::= { emsSensorStatus 1 }
-
-emsSensorStatusEntry OBJECT-TYPE
-   SYNTAX EMSSensorStatusEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The sensors to access."
-   INDEX  { emsSensorStatusSensorIndex }
-   ::= { emsSensorStatusTable 1 }
-
-EMSSensorStatusEntry ::=
-   SEQUENCE {
-      emsSensorStatusSensorIndex         INTEGER,
-      emsSensorStatusSensorSystemName    DisplayString,
-      emsSensorStatusSensorName          DisplayString,
-      emsSensorStatusSensorState         INTEGER,
-      emsSensorStatusSensorNormalState   INTEGER,
-      emsSensorStatusSensorAlarmDelay    INTEGER
-   }      
-
-emsSensorStatusSensorIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the sensor entry."
-   ::= { emsSensorStatusEntry 1 }
- 
-emsSensorStatusSensorSystemName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The system name of the sensor.  This describes the hardware system
-       intent of this sensor."
-   ::= { emsSensorStatusEntry 2 }
-  
-emsSensorStatusSensorName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the sensor as given by the system user."
-   ::= { emsSensorStatusEntry 3 }
-
-emsSensorStatusSensorState OBJECT-TYPE
-   SYNTAX INTEGER {
-      sensorFaultedEMS       (1),
-      sensorOKEMS            (2),
-      sensorNotInstalledEMS  (3)   
-   }     
-
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the sensor state. If the sensor is faulted, 
-       the sensorFaultedEMS (1) value will be returned.
-       If the sensor is not faulted, the sensorOKEMS (2) value will be
-       returned. If the sensor is not installed, the  sensorNotInstalledEMS (3) 
-       value will be returned."
-   ::= { emsSensorStatusEntry 4 }
- 
-emsSensorStatusSensorNormalState OBJECT-TYPE
-   SYNTAX INTEGER {
-      normallyClosedEMS        (1),
-      normallyOpenEMS          (2)
-   }     
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-       "Getting this variable will return the normal state of the sensor. If 
-       the normal state is closed, the normallyClosedEMS (1) value will be returned.
-       If the normal state is closed, the normallyOpenEMS (2) value will be
-       returned."
-   ::= { emsSensorStatusEntry 5 }
-
-emsSensorStatusSensorAlarmDelay   OBJECT-TYPE
-   SYNTAX  INTEGER 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The delay (in seconds) after a sensor detects an alarm condition before the
-       condition is reported."
-   ::= { emsSensorStatusEntry 6 }
-   
-
-
---  airFM AIR CONDITIONER IDENT
-
-airFMIdentName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       device. "
-   ::= { airFMIdent 1 }
-   
-airFMIdentTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of entries in the airFMIdentTable. "   
-   ::= { airFMIdent 2 } 
-
-airFMIdentTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF AirFMIdentTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting identification information 
-       from each module in the system. "    
-   ::= { airFMIdent 3 }
-
-airFMIdentTableEntry OBJECT-TYPE
-   SYNTAX AirFMIdentTableEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The module to get information from."
-   INDEX  { airFMIdentModuleIndex }
-   ::= { airFMIdentTable 1 }
-
-AirFMIdentTableEntry ::=
-   SEQUENCE {
-      airFMIdentModuleIndex            INTEGER,
-      airFMIdentModuleModelNumber      DisplayString,
-      airFMIdentModuleDateOfMfg        DisplayString,
-      airFMIdentModuleSerialNumber     DisplayString,
-      airFMIdentModuleFirmwareRev      DisplayString,
-      airFMIdentModuleHardwareRev      DisplayString
-   }
-   
-airFMIdentModuleIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the module information."
-   ::= { airFMIdentTableEntry 1 }
-
-airFMIdentModuleModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       model number. "
-   ::= { airFMIdentTableEntry 2 }
-   
-airFMIdentModuleDateOfMfg OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       manufacture date. "
-   ::= { airFMIdentTableEntry 3 }
-   
-airFMIdentModuleSerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       unit serial number. "
-   ::= { airFMIdentTableEntry 4 }
-   
-airFMIdentModuleFirmwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       firmware revision. "
-   ::= { airFMIdentTableEntry 5 }
-   
-airFMIdentModuleHardwareRev OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       hardware revision. "
-   ::= { airFMIdentTableEntry 6 }
-   
---  airFM AIR CONDITIONER STATUS
-
-airFMStatusSystemOn OBJECT-TYPE
-   SYNTAX INTEGER   {
-      statusOn      (1),
-      statusOff     (2)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The operating state of the system. "
-   ::= { airFMStatus 1 }
-   
-airFMStatusSystemAverageRetTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system average return air 
-       temperature in tenths of degrees Celsius. "
-   ::= { airFMStatus 2 }
-   
-airFMStatusSystemAverageRetTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system average return air 
-       temperature in tenths of degrees Fahrenheit. "
-   ::= { airFMStatus 3 }
-   
-airFMStatusSystemAverageRetHum OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system average return air 
-       humidity. "
-   ::= { airFMStatus 4 }
-   
-airFMStatusSystemActionTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system action air 
-       temperature in tenths of degrees Celsius. "
-   ::= { airFMStatus 5 }
-   
-airFMStatusSystemActionTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system action air 
-       temperature in tenths of degrees Fahrenheit. "
-   ::= { airFMStatus 6 }
-   
-airFMStatusSystemActionHum OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system action air humidity. "
-   ::= { airFMStatus 7 }
-   
-airFMStatusSystemRemoteHighTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote high air 
-       temperature in tenths of degrees Celsius. "
-   ::= { airFMStatus 8 }
-   
-airFMStatusSystemRemoteHighTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote high air 
-       temperature in tenths of degrees Fahrenheit. "
-   ::= { airFMStatus 9 }
-   
-airFMStatusSystemRemoteAvgTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote average air 
-       temperature in tenths of degrees Celsius. "
-   ::= { airFMStatus 10 }
-   
-airFMStatusSystemRemoteAvgTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote average air 
-       temperature in tenths of degrees Fahrenheit. "
-   ::= { airFMStatus 11 }
-   
-airFMStatusSystemRemoteAvgHum OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote average air 
-       humidity. "
-   ::= { airFMStatus 12 }
-   
-airFMStatusSystemRemoteLowTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote low air 
-       temperature in tenths of degrees Celsius. "
-   ::= { airFMStatus 13 }
-   
-airFMStatusSystemRemoteLowTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The system remote low air 
-       temperature in tenths of degrees Fahrenheit. "
-   ::= { airFMStatus 14 }
-   
-airFMStatusSystemCoolingEnabled OBJECT-TYPE
-   SYNTAX INTEGER   {
-      enabledYes    (1),
-      enabledNo     (2)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The state of the system cooling
-       function enable. "
-   ::= { airFMStatus 15 }
-   
-airFMStatusSystemReheatingEnabled OBJECT-TYPE
-   SYNTAX INTEGER   {
-      enabledYes    (1),
-      enabledNo     (2)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The state of the system reheating
-       function enable. "
-   ::= { airFMStatus 16 }
-   
-airFMStatusSystemHumidifyEnabled OBJECT-TYPE
-   SYNTAX INTEGER   {
-      enabledYes    (1),
-      enabledNo     (2)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The state of the system humidify
-       function enable. "
-   ::= { airFMStatus 17 }
-   
-airFMStatusSystemDehumidifyEnabled OBJECT-TYPE
-   SYNTAX INTEGER   {
-      enabledYes    (1),
-      enabledNo     (2)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The state of the system dehumidify
-       function enable. "
-   ::= { airFMStatus 18 }
-   
-airFMStatusModuleTableSize OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of entries in the airFMStatusModuleTable. "   
-   ::= { airFMStatus 19 }   
-
-airFMStatusModuleTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF AirFMStatusModuleEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for getting information from each module
-       in the system. " 
-   ::= { airFMStatus 20 }
-
-airFMStatusModuleEntry OBJECT-TYPE
-   SYNTAX AirFMStatusModuleEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The module to get status from."
-   INDEX  { airFMStatusModuleIndex }
-   ::= { airFMStatusModuleTable 1 }
-
-AirFMStatusModuleEntry ::=
-   SEQUENCE {
-      airFMStatusModuleIndex               INTEGER,
-      airFMStatusModuleOutputCapacity      INTEGER,
-      airFMStatusModuleSupplyTempC         INTEGER,
-      airFMStatusModuleSupplyTempF         INTEGER,
-      airFMStatusModuleSupplyHum           INTEGER,
-      airFMStatusModuleReturnTempC         INTEGER, 
-      airFMStatusModuleReturnTempF         INTEGER, 
-      airFMStatusModuleReturnHum           INTEGER
-   }
-   
-airFMStatusModuleIndex OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index of the module information."
-   ::= { airFMStatusModuleEntry 1 }
-
-airFMStatusModuleOutputCapacity OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module output capacity in kilowatts."
-   ::= { airFMStatusModuleEntry 2 }
-   
-airFMStatusModuleSupplyTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module supply air temperature in 
-       tenths of degrees Celsius. "
-   ::= { airFMStatusModuleEntry 3 }
-   
-airFMStatusModuleSupplyTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module supply air temperature in 
-       tenths of degrees Fahrenheit. "
-   ::= { airFMStatusModuleEntry 4 }
-   
-airFMStatusModuleSupplyHum OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module supply air humidity. "
-   ::= { airFMStatusModuleEntry 5 }
-   
-airFMStatusModuleReturnTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module return air temperature in 
-       tenths of degrees Celsius. "
-   ::= { airFMStatusModuleEntry 6 }
-   
-airFMStatusModuleReturnTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module return air temperature in 
-       tenths of degrees Fahrenheit. "
-   ::= { airFMStatusModuleEntry 7 }
-   
-airFMStatusModuleReturnHum OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The module return air humidity. "
-   ::= { airFMStatusModuleEntry 8 }
-   
--- airFM AIR CONDITIONER GROUP DATA
-
-airFMGroupSysStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-        statusOnLine    (1),
-        statusIdle      (2),
-        statusLoadShare (3),
-        statusOffLine   (4),
-        statusFailed    (5)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of this system within the group. "
-   ::= { airFMGroup 1 }
-   
-airFMGroupSysRuntime OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The number of hours the system has been running. "
-   ::= { airFMGroup 2 }
-
-airFMGroupSysRole OBJECT-TYPE
-   SYNTAX INTEGER {
-        rolePrimary     (1),
-        roleBackup      (2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The role of this system within the group. "
-   ::= { airFMGroup 3 }
-
--- airPA Portable Air Conditioner Ident
-
-airPAIdentName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the device name. "
-   ::= { airPAIdent 1 }
-   
-airPAModelNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the device model number. "
-   ::= { airPAIdent 2 }
-   
-airPADateOfManufacture OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying when the device was produced. "
-   ::= { airPAIdent 3 }
-   
-airPASerialNumber OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the device serial number. "
-   ::= { airPAIdent 4 }
-
-airPAFirmwareRevision OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the device firmware revision. "
-   ::= { airPAIdent 5 }
-
-airPAHardwareRevision OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the device hardware revision. "
-   ::= { airPAIdent 6 }
-
--- airPA Portable Air Conditioner Status
-
-airPASystemPower OBJECT-TYPE
-   SYNTAX INTEGER   {
-      powerON   (1),
-      powerOFF  (2)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The status of the unit's system power setting.
-      
-        ON(1)   The system power is turned on.
-        OFF(2)  The system power is turned off. "
-   ::= { airPAStatus 1 }
-
-airPAOperatingMode OBJECT-TYPE
-   SYNTAX INTEGER   {
-      modeOFF       (1),
-      modeVENTING   (2),
-      modeCOOLING   (3)
-   }    
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The current operating mode of the unit.
-
-        OFF(1)      The system is off.
-        VENTING(2)  The system's venting function is active.
-        COOLING(3)  The system's cooling function is active. "
-   ::= { airPAStatus 2 }
-
-airPASetpointTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature setpoint in Fahrenheit to which the unit is controlling. "
-   ::= { airPAStatus 3 }
-
-airPASetpointTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature setpoint in Celsius to which the unity is controlling. "
-   ::= { airPAStatus 4 }
-
-airPABlowerSpeed OBJECT-TYPE
-   SYNTAX INTEGER   {
-        speedLOW    (1),
-        speedHIGH   (2)
-    }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The unit's blower speed setting.
-
-        LOW(1)      The blower speed is low.
-        HIGH(2)     The blower speed is high. "
-   ::= { airPAStatus 5 }
-
-airPACompressor OBJECT-TYPE
-   SYNTAX INTEGER   {
-        statusON    (1),
-        statusOFF   (2)
-    }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The unit's compressor status.
-
-        ON(1)   The compressor is turned on.
-        OFF(2)  The compressor is turned off. "
-   ::= { airPAStatus 6 }
-
-airPACondenserFan OBJECT-TYPE
-   SYNTAX INTEGER   {
-        statusON    (1),
-        statusOFF   (2)
-    }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The unit's condenser fan status.
-
-        ON(1)   The condenser fan is turned on.
-        OFF(2)  The condenser fan is turned off. "
-   ::= { airPAStatus 7 }
-
-airPACondensatePump OBJECT-TYPE
-   SYNTAX INTEGER   {
-        statusON    (1),
-        statusOFF   (2)
-    }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The unit's condensate pump status.
-      
-        ON(1)   The condensate pump is turned on.
-        OFF(2)  The condensate pump is turned off. "
-   ::= { airPAStatus 8 }
-
-airPASupplyTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The supply temperature in degrees Fahrenheit. "
-   ::= { airPAStatus 9 }
-
-airPASupplyTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The supply temperature in degrees Celsius. "
-   ::= { airPAStatus 10 }
-
-airPAReturnTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The return temperature in degrees Fahrenheit. "
-   ::= { airPAStatus 11 }
-
-airPAReturnTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The return temperature in degrees Celsius. "
-   ::= { airPAStatus 12 }
-
-airPARemoteTempF OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The remote temperature in degrees Fahrenheit. "
-   ::= { airPAStatus 13 }
-
-airPARemoteTempC OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The remote temperature in degrees Celsius. "
-   ::= { airPAStatus 14 }
-
-airPARemoteHumidity OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The remote humidity. "
-   ::= { airPAStatus 15 }
-
---  RACK AIR REMOVAL UNIT IDENT
-
-rARUIdentTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF IdentRARUEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for query of the individual devices. 
-       The number of entries is contained in the 
-       rARUStatusAruDeviceCount OID."
-   ::= { rARUIdent 1 }
-
-rARUIdentEntry OBJECT-TYPE
-   SYNTAX IdentRARUEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The device to query."
-   INDEX  { rARUIdentIndex}
-   ::= { rARUIdentTable 1 }
-
-IdentRARUEntry ::=
-   SEQUENCE {
-      rARUIdentIndex                 INTEGER,
-      rARUIdentName                  DisplayString
-   }      
-
-rARUIdentIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the device entry."
-   ::= { rARUIdentEntry 1 }
-
-rARUIdentName OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "A character string identifying the 
-       device. "
-   ::= { rARUIdentEntry 2 }
-
-
--- RACK AIR REMOVAL UNIT CONFIGURATION
-
-rARUConfigTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF ConfigRARUEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for configuration of individual ARUs. The number of
-       entries is contained in the rARUStatusAruDeviceCount OID."
-   ::= { rARUConfig 1 }
-
-rARUConfigEntry OBJECT-TYPE
-   SYNTAX ConfigRARUEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The ARUs to configure."
-   INDEX  { rARUConfigAruIndex }
-   ::= { rARUConfigTable 1 }
-
-ConfigRARUEntry ::=
-   SEQUENCE {
-      rARUConfigAruIndex                  INTEGER,
-      rARUConfigAruName                   DisplayString,
-      rARUConfigAruRemoteSetpoint         INTEGER,
-      rARUConfigAruTempOvrdEnableDisable  INTEGER,
-      rARUConfigAruTempOvrdSetpoint       INTEGER
-   }      
-
-rARUConfigAruIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the device entry."
-   ::= { rARUConfigEntry 1 }
-   
-rARUConfigAruName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-write
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the ARU."
-   ::= { rARUConfigEntry 2 }
-
-rARUConfigAruRemoteSetpoint OBJECT-TYPE
-   SYNTAX INTEGER       {
-      aruOff          (1),
-      aru85F-29C      (2),
-      aru90F-32C      (3),
-      aru95F-35C      (4),
-      aru100F-38C     (5),
-      aru7kW          (6),
-      aru5kW          (7),
-      aru3kW          (8),
-      aru2kW          (9)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID is the Remote setpoint of the ARU.
-       NOTE: -1 will be returned if the ARU is not communicating."
-
-   ::= { rARUConfigEntry 3 }
-
-rARUConfigAruTempOvrdEnableDisable OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID is used to enable/disable the remote temperature override setting of the ARU.
-  
-       If this OID is set to 1, the remote setting for temperature override is disabled.
-       If this OID is set to 2, the remote setting for temperature override is enabled."
-   ::= { rARUConfigEntry 4 }
-
-rARUConfigAruTempOvrdSetpoint OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-write
-   STATUS mandatory
-   DESCRIPTION
-      "This OID is the Temperature Override setpoint of the ARU.
-       NOTE: -1 will be returned if the ARU is not communicating."
-
-   ::= { rARUConfigEntry 5 }
-   
--- RACK AIR REMOVAL UNIT STATUS
-
-rARUStatusAruDeviceCount OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The total number of ARUs accessible from this IP."
-   ::= { rARUStatus 1 }
-
-rARUStatusSysTempUnits OBJECT-TYPE
-   SYNTAX INTEGER {
-      celsius(1),
-      fahrenheit(2)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The temperature scale used to display the temperature
-       in the system, Celsius(1) or Fahrenheit(2).
-       This setting is based on the system preferences
-       configuration in the agent."
-   ::= { rARUStatus 2 }
-
-rARUStatusTable OBJECT-TYPE
-   SYNTAX SEQUENCE OF StatusRARUEntry
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "Allows for access of individual ARUs. The number of
-       entries is contained in the rARUStatusAruDeviceCount OID."
-   ::= { rARUStatus 3 }
-
-rARUStatusEntry OBJECT-TYPE
-   SYNTAX StatusRARUEntry  
-   ACCESS not-accessible
-   STATUS mandatory
-   DESCRIPTION
-      "The ARUs to access."
-   INDEX  { rARUStatusAruIndex }
-   ::= { rARUStatusTable 1 }
-
-StatusRARUEntry ::=
-   SEQUENCE {
-      rARUStatusAruIndex                 INTEGER,
-      rARUStatusAruName                  DisplayString,
-      rARUStatusAruRemoteSetpoint        INTEGER,      
-      rARUStatusAruManualSetpoint        INTEGER,      
-      rARUStatusAruTemp1                 INTEGER,      
-      rARUStatusAruTemp2                 INTEGER,      
-      rARUStatusAruTemp3                 INTEGER,      
-      rARUStatusAruTempOvrdEnableDisable INTEGER,      
-      rARUStatusAruTempOvrdSetpoint      INTEGER,      
-      rARUStatusAruAlarmState            DisplayString,
-      rARUStatusAruCommStatus            INTEGER
-   }
-
-rARUStatusAruIndex OBJECT-TYPE
-   SYNTAX INTEGER 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The index to the ARU entry."
-   ::= { rARUStatusEntry 1 }
-   
-rARUStatusAruName   OBJECT-TYPE
-   SYNTAX  DisplayString 
-   ACCESS  read-only
-   STATUS  mandatory
-   DESCRIPTION
-      "The name of the ARU."
-   ::= { rARUStatusEntry 2 }
-
-rARUStatusAruRemoteSetpoint OBJECT-TYPE
-   SYNTAX INTEGER       {
-      aruOff          (1),
-      aru85F-29C      (2),
-      aru90F-32C      (3),
-      aru95F-35C      (4),
-      aru100F-38C     (5),
-      aru7kW          (6),
-      aru5kW          (7),
-      aru3kW          (8),
-      aru2kW          (9)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "ARU remote setpoint temperature setting.
-
-      NOTE: -1 will be returned if the ARU is not communicating.
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { rARUStatusEntry 3 }
-
-rARUStatusAruManualSetpoint OBJECT-TYPE
-   SYNTAX INTEGER       {
-      aruOff          (1),
-      aru85F-29C      (2),
-      aru90F-32C      (3),
-      aru95F-35C      (4),
-      aru100F-38C     (5),
-      aru7kW          (6),
-      aru5kW          (7),
-      aru3kW          (8),
-      aru2kW          (9),
-      aruRem          (10)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "ARU manual setpoint temperature setting. 
-
-      NOTE: -1 will be returned if the ARU is not communicating.
-
-      Values are represented in whole number degrees.
-      If the manual setpoint is set to Remote, this OID will return 0.
-      Units are displayed in the scale shown in
-      the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { rARUStatusEntry 4 }
-
-rARUStatusAruTemp1 OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "ARU temperature probe #1 reading. 
-
-      NOTE: -1 will be returned if the ARU is not communicating.
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { rARUStatusEntry 5 }
-
-rARUStatusAruTemp2 OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "ARU temperature probe #2 reading. 
-
-      NOTE: -1 will be returned if the ARU is not communicating.
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { rARUStatusEntry 6 }
-
-rARUStatusAruTemp3 OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "ARU temperature probe #3 reading. 
-
-      NOTE: -1 will be returned if the ARU is not communicating.
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { rARUStatusEntry 7 }
-
-rARUStatusAruTempOvrdEnableDisable OBJECT-TYPE
-   SYNTAX INTEGER       {
-      disabled(1),
-      enabled(2)
-   }
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "This OID indicates whether the ARU remote temperature override is enabled or disabled.
-       If this OID is a 1, the remote setting for temperature override is disabled.
-       If this OID is a 2, the remote setting for temperature override is enabled."
-   ::= { rARUStatusEntry 8 }
-
-rARUStatusAruTempOvrdSetpoint OBJECT-TYPE
-   SYNTAX INTEGER
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "ARU remote temperature override setpoint setting. 
-
-      NOTE: -1 will be returned if the ARU is not communicating.
-
-      Values are represented in whole number degrees.
-      Units are displayed in the scale shown in
-      the rARUStatusSysTempUnits OID (Celsius or Fahrenheit)."
-   ::= { rARUStatusEntry 9 }
-
-rARUStatusAruAlarmState OBJECT-TYPE
-   SYNTAX DisplayString
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "An ASCII string containing the 8 flags representing
-       the current alarm state of the ARU. If the state of 
-       the ARU is unknown, this variable is set to ‘UNKNOWN’.
-
-       The flags are numbered 1 to 8, read from left to
-       right. The flags are defined as follows:
-       
-       Flag  1: Fan Fail 1
-       Flag  2: Fan Fail 2
-       Flag  3: Fan Fail 3
-       Flag  4: Smoke
-            
-       Flag  5: High Temp (Out of Thermal Control)
-       Flag  6: Over Temp (Exhaust Temp. Exceeds Override Setpoint)
-       Flag  7: Reserved
-       Flag  8: Reserved"
-   ::= { rARUStatusEntry 10 }
-
-rARUStatusAruCommStatus OBJECT-TYPE
-   SYNTAX INTEGER {
-      commsNeverDiscovered(1),
-      commsEstablished(2),
-      commsLost(3)
-   } 
-   ACCESS read-only
-   STATUS mandatory
-   DESCRIPTION
-      "The state of communications to the device.
-      commNeverDiscovered(1) indicates there has never been communications with this device.
-      commsEstablished(2) indicates communication is normal and active with this device.
-      commsLost(3) indicates communication had been established, but is no device."
-   ::= { rARUStatusEntry 11 }
-
--- Traps
--- Annotations are provided for Novell's NMS product
---
--- Each trap has at least one variable (mtrapargsString) which always appears
--- as the last variable in the list. This variable contains either a static
--- or dynamically-constructed string which provides an enhanced description of
--- the trap's purpose and any pertinent information about the trap.
-
-communicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Communication to the UPS has been lost.  Steps
-        to reestablish communication are in progress."
-   --#TYPE "APC UPS: Communication lost"
-   --#SUMMARY "Communication lost between the agent and the UPS."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 1
-
-upsOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The UPS has sensed a load greater than 100 percent
-       of its rated capacity."
-   --#TYPE "APC UPS: Overload"
-   --#SUMMARY "The UPS has sensed a load greater than 100 percent of its rated capacity."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 2
-
-upsDiagnosticsFailed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The UPS failed its internal diagnostic self-test."
-   --#TYPE "APC UPS: Failed self-test"
-   --#SUMMARY "The UPS has failed its internal self-test."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 3
-
-upsDischarged TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The UPS batteries are discharged; if utility power fails
-       an immediate low battery condition will exist.  Sufficient runtime 
-       for necessary action cannot be guaranteed."
-   --#TYPE "APC UPS: batteries are discharged"
-   --#SUMMARY "The UPS batteries are discharged."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 4
-
-upsOnBattery TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The UPS has switched to battery backup power."
-   --#TYPE "APC UPS: On battery"
-   --#SUMMARY "The UPS has switched to battery backup power."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 5
-
-smartBoostOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The UPS has enabled SmartBoost(TM)."
-   --#TYPE "APC UPS: SmartBoost(TM)"
-   --#SUMMARY "The UPS has enabled SmartBoost(TM); low incoming line voltage."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 6
-
-lowBattery TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The UPS batteries are low and will soon be exhausted.
-       If utility power is not restored the UPS will put itself 
-       to 'sleep' and immediately cut power to the load."
-   --#TYPE "APC UPS: Low battery"
-   --#SUMMARY "The UPS system's batteries are low and will soon be exhausted."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 7
-
-communicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communication with the UPS has been established."
-   --#TYPE "APC UPS: Communication established"
-   --#SUMMARY "UPS communication has been established."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 8
-
-powerRestored TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Utility power has been restored."
-   --#TYPE "APC UPS: Utility power restored"
-   --#SUMMARY "Returned from battery backup power; utility power restored."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 9
-
-upsDiagnosticsPassed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The UPS passed its internal self-test."
-   --#TYPE "APC UPS: Passed self-test"
-   --#SUMMARY "The UPS passed internal self-test."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 10
-
-returnFromLowBattery TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The UPS has returned from a low battery
-       condition."
-   --#TYPE "APC UPS: Returned from Low-Battery condition"
-   --#SUMMARY "The UPS has returned from a Low-Battery condition."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 11
-
-upsTurnedOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The UPS has been turned 'off' by the management station."
-   --#TYPE "APC UPS: Turned off"
-   --#SUMMARY "The UPS has been switched off by a management station."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 12
-
-upsSleeping   TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The UPS is entering 'sleep' mode.  Power 
-       to the load will be cut off."
-   --#TYPE "APC UPS: Entered sleep mode"
-   --#SUMMARY "The UPS entered sleep mode. Power to the load will be cut off."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 13
-
-upsWokeUp TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATION: The UPS has returned from 'sleep' mode.  Power 
-       to the load has been restored."
-   --#TYPE "APC UPS: Wake up"
-   --#SUMMARY "The UPS has returned from sleep mode. Power to the load has been restored."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 14
-
-upsRebootStarted TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The UPS has started its reboot sequence.
-       The UPS will reboot itself at this time."
-   --#TYPE "APC UPS: Starting reboot"
-   --#SUMMARY "The UPS has started its reboot sequence."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 15 
-
-upsDipSwitchChanged TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The dip switch settings on the UPS have been
-       changed, possibly altering UPS performance."
-   --#TYPE "APC UPS: DIP switch altered"
-   --#SUMMARY "The DIP switch settings on the UPS have been changed."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 16
-
-upsBatteryNeedsReplacement TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The batteries of the UPS need immediate replacement." 
-   --#TYPE "APC UPS: UPS batteries need replacement"
-   --#SUMMARY "The UPS batteries require immediate replacement."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 17
-
-
--- the Environmental Monitor traps
-
-contactFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: One of the contacts on the Environmental Monitor has 
-       changed from its default position. The first variable is
-       the contact number that is faulted."
-   --#TYPE "APC Environment: Contact fault"
-   --#SUMMARY "An Environment contact closure has faulted."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 18
-
-contactFaultResolved TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A fault on one of the Environmental Monitor contacts
-       has been resolved. The first variable is
-       the contact number that has been resolved."
-   --#TYPE "APC Environment: Contact fault cleared."
-   --#SUMMARY "A Environment contact closure has returned to it's default state."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 19
-
--- the Matrix-UPS traps
-
-hardwareFailureBypass TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: UPS on bypass due to internal fault"
-   --#TYPE "APC UPS: On bypass due to internal fault"
-   --#SUMMARY "The UPS is on bypass due to an internal fault."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 20
-
-softwareBypass TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: UPS on bypass - user set via software or panel"
-   --#TYPE "APC UPS: On bypass by user via software or panel"
-   --#SUMMARY "UPS put on bypass by user via software or front UPS panel."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 21
-
-switchedBypass TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: UPS on bypass - initiated by user"
-   --#TYPE "APC UPS: On bypass initiated by user"
-   --#SUMMARY "UPS put on bypass by user."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 22
-
-returnFromBypass TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: UPS has returned from bypass"
-   --#TYPE "APC UPS: UPS has returned from bypass"
-   --#SUMMARY "The UPS has returned from bypass mode."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 23
-
-bypassPowerSupplyFailure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Base module bypass power supply needs repair"
-   --#TYPE "APC UPS: Base module bypass power supply needs repair"
-   --#SUMMARY "The base module bypass power supply needs repair."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 24
-
-baseFanFailure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Base module fan needs repair"
-   --#TYPE "APC UPS: Base module fan needs repair"
-   --#SUMMARY "The base module fan needs repair."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 25
-
-batteryPackCommLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Check installation of external battery packs signal cable"
-   --#TYPE "APC UPS: Communication lost with battery packs"
-   --#SUMMARY "Communication lost with external battery packs, check battery signal cable."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 26
-
-batteryPackCommEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: UPS is communicating with the external battery packs."
-   --#TYPE "APC UPS: Communication established with battery packs"
-   --#SUMMARY "Communication established with external battery packs."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 27
-
-calibrationStart TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A battery calibration test has been initiated on the UPS."
-   --#TYPE "APC UPS: Calibration initiated"
-   --#SUMMARY "A battery run time calibration test has been initiated."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 28
-
--- Misc. Traps
-
-restartAgent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Agent restarting as commanded by manager."
-   --#TYPE "APC SNMP Agent: Agent restarting"
-   --#SUMMARY "Agent restarting as commanded by manager."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 29
-
-upsTurnedOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A UPS is turned on."
-   --#TYPE "APC UPS: A UPS is turned on."
-   --#SUMMARY " A UPS is turned on."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 30
-
-smartAvrReducing TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The UPS is reducing the line voltage via SmartTrim(TM)."
-   --#TYPE "APC UPS: SmartTrim(TM) reducing"
-   --#SUMMARY "The UPS has enabled SmartTrim(TM) voltage reduction."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 31
-
-codeAuthenticationDone TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES   { mconfigTFTPServerIP, newCodeAuthentViaTFTP }
-   DESCRIPTION
-      "INFORMATIONAL: Authentication on agent code image is done."
-   --#TYPE "APC CODE: Authentication on agent code image is done."
-   --#SUMMARY "Authentication on agent code image is done."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 32
-
-upsOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The overload condition has been cleared."
-   --#TYPE "APC UPS: Overload cleared."
-   --#SUMMARY "The overload condition has been cleared. ."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 33
-
-smartBoostOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The UPS has returned from SmartBoost(TM)."
-   --#TYPE "APC UPS: SmartBoost(TM) off."
-   --#SUMMARY "The UPS has returned from SmartBoost(TM)."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 34
-
-smartAvrReducingOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The UPS has returned from SmartTrim(TM)."
-   --#TYPE "APC UPS: SmartTrim(TM) reducing off"
-   --#SUMMARY "The UPS has returned from SmartTrim(TM) voltage reduction."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 35
-   
-upsBatteryReplaced TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A bad battery fault has been cleared."
-   --#TYPE "APC UPS: Bad battery replaced"
-   --#SUMMARY "The UPS has returned from a bad battery fault."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 36
-
-calibrationEnd TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The UPS has finished calibrating."
-   --#TYPE "APC UPS: Calibration end"
-   --#SUMMARY "The UPS has finished calibrating"
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 37
-
-dischargeCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A UPS discharge condition has been cleared."
-   --#TYPE "APC UPS: Discharge cleared."
-   --#SUMMARY "The UPS discharge condition has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 38
-
-gracefullShutdown TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A graceful shutdown has been initiated."
-   --#TYPE "APC UPS: A graceful shutdown has been initiated."
-   --#SUMMARY "A graceful shutdown has been initiated."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 39
-
-   
-outletOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUOutletControlIndex }
-   DESCRIPTION
-       "WARNING: The specified PDU outlet has turned on.
-       If sPDUOutletControlIndex equals zero, then all outlets have 
-       turned on."
-   --#TYPE "APC PDU: Outlet has been turned on."
-   --#SUMMARY "Outlet has been turned on"
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 41
-   
-
-outletOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUOutletControlIndex }
-   DESCRIPTION
-       "WARNING: The specified PDU outlet has turned off.
-       If sPDUOutletControlIndex equals zero, then all outlets 
-       have turned off."
-   --#TYPE "APC PDU: Outlet has turned off."
-   --#SUMMARY "Outlet has turned off."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 42
-   
-outletReboot TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUOutletControlIndex }
-   DESCRIPTION
-       "WARNING: The specified PDU outlet has rebooted.
-       If sPDUOutletControlIndex equals zero, then all outlets 
-       have rebooted."
-   --#TYPE "APC PDU: Outlet has rebooted."
-   --#SUMMARY "Outlet has rebooted."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 43
-
-configChangeSNMP TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The SNMP configuration has been changed."
-   --#TYPE "APC: The SNMP configuration has been changed."
-   --#SUMMARY "The SNMP configuration has been changed."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 44
-   
-   
-configChangeOutlet TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUOutletConfigIndex }
-   DESCRIPTION
-       "WARNING: The specified PDU outlet has changed configuration.
-       If sPDUOutletConfigIndex equals zero, then the Master outlet 
-       has changed configuration."
-   --#TYPE "APC PDU: Outlet configuration has been changed."
-   --#SUMMARY "Outlet configuration has been changed."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 45
-
-accessViolationConsole TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: Someone has attempted to login via the console with the incorrect password."
-   --#TYPE "APC: Access violation via the console."
-   --#SUMMARY "Three unsuccessful logins have been attempted via the console."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 46
-
-accessViolationHTTP TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: Someone has attempted to login via HTTP with the incorrect password."
-   --#TYPE "APC: Access violation via HTTP."
-   --#SUMMARY "An unsuccessful attempt to login via HTTP."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 47
-   
-passwordChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The password for the device has been changed."
-   --#TYPE "APC: Password change for the device."
-   --#SUMMARY "Someone has changed the password on the device."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 48
-
-badVoltage TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The output voltage is not within acceptable range."
-   --#TYPE "APC UPS: Bad output voltage."
-   --#SUMMARY "The output voltage is not within acceptable range."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 49
-   
-badVoltageCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The output voltage has returned to an acceptable level."
-   --#TYPE "APC UPS: The bad voltage output condition has been cleared."
-   --#SUMMARY "The output voltage has returned to an acceptable level."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 50
-   
-chargerFailure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The battery charger has failed."
-   --#TYPE "APC UPS: The battery charger has failed."
-   --#SUMMARY "The battery charger has failed."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 51
-
-chargerFailureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The battery charger failure condition has been cleared."
-   --#TYPE "APC UPS: The battery charger failure condition cleared"
-   --#SUMMARY "The battery charger failure condition has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 52
-
-batteryOverTemperature TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The battery temperature threshold has been violated."
-   --#TYPE "APC UPS: The battery temperature threshold has been violated."
-   --#SUMMARY "The battery temperature threshold has been violated."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 53
-
-batteryOverTemperatureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The battery over temperature has been cleared."
-   --#TYPE "APC UPS: The battery over temperature has been cleared."
-   --#SUMMARY "The battery over temperature has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 54
-   
- smartRelayFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: SmartBoost(TM) or SmartTrim(TM) relay fault."
-   --#TYPE "APC UPS: SmartBoost(TM) or SmartTrim(TM) relay fault."
-   --#SUMMARY "SmartBoost(TM) or SmartTrim(TM) relay fault."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 55
-
-smartRelayFaultCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
-   --#TYPE "APC UPS: SmartBoost(TM) or SmartTrim(TM) relay fault cleared."
-   --#SUMMARY "SmartBoost(TM) or SmartTrim(TM) relay fault has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 56
-   
-humidityThresholdViolation1 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Probe 1 humidity threshold violated. The
-       first variable is the current humidity."
-   --#TYPE "APC Environmental Monitor: Probe 1 humidity threshold violation"
-   --#SUMMARY "A humidity threshold has been violated on probe 1."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 57
-
-humidityThresholdViolationCleared1 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Environmental Monitor humidity threshold violation has been cleared on probe 1."
-   --#TYPE "APC Environmental Monitor: Probe 1 humidity violation cleared"
-   --#SUMMARY "A humidity threshold violation has been cleared on probe 1."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 58
-
-temperatureThresholdViolation1 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: An Environmental Monitor temperature threshold has been violated on probe 1.
-      The first variable is the current temperature."
-   --#TYPE "APC Environmental Monitor: Probe 1 temperature violation"
-   --#SUMMARY "A temperature threshold has been violated on probe 1."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 59
-   
-temperatureThresholdViolationCleared1 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Environmental Monitor temperature threshold violation has been cleared on probe 1."
-   --#TYPE "APC Environmental Monitor: Probe 1 temperature violation cleared"
-   --#SUMMARY "A temperature threshold violation has been cleared on probe 1."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 60
-   
-humidityThresholdViolation2 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: An Environmental Monitor humidity threshold has been violated on probe 2.
-      The first variable is the current humidity."
-   --#TYPE "APC Environmental Monitor: Probe 2 humidity violation"
-   --#SUMMARY "A humidity threshold has been violated on probe 2."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 61
-   
-humidityThresholdViolationCleared2 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Environmental Monitor humidity threshold violation has been cleared on probe 2."
-   --#TYPE "APC Environmental Monitor: Probe 2 humidity violation cleared"
-   --#SUMMARY "A humidity threshold violation has been cleared on probe 2."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 62
-
-temperatureThresholdViolation2 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: An Environmental Monitor temperature threshold has been violated on probe 2.
-       The first variable is the current temperature."
-   --#TYPE "APC Environmental Monitor: Probe 2 temperature violation"
-   --#SUMMARY "A temperature threshold has been violated on probe 2."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 63
-   
-temperatureThresholdViolationCleared2 TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Environmental Monitor temperature threshold violation has been cleared on probe 2."
-   --#TYPE "APC Environmental Monitor: Probe 2 temperature violation cleared"
-   --#SUMMARY "A temperature threshold violation has been cleared on probe 2."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 64
-
-mupsCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communication with the Environmental Monitor has been established."
-   --#TYPE "APC Environmental Monitor: Communication established"
-   --#SUMMARY "Communication established between the agent and the Environmental Monitor."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 65
-
-mupsCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Communication to the Environmental Monitor has been lost.  Steps
-        to reestablish communication are in progress."
-   --#TYPE "APC Environmental Monitor: Communication failure"
-   --#SUMMARY "Communication lost between the agent and the Environmental Monitor."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 66
-
-batteryIncrease TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The number of batteries has increased."
-   --#TYPE "APC UPS: The number of batteries has increased."
-   --#SUMMARY "The number of batteries has increased."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 67
-   
-batteryDecrease TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The number of batteries has decreased."
-   --#TYPE "APC UPS: The number of batteries has decreased."
-   --#SUMMARY "The number of batteries has decreased."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 68
-   
-powerModuleIncrease TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The number of power modules has increased."
-   --#TYPE "APC UPS: The number of power modules has increased."
-   --#SUMMARY "The number of power modules has increased."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 69
-
-powerModuleDecrease TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The number of power modules has decreased."
-   --#TYPE "APC UPS: The number of power modules has decreased."
-   --#SUMMARY "The number of power modules has decreased."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 70
-   
-intelligenceModuleInserted TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An intelligence module has been inserted."
-   --#TYPE "APC UPS: An intelligence module has been inserted."
-   --#SUMMARY "An intelligence module has been inserted."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 71
-
-intelligenceModuleRemoved TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An intelligence module has been removed."
-   --#TYPE "APC UPS: An intelligence module has been removed."
-   --#SUMMARY "An intelligence module has been removed."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 72
-   
-rintelligenceModuleInserted TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A redundant intelligence module has been inserted."
-   --#TYPE "APC UPS: A redundant intelligence module has been inserted."
-   --#SUMMARY "A redundant intelligence module has been inserted."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 73
-
-rintelligenceModuleRemoved TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A redundant intelligence module has been removed."
-   --#TYPE "APC UPS: A redundant intelligence module has been removed."
-   --#SUMMARY "A redundant intelligence module has been removed."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 74
-   
-extBatteryFrameIncease TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An external battery frame has been added."
-   --#TYPE "APC UPS: An external battery frame has been added."
-   --#SUMMARY "An external battery frame has been added."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 75
-
-extBatteryFrameDecrease TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An external battery frame has been removed."
-   --#TYPE "APC UPS: An external battery frame has been removed."
-   --#SUMMARY "An external battery frame has been removed."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 76
-   
-abnormalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: An abnormal condition has been detected.
-       The first variable is the fault condition."
-   --#TYPE "APC: An abnormal condition has been detected."
-   --#SUMMARY "An abnormal condition has been detected."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 77
-
-abnormalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An abnormal condition has been cleared.
-      The first variable is the fault condition."
-   --#TYPE "APC: An abnormal condition has been cleared."
-   --#SUMMARY "An abnormal condition has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 78
-
-deviceStatusChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString}
-   DESCRIPTION
-      "INFORMATIONAL: The status of the device being monitored has changed."
-   --#TYPE "APC : The status of the device being monitored has changed."
-   --#SUMMARY "The status of the device being monitored has changed."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 79
-   
-noBatteries TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The UPS has no batteries attached."
-   --#TYPE "APC UPS: No batteries attached."
-   --#SUMMARY "The UPS has no batteries attached."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 80
-   
-noBatteriesCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The UPS's batteries have been attached."
-   --#TYPE "APC UPS: The no batteries attached condition has been cleared."
-   --#SUMMARY "The UPS's batteries have been attached."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 81
-   
-userAdded TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A new user has been added."
-   --#TYPE "APC: A new user has been added."
-   --#SUMMARY "A new user has been added."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 82
-
-userDeleted TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A user has been deleted."
-   --#TYPE "APC: A user has been deleted."
-   --#SUMMARY "A user has been deleted."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 83
-
-userModified TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A user has been modified."
-   --#TYPE "APC: A user has been modified."
-   --#SUMMARY "A user has been modified."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 84
-
--- MasterSwitch Vm Traps
-
-msvmCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communications with the MasterSwitch VM has been established."
-   --#TYPE "APC: Communications established with the MasterSwitch VM."
-   --#SUMMARY "Communications with the MasterSwitch VM has been established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 85
-
-msvmCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communications with the MasterSwitch VM has been lost."
-   --#TYPE "APC: Communications lost with the MasterSwitch VM."
-   --#SUMMARY "Communications with the MasterSwitch VM has been lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 86
-
-msvmOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The MasterSwitch VM in an overload condition."
-   --#TYPE "APC: The MasterSwitch VM is near or at an overload condition."
-   --#SUMMARY "The MasterSwitch VM is near or at an overload condition."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 87
-
-msvmOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The overload condition on the MasterSwitch VM has been cleared."
-   --#TYPE "APC: The overload condition cleared on the MasterSwitch VM."
-   --#SUMMARY "The overload condition on the MasterSwitch VM has been cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 88
-
-msvmOutletOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, 
-               sPDUOutletControlVMOutletIndex, sPDUOutletControlVMOutletName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on the MasterSwitch VM has turned on."
-   --#TYPE "APC: An outlet on the MasterSwitch VM has turned on."
-   --#SUMMARY "An outlet on the MasterSwitch VM has turned on."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 89
-
-msvmOutletOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, 
-               sPDUOutletControlVMOutletIndex, sPDUOutletControlVMOutletName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on the MasterSwitch VM has turned off."
-   --#TYPE "APC: An outlet on the MasterSwitch VM has turned off."
-   --#SUMMARY "An outlet on the MasterSwitch VM has turned off."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 90
-
-msvmDeviceConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A device configuration change has been made on a MasterSwitch VM."
-   --#TYPE "APC: A device configuration change on a MasterSwitch VM."
-   --#SUMMARY "A device configuration change has been made on a MasterSwitch VM."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 91
-
-msvmOutletConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, 
-               sPDUOutletControlVMOutletIndex, sPDUOutletControlVMOutletName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet configuration change has been made on a MasterSwitch VM."
-   --#TYPE "APC: An outlet configuration change on a MasterSwitch VM."
-   --#SUMMARY "An outlet configuration change has been made on a MasterSwitch VM."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 92
-
-msvmLowLoad TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The MasterSwitch VM has violated the low load threshold."
-   --#TYPE "APC: The MasterSwitch VM has violated the low load threshold."
-   --#SUMMARY "The MasterSwitch VM has violated the low load threshold."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 93
-
-msvmLowLoadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The low load condition on the MasterSwitch VM has been cleared."
-   --#TYPE "APC: The low load condition cleared on the MasterSwitch VM."
-   --#SUMMARY "The low load condition on the MasterSwitch VM has been cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 94
-
-msvmNearOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The MasterSwitch VM is approaching an overload condition."
-   --#TYPE "APC: The MasterSwitch VM is near or at an overload condition."
-   --#SUMMARY "The MasterSwitch VM is near or at an overload condition."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 95
-
-msvmNearOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The near overload condition on the MasterSwitch VM has been cleared."
-   --#TYPE "APC: The overload condition cleared on the MasterSwitch VM."
-   --#SUMMARY "The overload condition on the MasterSwitch VM has been cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 96
-
-msvmPowerSupplyStatusChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlVMIndex, sPDUMasterControlVMName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The power supply status of the MasterSwitch VM has changed."
-   --#TYPE "APC: The power supply status changed on MasterSwitch VM"
-   --#SUMMARY "The power supply status of the MasterSwitch VM has changed."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 97
-
--- MasterSwitch plus (MSP) Traps
-
-mspCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communications with the MasterSwitch plus has been established."
-   --#TYPE "APC: Communications established with the MasterSwitch plus."
-   --#SUMMARY "Communications with the MasterSwitch plus has been established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 98
-
-mspCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communications with the MasterSwitch plus has been lost."
-   --#TYPE "APC: Communications lost with the MasterSwitch plus."
-   --#SUMMARY "Communications with the MasterSwitch plus has been lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 99
-
-mspOutletOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, 
-               sPDUOutletControlMSPOutletIndex, sPDUOutletControlMSPOutletName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on the MasterSwitch plus has turned on."
-   --#TYPE "APC: An outlet on the MasterSwitch plus has turned on."
-   --#SUMMARY "An outlet on the MasterSwitch plus has turned on."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 100
-
-mspOutletOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, 
-               sPDUOutletControlMSPOutletIndex, sPDUOutletControlMSPOutletName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on the MasterSwitch plus has turned off."
-   --#TYPE "APC: An outlet on the MasterSwitch plus has turned off."
-   --#SUMMARY "An outlet on the MasterSwitch plus has turned off."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 101
-
-mspDeviceConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A device configuration change has been made on a MasterSwitch plus."
-   --#TYPE "APC: A device configuration change on a MasterSwitch plus."
-   --#SUMMARY "A device configuration change has been made on a MasterSwitch plus."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 102
-
-mspOutletConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { sPDUMasterControlMSPIndex, sPDUMasterControlMSPName, sPDUOutletControlMSPOutletIndex, sPDUOutletControlMSPOutletName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet configuration change has been made on a MasterSwitch plus."
-   --#TYPE "APC: An outlet configuration change on a MasterSwitch plus."
-   --#SUMMARY "An outlet configuration change has been made on a MasterSwitch plus."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 103
-
-rsSourceSwitched TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger02, mtrapargsString03, mtrapargsInteger, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The Redundant Switch has switched source.
-       The first variable is an integer representing the current source: 0=A, 1=B.
-       The second variable is the 32-character name of the current source.
-       The third variable is an integer representing the transfer cause:
-        0=No Transfers Recorded, 1=Due to user action or preferred switching,
-        3=Due to line notch or spike, 5=Due to low line voltage,
-        7=Transfer due to high line voltage,
-        9=Transfer due to frequency out of range.
-       The fourth variable is a character string listing the transfer cause."
-   --#TYPE "APC Redundant Switch: The Redundant Switch has switched source"
-   --#SUMMARY "The Redundant Switch has switched source."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 104
-
-rsLostRedundancy TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The Redundant Switch has lost redundancy.
-       The first variable is an integer representing the source which is no longer available: 0=A, 1=B.
-       The second variable is the 32-character name of the source which is no longer available."
-   --#TYPE "APC Redundant Switch: The Redundant Switch has lost redundancy"
-   --#SUMMARY "The Redundant Switch has has lost redundancy."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 105
-
-rsRedundancyRestored TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString02,  mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Redundancy has been restored to the Redundant Switch .
-       The first variable is an integer representing the source which has been restored: 0=A, 1=B.
-       The second variable is the 32-character name of the source which has been restored."
-   --#TYPE "APC Redundant Switch: Redundancy has been restored."
-   --#SUMMARY "Redundancy has been restored to the Redundant Switch ."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 106
-
-rsConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A configuration change has been made on a Redundant Switch."
-   --#TYPE "APC: A configuration change on a Redundant Switch."
-   --#SUMMARY "A configuration change has been made on a Redundant Switch."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 107
-
-rsCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communications with the Redundant Switch has been established."
-   --#TYPE "APC: Communications established with the Redundant Switch."
-   --#SUMMARY "Communications with the Redundant Switch has been established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 108
-
-rsCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communications with the Redundant Switch has been lost."
-   --#TYPE "APC: Communications lost with the Redundant Switch."
-   --#SUMMARY "Communications with the Redundant Switch has been lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 109
-
-dcCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communications with the DC power plant has been established."
-   --#TYPE "APC: Communications established with the DC power plant."
-   --#SUMMARY "Communications with the DC power plant has been established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 110
-
-dcCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communications with the DC power plant has been lost."
-   --#TYPE "APC: Communications lost with the DC power plant."
-   --#SUMMARY "Communications with the DC power plant has been lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 111
-
-dcPINChanged TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The active PIN on the DC controller has been changed."
-   --#TYPE "APC: The active PIN on the DC controller has been changed."
-   --#SUMMARY "The active PIN on the DC controller has been changed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 112
-
-dcMajorAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Major alarm is active in the DC power plant."
-   --#TYPE "APC: A Major alarm is active in the DC power plant."
-   --#SUMMARY "A Major alarm is active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 113
-   
-dcMajorAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Major alarm is no longer active in the DC power plant."
-   --#TYPE "APC: A Major alarm is no longer active in the DC power plant."
-   --#SUMMARY "A Major alarm is no longer active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 114
-
-dcMinorAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Minor alarm is active in the DC power plant."
-   --#TYPE "APC: A Minor alarm is active in the DC power plant."
-   --#SUMMARY "A Minor alarm is active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 115
-   
-dcMinorAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Minor alarm is no longer active in the DC power plant."
-   --#TYPE "APC: A Minor alarm is no longer active in the DC power plant."
-   --#SUMMARY "A Minor alarm is no longer active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 116
-
-dcOutputRelayOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES {  dm3StatusOutRlyIndex, dm3StatusOutRlyName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An output relay for the powerplant has been activated (state changed to on).
-       The first variable is an integer representing the output relay number that has gone on.
-       The second variable is the 16-character name of the output relay."
-   --#TYPE "APC: An output relay has gone on."
-   --#SUMMARY "An output relay has gone on in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 117
-
-dcOutputRelayOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES {  dm3StatusOutRlyIndex, dm3StatusOutRlyName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An output relay for the powerplant has been deactivated (state changed to off).
-       The first variable is an integer representing the output relay number that has gone off.
-       The second variable is the 16-character name of the output relay."
-   --#TYPE "APC: An output relay has gone off."
-   --#SUMMARY "An output relay has gone off in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 118
-
-dcInputRelayOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES {  dm3StatusInRlyIndex, dm3StatusInRlyName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An input relay for the powerplant has been activated (state changed to on).
-       The first variable is an integer representing the input relay number that has gone on.
-       The second variable is the 16-character name of the input relay."
-   --#TYPE "APC: An input relay has gone on."
-   --#SUMMARY "An input relay has gone on in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 119
-
-dcInputRelayOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES {  dm3StatusInRlyIndex, dm3StatusInRlyName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An input relay for the powerplant has been deactivated (state changed to off).
-       The first variable is an integer representing the input relay number that has gone off.
-       The second variable is the 16-character name of the input relay."
-   --#TYPE "APC: An input relay has gone off."
-   --#SUMMARY "An input relay has gone off in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 120
-
-logicPowerSuppliesIncreased TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The number of system power supplies has increased."
-   --#TYPE "APC UPS: The number of system power supplies has increased."
-   --#SUMMARY "The number of system power supplies has increased."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 121
-
-logicPowerSuppliesDecreased TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The number of system power supplies has decreased."
-   --#TYPE "APC UPS: The number of system power supplies has decreased."
-   --#SUMMARY "The number of system power supplies has decreased."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 122
-
-externalSwitchGearClosed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: External Switch Gear closed."
-   --#TYPE "APC UPS: External Switch Gear closed."
-   --#SUMMARY "External Switch Gear closed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 123
-
-externalSwitchGearOpened TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: External Switch Gear opened."
-   --#TYPE "APC UPS: External Switch Gear opened."
-   --#SUMMARY "External Switch Gear opened."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 124
-
-generalDeviceEvent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: APC Device event."
-   --#TYPE "APC Device event"
-   --#SUMMARY "APC Device event."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 125
-
-atsSourceSwitched TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The Automatic Transfer Switch has switched source.
-       The first variable is an integer representing the current source: 0=A, 1=B.
-       The second variable is the 32-character name of the current source."
-   --#TYPE "APC Automatic Transfer Switch: The ATS has switched source"
-   --#SUMMARY "The Automatic Transfer Switch has switched source."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-  ::= 126
-
-atsLostRedundancy TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The Automatic Transfer Switch has lost redundancy.
-       The first variable is an integer representing the source which is no longer available: 0=A, 1=B.
-       The second variable is the 32-character name of the source which is no longer available."
-   --#TYPE "APC Automatic Transfer Switch: The ATS has lost redundancy. "
-   --#SUMMARY "The Automatic Transfer Switch has has lost redundancy."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 127
-
-atsRedundancyRestored TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString02,  mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Redundancy has been restored to the Automatic Transfer Switch .
-       The first variable is an integer representing the source which has been restored: 0=A, 1=B.
-       The second variable is the 32-character name of the source which has been restored."
-   --#TYPE "APC Automatic Transfer Switch: Redundancy has been restored."
-   --#SUMMARY "Redundancy has been restored to the Automatic Transfer Switch ."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 128
-
-atsConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A configuration change has been made on the Automatic Transfer Switch.
-       The first variable is an integer representing the configuration setting which changed:
-           0=Transfer Voltage Range, 1=Sensitivity 2=Preferred Source
-           3=Front Panel Lockout 4=Current Limit"
-   --#TYPE "APC Automatic Transfer Switch: ATS configuration changed."
-   --#SUMMARY "A configuration change has been made on a Automatic Transfer Switch."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 129
-
-atsCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communications with the Automatic Transfer Switch has been established."
-   --#TYPE "APC Automatic Transfer Switch: Communications established."
-   --#SUMMARY "Communications with the Automatic Transfer Switch has been established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 130
-
-atsCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communications with the Automatic Transfer Switch has been lost."
-   --#TYPE "APC Automatic Transfer Switch: Communications lost."
-   --#SUMMARY "Communications with the Automatic Transfer Switch has been lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 131
-
-atsOverCurrent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Output Current has exceeded threshold."
-   --#TYPE "APC Automatic Transfer Switch: Output Current exceeded threshold"
-   --#SUMMARY "Output Current has exceeded Threshold. "
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 132
-
-atsOverCurrentCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Output Current has returned below threshold."
-   --#TYPE "APC Automatic Transfer Switch: Output Current below threshold."
-   --#SUMMARY "Output Current has returned below threshold."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 133
-
-atsPowerSupplyFailure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The Automatic Transfer Switch Power Supply has failed.
-      The first variable is an integer representing the Power Supply which 
-      has failed: 0=24V, 1=12V 2=5V."
-   --#TYPE "APC Automatic Transfer Switch: The ATS Power Supply has failed."
-   --#SUMMARY "The Automatic Transfer Switch Power Supply has failed."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 134
-
-atsPowerSupplyFailureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The Automatic Transfer Power Supply Failure Cleared.
-       The first variable is an integer representing the Power Supply which 
-       has cleared: 0=24V, 1=12V 2=5V."
-   --#TYPE "APC Automatic Transfer Switch: Power Supply Failure Cleared."
-   --#SUMMARY "The Automatic Transfer Switch Power Supply Failure Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 135
-
-dcMainsFailAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Mains Fail alarm is active in the DC power plant."
-   --#TYPE "APC: A Mains Fail alarm is active in the DC power plant."
-   --#SUMMARY "A Mains Fail alarm is active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 136
-   
-dcMainsFailAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Mains Fail alarm is no longer active in the DC power plant."
-   --#TYPE "APC: Mains Fail alarm is no longer active in the DC power plant."
-   --#SUMMARY "Mains Fail alarm is no longer active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 137
-
-dcFanFailAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Fan Fail alarm is active in the DC power plant."
-   --#TYPE "APC: A Fan Fail alarm is active in the DC power plant."
-   --#SUMMARY "A Fan Fail alarm is active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 138
-   
-dcFanFailAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Fan Fail alarm is no longer active in the DC power plant."
-   --#TYPE "APC: A Fan Fail alarm is no longer active in the DC power plant."
-   --#SUMMARY "A Fan Fail alarm is no longer active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 139
-
-dcRectifierOvertempAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: Rect. Overtemp alarm is active in the power plant."
-   --#TYPE "APC: Rect. Overtemp alarm is active in the power plant."
-   --#SUMMARY "Rect. Overtemp alarm is active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 140
-   
-dcRectifierOvertempAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Rect. Overtemp alarm is no longer active in the power plant."
-   --#TYPE "APC: Rect. Overtmp alarm is no longer active in the power plant."
-   --#SUMMARY "Rect. Overtmp alarm is no longer active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 141
-
-dcCurrentLimitAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Current Limit alarm is active in the power plant."
-   --#TYPE "APC: A Current Limit alarm is active in the power plant."
-   --#SUMMARY "A Current Limit alarm is active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 142
-   
-dcCurrentLimitAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Current Limit alarm is no longer active in the power plant."
-   --#TYPE "APC: Current Limit alarm is no longer active in the power plant."
-   --#SUMMARY "Current Limit alarm is no longer active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 143
-
-dcRectifierFailAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Rect. Fail alarm is active in the power plant."
-   --#TYPE "APC: A Rect. Fail alarm is active in the power plant."
-   --#SUMMARY "A Rect. Fail alarm is active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 144
-   
-dcRectifierFailAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Rect. Fail alarm is no longer active in the power plant."
-   --#TYPE "APC: Rect. Fail alarm is no longer active in the power plant."
-   --#SUMMARY "Rect. Fail alarm is no longer active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 145
-
-dcMultRectFailAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: Multiple Rect. Fail alarm is active in the powerplant."
-   --#TYPE "APC: Multiple Rect. Fail alarm is active in the powerplant."
-   --#SUMMARY "Multiple Rect. Fail alarm is active in the powerplant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 146
-   
-dcMultRectFailAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Mult Rect Fail alarm is no longer active in the powerplant."
-   --#TYPE "APC: Mult Rect Fail alarm is no longer active in the powerplant."
-   --#SUMMARY "Mult Rect Fail alarm is no longer active in the powerplant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 147
-
-dcBatteryBreakerAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: Batt. Breaker alarm is active in the power plant."
-   --#TYPE "APC: Batt. Breaker alarm is active in the power plant."
-   --#SUMMARY "Batt. Breaker alarm is active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 148
-   
-dcBatteryBreakerAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Batt. Breaker alarm is no longer active in the power plant."
-   --#TYPE "APC: Batt. Breaker alarm is no longer active in the power plant."
-   --#SUMMARY "Batt. Breaker alarm is no longer active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 149
-
-dcRectifierOVPAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Rect. OVP alarm is active in the power plant."
-   --#TYPE "APC: A Rect. OVP alarm is active in the power plant."
-   --#SUMMARY "A Rect. OVP alarm is active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 150
-   
-dcRectifierOVPAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Rect. OVP alarm is no longer active in the power plant."
-   --#TYPE "APC: A Rect. OVP alarm is no longer active in the power plant."
-   --#SUMMARY "A Rect. OVP alarm is no longer active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 151
-
-dcLVDImminentAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A LVD Imminent alarm is active in the powerplant."
-   --#TYPE "APC: A LVD Imminent alarm is active in the powerplant."
-   --#SUMMARY "A LVD Imminent alarm is active in the powerplant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 152
-   
-dcLVDImminentAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A LVD Imminent alarm is no longer active in the powerplant."
-   --#TYPE "APC: A LVD Imminent alarm is no longer active in the powerplant."
-   --#SUMMARY "A LVD Imminent alarm is no longer active in the powerplant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 153
-
-dcFuseCBAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Fuse/CB alarm is active in the DC power plant."
-   --#TYPE "APC: A Fuse/CB alarm alarm is active in the DC power plant."
-   --#SUMMARY "A Fuse/CB alarm is active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 154
-   
-dcFuseCBAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Fuse/CB alarm is no longer active in the DC power plant."
-   --#TYPE "APC: A Fuse/CB alarm is no longer active in the DC power plant."
-   --#SUMMARY "A Fuse/CB alarm is no longer active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 155
-
-dcBatteryTestFail TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Battery Test failed in the DC power plant."
-   --#TYPE "APC: A Battery Test failed in the DC power plant."
-   --#SUMMARY "A Battery Test failed in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 156
-
-dcTemperatureAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Temperature is active in the power plant."
-   --#TYPE "APC: A Temperature alarm is active in the power plant."
-   --#SUMMARY "A Temperature alarm is active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 157
-   
-dcTemperatureAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Temperature alarm is no longer active in the power plant."
-   --#TYPE "APC: A Temperature alarm is no longer active in the power plant."
-   --#SUMMARY "A Temperature alarm is no longer active in the power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 158
-
-dcHumidityAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Humidity alarm is active in the DC power plant."
-   --#TYPE "APC: A Humidity alarm is active in the DC power plant."
-   --#SUMMARY "A Humidity alarm is active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 159
-   
-dcHumidityAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Humidity alarm is no longer active in the DC power plant."
-   --#TYPE "APC: A Humidity alarm is no longer active in the DC power plant."
-   --#SUMMARY "A Humidity alarm is no longer active in the DC power plant."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 160
-
-dcBBCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Power plant bridging board communications established."
-   --#TYPE "APC: Power plant bridging board communications established."
-   --#SUMMARY "Power plant bridging board communications established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 161
-
-dcBBCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Power plant bridging board communications lost."
-   --#TYPE "APC: Power plant bridging board communications lost."
-   --#SUMMARY "Power plant bridging board communications lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 162
-
-iemHighTempThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeCurrentTemp, iemStatusProbeTempUnits, iemStatusProbeNumber,
-               iemStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: High temperature threshold violated on Integrated
-        Environmental Monitor probe. The first variable is the
-        current temperature. The second variable is the temperature
-        scale. The third variable is the probe number. The fourth
-        variable is the probe name."
-   --#TYPE "APC IEM: High temperature threshold violation."
-   --#SUMMARY "High temperature threshold violation."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 163
-
-iemHighTempThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: High temperature threshold violated on Integrated
-        Environmental Monitor probe has been cleared. The first variable
-        is the probe number. The second variable is the probe name."
-   --#TYPE "APC IEM: High temperature threshold violation cleared."
-   --#SUMMARY "High temperature threshold violation has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 164
-
-iemLowTempThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeCurrentTemp, iemStatusProbeTempUnits, iemStatusProbeNumber,
-               iemStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Low temperature threshold violated on integrated
-        probe. The first variable is the current temperature. The
-        second variable is the temperature scale. The third
-        variable is the probe number. The fourth variable is the
-        probe name."
-   --#TYPE "APC IEM: Low temperature threshold violation."
-   --#SUMMARY "Low temperature threshold violation."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 165
-
-iemLowTempThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Low temperature threshold violated on integrated
-        probe has been cleared. The first variable is the probe number.
-        The second variable is the probe name."
-   --#TYPE "APC IEM: Low temperature threshold violation cleared."
-   --#SUMMARY "Low temperature threshold violation has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 166
-
-iemHighHumidThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeCurrentHumid, iemStatusProbeNumber, iemStatusProbeName,
-               mtrapargsString }
-   DESCRIPTION
-       "SEVERE: High humidity threshold violated on integrated
-        probe. The first variable is the current humidity. The
-        second variable is the probe number. The third variable
-        is the probe name."
-   --#TYPE "APC IEM: High humidity threshold violation."
-   --#SUMMARY "High humidity threshold violation."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 167
-
-iemHighHumidThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: High humidity threshold violated on integrated
-        probe cleared. The first variable is the probe number. The second
-        variable is the probe name."
-   --#TYPE "APC IEM: High humidity threshold violation cleared."
-   --#SUMMARY "High humidity threshold violation has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 168
-
-iemLowHumidThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeCurrentHumid, iemStatusProbeNumber, iemStatusProbeName,
-               mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Low humidity threshold violated on integrated
-        probe. The first variable is the current humidity. The
-        second variable is the probe number. The third variable
-        is the probe name."
-   --#TYPE "APC IEM: Low humidity threshold violation."
-   --#SUMMARY "Low humidity threshold violation."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 169
-
-iemLowHumidThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusProbeNumber, iemStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Low humidity threshold violated on integrated
-        probe cleared. The first variable is the probe number. The second
-        variable is the probe name."
-   --#TYPE "APC IEM: Low humidity threshold violation cleared."
-   --#SUMMARY "Low humidity threshold violation has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 170
-
-iemProbeDisconnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "WARNING: The temperature/humidity probe on the Integrated
-       Environmental Monitor has been disconnected. This trap is
-       generated when a probe that has been in communication with
-       the Environmental Monitor has been disconnected or can no
-       longer communicate."
-   --#TYPE "APC IEM: Probe disconnected."
-   --#SUMMARY "Probe has been disconnected."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 171
-
-iemProbeConnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The temperature/humidity probe on the Integrated
-       Environmental Monitor has been connected. This trap is generated
-       when the Environmental Monitor establishes communication with a
-       probe that had previously not been connected."
-   --#TYPE "APC IEM: Probe Connected."
-   --#SUMMARY "Probe has been connected."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 172
-
-iemContactFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusContactNumber, iemStatusContactName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: There is a contact fault on the Integrated
-       Environmental Monitor. The first argument is the number
-       of the contact. The second argument is the name of the
-       contact."
-   --#TYPE "APC IEM: Contact fault."
-   --#SUMMARY "Contact fault."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 173
-
-iemContactFaultCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusContactNumber, iemStatusContactName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The contact fault on the Integrated
-       Environmental Monitor has been cleared. The first
-       argument is the number of the contact. The second
-       argument is the name of the contact."
-   --#TYPE "APC IEM: Contact fault."
-   --#SUMMARY "Contact fault cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 174
-
-iemRelayFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusRelayNumber, iemStatusRelayName, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The output relay on the Integrated Environmental
-       Monitor has switched to the fault state. The first
-       argument is the number of the output relay. The second
-       argument is the name of the output relay. The third
-       argument is the event that caused the fault."
-   --#TYPE "APC IEM: Output relay fault."
-   --#SUMMARY "Output relay has faulted."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 175
-
-iemRelayFaultCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { iemStatusRelayNumber, iemStatusRelayName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The fault condition on the output relay on the
-       Integrated Environmental Monitor has cleared. The first
-       argument is the number of the output relay. The second
-       argument is the name of the output relay."
-   --#TYPE "APC IEM: Output relay fault condition cleared."
-   --#SUMMARY "Output relay fault cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 176
-
-bmBatManCommEstab TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Serial Communications Established with Battery Manager."
-   --#TYPE "BatMan : Communications Established."
-   --#SUMMARY "Communications Established."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 177
-
-bmBatManCommLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Serial Communications Lost with Battery Manager."
-   --#TYPE "BatMan : Communications Lost."
-   --#SUMMARY "Communications Lost."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 178
-
-bmBatManKneeAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Battery Voltage Knee Threshold Alarm Detected."
-   --#TYPE "BatMan : Knee Alarm Detected."
-   --#SUMMARY "Knee Alarm Detected."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 179
-
-bmBatManKneeAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Battery Voltage Knee Threshold Alarm Cleared."
-   --#TYPE "BatMan : Knee Alarm Cleared."
-   --#SUMMARY "Knee Alarm Cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 180
-
-bmBatManChargerAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Charger Alarm Detected."
-   --#TYPE "BatMan : Charger Alarm Detected."
-   --#SUMMARY "Charger Alarm Detected."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 181
-
-bmBatManChargerAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Charger Alarm Cleared."
-   --#TYPE "BatMan : Charger Alarm Cleared."
-   --#SUMMARY "Charger Alarm Cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 182
-
-bmBatManBatteryAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Battery Alarm Detected."
-   --#TYPE "BatMan : Battery Alarm Detected."
-   --#SUMMARY "Battery Alarm Detected."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 183
-
-bmBatManBatteryAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Battery Alarm Cleared."
-   --#TYPE "BatMan : Battery Alarm Cleared."
-   --#SUMMARY "Battery Alarm Cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 184
-
-bmBatManEnvironmentAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Environment Alarm Detected."
-   --#TYPE "BatMan : Environment Alarm Detected."
-   --#SUMMARY "Environment Alarm Detected."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 185
-
-bmBatManEnvironmentAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Environment Alarm Cleared."
-   --#TYPE "BatMan : Environment Alarm Cleared."
-   --#SUMMARY "Environment Alarm Cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 186
-
-bmBatManMaintenanceAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Maintenance Alarm Detected."
-   --#TYPE "BatMan : Maintenance Due Alarm Detected."
-   --#SUMMARY "Maintenance Due Alarm Detected."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 187
-
-bmBatManMaintenanceAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Maintenance Alarm Cleared."
-   --#TYPE "BatMan : Maintenance Due Alarm Cleared."
-   --#SUMMARY "Maintenance Due Alarm Cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 188
-
-pduCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communication Established.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Communication Established."
-   --#SUMMARY "Communication Established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 189
-
-pduCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communication Lost.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Communication Lost."
-   --#SUMMARY "Communication Lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 190
-
-pduUtilityLineUndervoltage TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Utility Line Undervoltage. 
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Utility Line Undervoltage."
-   --#SUMMARY "Utility Line Undervoltage."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 191
-
-pduUtilityLineUndervoltageCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Utility Line Undervoltage Cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Utility Line Undervoltage Cleared."
-   --#SUMMARY "Utility Line Undervoltage Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 192
-
-pduUtilityLineOvervoltage TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Utility Line Overvoltage.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Utility Line Overvoltage."
-   --#SUMMARY "Utility Line Overvoltage."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 193
-
-pduUtilityLineOvervoltageCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Utility Line Overvoltage Cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Utility Line Overvoltage Cleared."
-   --#SUMMARY "Utility Line Overvoltage Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 194
-
-pduGroundOvercurrent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Ground Overcurrent.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Ground Overcurrent."
-   --#SUMMARY "Ground Overcurrent."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 195
-
-pduGroundOvercurrentCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Ground Overcurrent Cleared.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Ground Overcurrent Cleared."
-   --#SUMMARY "Ground Overcurrent Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 196
-
-pduCircuitPanelInputUndervoltage TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Circuit Panel Input Undervoltage.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Undervoltage."
-   --#SUMMARY "Circuit Panel Input Undervoltage."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 197
-
-pduCircuitPanelInputUndervoltageCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Circuit Panel Input Undervoltage Cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Undervoltage Cleared."
-   --#SUMMARY "Circuit Panel Input Undervoltage Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 198
-
-pduCircuitPanelInputOvervoltage TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Circuit Panel Input Overvoltage.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Overvoltage."
-   --#SUMMARY "Circuit Panel Input Overvoltage."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 199
-
-pduCircuitPanelInputOvervoltageCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Circuit Panel Input Overvoltage Cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Overvoltage Cleared."
-   --#SUMMARY "Circuit Panel Input Overvoltage Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 200
-
-pduCircuitPanelInputUndercurrent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Circuit Panel Input Undercurrent.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Undercurrent."
-   --#SUMMARY "Circuit Panel Input Undercurrent."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 201
-
-pduCircuitPanelInputUndercurrentCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Circuit Panel Input Undercurrent Cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Undercurrent Cleared."
-   --#SUMMARY "Circuit Panel Input Undercurrent Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 202
-
-pduCircuitPanelInputOvercurrent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Circuit Panel Input Overcurrent.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Overcurrent."
-   --#SUMMARY "Circuit Panel Input Overcurrent."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 203
-
-pduCircuitPanelInputOvercurrentCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Circuit Panel Input Overcurrent Cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: Circuit Panel Input Overcurrent Cleared."
-   --#SUMMARY "Circuit Panel Input Overcurrent Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 204
-
-pduCircuitPanelFrequencyOutOfRange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Circuit Panel Input Frequency Out Of Range.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Circuit Panel Input Frequency Out Of Range."
-   --#SUMMARY "Circuit Panel Input Frequency Out Of Range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 205
-
-pduCircuitPanelFrequencyOutofRangeCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Circuit Panel Input Frequency No Longer Out Of Range.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Circuit Panel Input Frequency No Longer Out Of Range."
-   --#SUMMARY "Circuit Panel Input Frequency No Longer Out Of Range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 206
-
-pduCircuitPanelNeutralOvercurrent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Circuit Panel Input Neutral Overcurrent.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Circuit Panel Input Neutral Overcurrent."
-   --#SUMMARY "Circuit Panel Input Neutral Overcurrent."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 207
-
-pduCircuitPanelNeutralOvercurrentCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Circuit Panel Input Neutral Overcurrent Cleared.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Circuit Panel Input Neutral Overcurrent Cleared."
-   --#SUMMARY "Circuit Panel Input Neutral Overcurrent Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 208
-
-pduSystemOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: PDU System Off.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: System Off."
-   --#SUMMARY "PDU System Off."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 209
-
-pduOnBatteryMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: PDU is in On Battery Mode.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: On Battery Mode."
-   --#SUMMARY "PDU is in On Battery Mode."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 210
-
-pduMaintenanceBypassMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: PDU is in Maintenance Bypass Mode.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Maintenance Bypass Mode."
-   --#SUMMARY "PDU is in Maintenance Bypass Mode."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 211
-
-pduAtypicalBypassMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "WARNING: PDU is in Atypical Bypass Mode.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Atypical Bypass Mode."
-   --#SUMMARY "PDU is in Atypical Bypass Mode."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 212
-
-pduNoPanelFeedMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: PDU is in No Panel Feed Mode.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: No Panel Feed Mode."
-   --#SUMMARY "PDU is in No Panel Feed Mode."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 213
-
-pduUpsOperationMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: PDU is in Ups Operation Mode.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Ups Operation Mode."
-   --#SUMMARY "PDU is in Ups Operation Mode."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 214
-
-pduForcedBypassMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "WARNING: PDU is in Forced Bypass Mode.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Forced Bypass Mode."
-   --#SUMMARY "PDU is in Forced Bypass Mode."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 215
-
-pduInputTransformerOverTemperature TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Input Transformer Over Temperature.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Input Transformer Over Temperature."
-   --#SUMMARY "Input Transformer Over Temperature."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 216
-
-pduInputTransformerOverTemperatureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Input Transformer Over Temperature Cleared.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC PDU: Input Transformer Over Temperature Cleared."
-   --#SUMMARY "Input Transformer Over Temperature Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 217
-
-pduUPSInputVoltageLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: UPS Input Voltage phase-N Lost.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: UPS Input Voltage phase-N Lost."
-   --#SUMMARY "UPS Input Voltage phase-N Lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 218
-
-pduUPSInputVoltageRestored TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: UPS Input Voltage phase-N Restored.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC PDU: UPS Input Voltage phase-N Restored."
-   --#SUMMARY "UPS Input Voltage phase-N Restored."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 219
-
-pduContactFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A contact closure in the PDU is in an abnormal position. 
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the number of the contact."
-   --#TYPE "APC PDU: Contact Abnormal."
-   --#SUMMARY "Contact Abnormal."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 220
-
-pduContactFaultCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A contact closure in the PDU is in a normal position. 
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the number of the contact."
-   --#TYPE "APC PDU: Contact Normal."
-   --#SUMMARY "Contact Normal."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 221
-
-rPDUBankPhaseLowLoad TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A bank or phase on the Rack PDU has violated the low load threshold.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the bank number (0 if this is phase data).
-       The fourth argument is the phase number (0 if this is bank data)."
-   --#TYPE "APC Rack PDU: Violation of bank or phase low load threshold."
-   --#SUMMARY "A bank or phase on the Rack PDU has violated the low load threshold."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 222
-
-rPDUBankPhaseLowLoadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The bank or phase low load condition on a Rack PDU has been 
-       cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the bank number (0 if this is phase data).
-       The fourth argument is the phase number (0 if this is bank data)."
-   --#TYPE "APC Rack PDU: Bank or phase low load condition cleared."
-   --#SUMMARY "The bank or phase low load condition on a Rack PDU has been cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 223
-
-rPDUBankPhaseNearOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A bank or phase of the Rack PDU is near an overload condition.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the bank number (0 if this is phase data).
-       The fourth argument is the phase number (0 if this is bank data)."
-   --#TYPE "APC Rack PDU: Bank or phase near an overload condition."
-   --#SUMMARY "A bank or phase of the Rack PDU is near an overload condition."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 224
-
-rPDUBankPhaseNearOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The bank or phase near overload condition on a Rack PDU has 
-       been cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the bank number (0 if this is phase data).
-       The fourth argument is the phase number (0 if this is bank data)."
-   --#TYPE "APC Rack PDU: Bank or phase near overload condition has cleared."
-   --#SUMMARY "Rack PDU bank or phase near overload condition has cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 225
-
-rPDUBankPhaseOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A bank or phase of the Rack PDU is in an overload condition.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number.
-       The third argument is the bank number (0 if this is phase data).
-       The fourth argument is the phase number (0 if this is bank data)."
-   --#TYPE "APC Rack PDU: Bank or phase overload condition."
-   --#SUMMARY "A bank or phase of the Rack PDU is in an overload condition."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 226
-
-rPDUBankPhaseOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusBankNumber, rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The bank or phase overload condition on a Rack PDU has been 
-       cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the bank number (0 if this is phase data).
-       The fourth argument is the phase number (0 if this is bank data)."
-   --#TYPE "APC Rack PDU: Bank or phase overload condition has cleared."
-   --#SUMMARY "The bank or phase overload condition on a Rack PDU has cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 227
-
-aruDeviceConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote ARU Device Configurtion change.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: ARU Device configuration change."
-   --#SUMMARY "ARU device configuration change."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 228
-
-rmPDUCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString03, mtrapargsString02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communication Lost.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC RM PDU: Communication Lost."
-   --#SUMMARY "Communication Lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 229
-
-emsCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communication Established.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC EMS: Communication Established."
-   --#SUMMARY "Communication Established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 230
-
-emsCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communication Lost.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC EMS: Communication Lost."
-   --#SUMMARY "Communication Lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 231
-
-emsProbeConnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A probe has been connected to the EMS.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the probe number. 
-        The fourth argument is the probe name."
-   --#TYPE "APC EMS: Probe Connected."
-   --#SUMMARY "Probe Connected."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 232
-
-emsProbeDisconnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A probe has been disconnected from the EMS.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the probe number. 
-        The fourth argument is the probe name."
-   --#TYPE "APC EMS: Probe Disconnected."
-   --#SUMMARY "Probe Disconnected."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 233
-
-emsSensorConnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A sensor has been connected to the EMS.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the sensor number. 
-        The fourth argument is the sensor name."
-   --#TYPE "APC EMS: Sensor Connected."
-   --#SUMMARY "Sensor Connected."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 234
-
-emsSensorDisconnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A sensor has been disconnected from the EMS.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the sensor number. 
-        The fourth argument is the sensor name."
-   --#TYPE "APC EMS: Sensor Disconnected."
-   --#SUMMARY "Sensor Disconnected."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 235
-
-emsSensorFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A EMS sensor is in the fault condition.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the sensor number. 
-        The fourth argument is the sensor name."
-   --#TYPE "APC EMS: Sensor Fault."
-   --#SUMMARY "Sensor Fault."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 236
-
-emsSensorFaultCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsSensorStatusSensorIndex, emsSensorStatusSensorName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A EMS sensor fault condition has cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the sensor number. 
-        The fourth argument is the sensor name."
-   --#TYPE "APC EMS: Sensor Fault Cleared."
-   --#SUMMARY "Sensor Fault Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 237
-
-emsBeaconConnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A beacon has been connected to the EMS.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC EMS: Beacon Connected."
-   --#SUMMARY "Beacon Connected."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 238
-
-emsBeaconDisconnected TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A beacon has been disconnected from the EMS.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC EMS: Beacon Disconnected."
-   --#SUMMARY "Beacon Disconnected."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 239
-
-emsBeaconOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A EMS beacon has gone on.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC EMS: Beacon On."
-   --#SUMMARY "Beacon On."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 240
-
-emsBeaconOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A EMS beacon has gone off.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC EMS: Beacon Off."
-   --#SUMMARY "Beacon Off."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 241
-
-emsMajorAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Major Alarm is present in the EMS.
-        The first argument is the EMS serial number.
-        The second argument is the EMS name."
-   --#TYPE "APC EMS: Major Alarm."
-   --#SUMMARY "Major Alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 242
-
-emsMajorAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Major Alarm condition has been cleared in the EMS.
-        The first argument is the EMS serial number.
-        The second argument is the EMS name."
-   --#TYPE "APC EMS: Major Alarm Cleared."
-   --#SUMMARY "Major Alarm Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 243
-
-emsMinorAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Minor Alarm is present in the EMS.
-        The first argument is the EMS serial number.
-        The second argument is the EMS name."
-   --#TYPE "APC EMS: Minor Alarm."
-   --#SUMMARY "Minor Alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 244
-
-emsMinorAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Minor Alarm condition has been cleared in the EMS.
-        The first argument is the EMS serial number.
-        The second argument is the EMS name."
-   --#TYPE "APC EMS: Minor Alarm Cleared."
-   --#SUMMARY "Minor Alarm Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 245
-
-emsOutletStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutletStatusOutletIndex, emsOutletStatusOutletName, 
-               emsOutletStatusOutletState, emsOutletStatusOutletNormalState, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An outlet on the EMS has changed to its abnormal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the outlet number. 
-        The fourth argument is the outlet name.
-        The fifth argument is the current outlet state (1=ON, 2=OFF).
-        The sixth argument is the configured normal outlet state (1=ON, 2=OFF)."
-   --#TYPE "APC EMS: Outlet has changed to its abnormal state."
-   --#SUMMARY "Outlet has changed to its abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 246
-
-emsOutletStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutletStatusOutletIndex, emsOutletStatusOutletName, 
-               emsOutletStatusOutletState, emsOutletStatusOutletNormalState, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on the EMS has changed to its normal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the outlet number. 
-        The fourth argument is the outlet name.
-        The fifth argument is the current outlet state (1=ON, 2=OFF).
-        The sixth argument is the configured normal outlet state (1=ON, 2=OFF)."
-   --#TYPE "APC EMS: Outlet has changed to its normal state."
-   --#SUMMARY "Outlet has changed to its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 247
-
-emsInputContactStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsInputContactStatusInputContactIndex, 
-               emsInputContactStatusInputContactName, emsInputContactStatusInputContactState, 
-               emsInputContactStatusInputContactNormalState, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An input contact on the EMS has changed to its abnormal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the input contact number. 
-        The fourth argument is the input contact name.
-        The fifth argument is the input contact state (1=CLOSED, 2=OPEN).
-        The sixth argument is the configured normal input contact state (1=CLOSED, 2=OPEN)."
-   --#TYPE "APC EMS: Input contact has changed to its abnormal state."
-   --#SUMMARY "Input contact has changed to its abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 248
-
-emsInputContactStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsInputContactStatusInputContactIndex, 
-               emsInputContactStatusInputContactName, emsInputContactStatusInputContactState, 
-               emsInputContactStatusInputContactNormalState, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An input contact on the EMS has changed to its normal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the input contact number. 
-        The fourth argument is the input contact name.
-        The fifth argument is the input contact state (1=CLOSED, 2=OPEN).
-        The sixth argument is the configured normal input contact state (1=CLOSED, 2=OPEN)."
-   --#TYPE "APC EMS: Input contact has changed to its normal state."
-   --#SUMMARY "Input contact has changed to its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 249
-
-emsOutputRelayStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutputRelayStatusOutputRelayIndex, 
-               emsOutputRelayStatusOutputRelayName, emsOutputRelayStatusOutputRelayState, 
-               emsOutputRelayStatusOutputRelayNormalState, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An output relay on the EMS has changed to its abnormal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the output relay number. 
-        The fourth argument is the output relay name.
-        The fifth argument is the current output relay state (1=CLOSED, 2=OPEN).
-        The sixth argument is the configured normal output relay state (1=CLOSED, 2=OPEN)."
-   --#TYPE "APC EMS: Output Relay has changed to its abnormal state."
-   --#SUMMARY "Output Relay has changed to its abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 250
-
-emsOutputRelayStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsOutputRelayStatusOutputRelayIndex, 
-               emsOutputRelayStatusOutputRelayName, emsOutputRelayStatusOutputRelayState, 
-               emsOutputRelayStatusOutputRelayNormalState, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An output relay on the EMS has changed to its normal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the output relay number. 
-        The fourth argument is the output relay name.
-        The fifth argument is the current output relay state (1=CLOSED, 2=OPEN).
-        The sixth argument is the configured normal output relay state (1=CLOSED, 2=OPEN)."
-   --#TYPE "APC EMS: Output Relay has changed to its normal state."
-   --#SUMMARY "Output Relay has changed to its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 251
-
-emsDeviceConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A device configuration change has been made on the EMS.
-        The first argument is the EMS serial number.
-        The second argument is the EMS name."
-   --#TYPE "APC: A device configuration change on a EMS."
-   --#SUMMARY "A device configuration change has been made on a EMS."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 252
-
-envHighTempThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: High temperature threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: High temperature threshold violation."
-   --#SUMMARY "High temperature threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 253
-
-envHighTempThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: High temperature threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: High temperature threshold violation cleared."
-   --#SUMMARY "High temperature threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 254
-
-envLowTempThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Low temperature threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Low temperature threshold violation."
-   --#SUMMARY "Low temperature threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 255
-
-envLowTempThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Low temperature threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Low temperature threshold violation cleared."
-   --#SUMMARY "Low temperature threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 256
-
-envHighHumidityThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: High humidity threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: High humidity threshold violation."
-   --#SUMMARY "High humidity threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 257
-
-envHighHumidityThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: High humidity threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity. 
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: High humidity threshold violation cleared."
-   --#SUMMARY "High humidity threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 258
-
-envLowHumidityThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Low humidity threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: Low humidity threshold violation."
-   --#SUMMARY "Low humidity threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 259
-
-envLowHumidityThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Low humidity threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity. 
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: Low humidity threshold violation cleared."
-   --#SUMMARY "Low humidity threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 260
-
-
--- Switched and Metered Rack PDU Traps
-
-rPDUCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Communication with a Rack PDU has been established.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Communication established."
-   --#SUMMARY "Communication with a Rack PDU established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 266
-
-rPDUCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Communication with a Rack PDU has been lost.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Communication lost."
-   --#SUMMARY "Communication with a Rack PDU has been lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 267
-
-rPDUOutletOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDUOutletControlIndex, rPDUOutletControlOutletName, 
-               mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on a Switched Rack PDU has turned on.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the outlet index number.
-       The fourth argument is the outlet name."
-   --#TYPE "APC Switched Rack PDU: An outlet has turned on."
-   --#SUMMARY "An outlet on a Switched Rack PDU has turned on."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 268
-
-rPDUOutletOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDUOutletControlIndex, rPDUOutletControlOutletName, 
-               mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet on a Switched Rack PDU has turned off.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the outlet index number.
-       The fourth argument is the outlet name."
-   --#TYPE "APC Switched Rack PDU: An outlet has turned off."
-   --#SUMMARY "An outlet on a Switched Rack PDU has turned off."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 269
-
-rPDUDeviceConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A device configuration change has been made on a 
-       Rack PDU.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Device configuration change made."
-   --#SUMMARY "Device configuration change has been made on a Rack PDU."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 270
-
-rPDUOutletConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDUOutletControlIndex, rPDUOutletControlOutletName, 
-               mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An outlet configuration change has been made on a 
-       Switched Rack PDU.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the outlet index number.
-       The fourth argument is the outlet name."
-   --#TYPE "APC Switched Rack PDU: Outlet configuration change made."
-   --#SUMMARY "Outlet configuration change has been made on a Switched Rack PDU."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 271
-
-rPDULowLoad TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Rack PDU has violated the low load threshold.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC Rack PDU: Violation of low load threshold."
-   --#SUMMARY "A Rack PDU has violated the low load threshold."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 272
-
-rPDULowLoadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The low load condition on a Rack PDU has been 
-       cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC Rack PDU: Low load condition cleared."
-   --#SUMMARY "The low load condition on a Rack PDU has been cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 273
-
-rPDUNearOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Rack PDU is near an overload condition.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC Rack PDU: Near an overload condition."
-   --#SUMMARY "A Rack PDU is near an overload condition."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 274
-
-rPDUNearOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The near overload condition on a Rack PDU has 
-       been cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC Rack PDU: Near overload condition has cleared."
-   --#SUMMARY "Rack PDU near overload condition has cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 275
-
-rPDUOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Rack PDU is in an overload condition.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC Rack PDU: Overload condition."
-   --#SUMMARY "A Rack PDU is in an overload condition."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 276
-
-rPDUOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadStatusPhaseNumber, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The overload condition on a Rack PDU has been 
-       cleared.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase number."
-   --#TYPE "APC Rack PDU: Overload condition has cleared."
-   --#SUMMARY "The overload condition on a Rack PDU has cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 277
-
-rPDUPowerSupply1Fail TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Power Supply 1 on Rack PDU is in FAIL state.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Power Supply 1 is in FAIL state."
-   --#SUMMARY "Power Supply 1 on Rack PDU is in FAIL state."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 278
-
-rPDUPowerSupply1Ok TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Power Supply 1 on Rack PDU is operating normally.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Power Supply 1 is operating normally."
-   --#SUMMARY "Power Supply 1 on Rack PDU is operating normally."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 279
-
-rPDUPowerSupply2Fail TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Power Supply 2 on Rack PDU is in FAIL state.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Power Supply 2 is in FAIL state."
-   --#SUMMARY "Power Supply 2 on Rack PDU is in FAIL state."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 280
-
-rPDUPowerSupply2Ok TRAP-TYPE
-   ENTERPRISE apc             
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Power Supply 2 on Rack PDU is operating normally.
-       The first argument is the serial number.
-       The second argument is the device name."
-   --#TYPE "APC Rack PDU: Power Supply 2 is operating normally."
-   --#SUMMARY "Power Supply 2 on Rack PDU is operating normally."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 281
-
-rPDUPhaseConfigChange TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDULoadPhaseConfigIndex, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A phase configuration change has been made on a 
-       Rack PDU.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the phase index number."
-   --#TYPE "APC Rack PDU: Phase configuration change made."
-   --#SUMMARY "Phase configuration change has been made on a Rack PDU."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 282
-
-rPDUCancelPendingCommand TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { rPDUIdentSerialNumber, rPDUIdentName, 
-               rPDUOutletControlIndex, rPDUOutletControlOutletName,
-               mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A cancel pending command has been made on a 
-       Switched Rack PDU.
-       The first argument is the serial number.
-       The second argument is the device name.
-       The third argument is the outlet index number (0 indicates all outlets).
-       The fourth argument is the outlet name (or device name if all outlets)."
-   --#TYPE "APC Switched Rack PDU: Cancel Pending Command made."
-   --#SUMMARY "A Cancel Pending Command has been made on a Switched Rack PDU."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 283
-
-aruAlinkCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote ARU Communication Established.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Communication Established."
-   --#SUMMARY "Communication Established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 284
-
-aruAlinkCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Remote ARU Communication Lost.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Communication Lost."
-   --#SUMMARY "Communication Lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 285
-
-aruFanFail TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Remote ARU Fan Fail.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Fan Fail."
-   --#SUMMARY "Fan Fail."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 286
-
-aruFanFailCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote ARU Fan Fail Cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Fan Fail Cleared."
-   --#SUMMARY "Fan Fail Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 287
-
-aruSmokeAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Remote ARU Smoke Alarm.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Smoke Alarm."
-   --#SUMMARY "Smoke Alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 288
-
-aruSmokeAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote ARU Smoke Alarm Cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Smoke Alarm Cleared."
-   --#SUMMARY "Smoke Alarm Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 289
-
-aruHighTemperatureAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Remote ARU High Temperature Alarm.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: High Temperature Alarm."
-   --#SUMMARY "High Temperature Alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 290
-
-aruHighTemperatureAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote ARU High Temperature Alarm Cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: High Temperature Alarm Cleared."
-   --#SUMMARY "High Temperature Alarm Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 291
-
-aruExhaustTemperatureAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Remote ARU Exhaust Temperature Alarm.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Exhaust Temperature Alarm."
-   --#SUMMARY "Exhaust Temperature Alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 292
-
-aruExhaustTemperatureAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               rARUStatusAruIndex, rARUStatusAruName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote ARU Exhaust Temperature Alarm Cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the ARU number. 
-        The fourth argument is the ARU name."
-   --#TYPE "APC ARU: Exhaust Temperature Alarm Cleared."
-   --#SUMMARY "Exhaust Temperature Alarm Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 293
-
-envAlinkCommunicationEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Remote Probe Communication Established.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the probe number. 
-        The fourth argument is the probe name."
-   --#TYPE "APC ENV: Communication Established."
-   --#SUMMARY "Communication Established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 294
-
-envAlinkCommunicationLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Remote Probe Communication Lost.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the probe number. 
-        The fourth argument is the probe name."
-   --#TYPE "APC ENV: Communication Lost."
-   --#SUMMARY "Communication Lost."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 295
-
-emsAlinkPowerOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Alink Power Overload.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC EMS: Alink Power Overload."
-   --#SUMMARY "Alink Power Overload."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 296
-
-emsAlinkPowerOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Alink Power Overload Cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC EMS: Alink Power Overload Cleared."
-   --#SUMMARY "Alink Power Overload Cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 297
-
-upsOutletGroupTurnedOn TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { upsOutletGroupControlIndex, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The specified Outlet Group turned on."
-   --#TYPE "APC UPS: Outlet Group turned on."
-   --#SUMMARY "Outlet Group turned on"
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 298   
-
-upsOutletGroupTurnedOff TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { upsOutletGroupControlIndex, mtrapargsString }
-   DESCRIPTION
-       "WARNING: The specified Outlet Group turned off."
-   --#TYPE "APC UPS: Outlet Group turned off."
-   --#SUMMARY "Outlet Group turned off."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 299  
-
-smwCriticalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsGauge, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Symmetra MW UPS critical condition has been detected.
-       The first variable is the fault condition."
-   --#TYPE "APC Symmetra MW UPS: A critical condition has been detected."
-   --#SUMMARY "A critical condition has been detected."
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 300
-
-smwCriticalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsGauge, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Symmetra MW UPS critical condition has been cleared.
-      The first variable is the fault condition."
-   --#TYPE "APC Symmetra MW UPS: A critical condition has been cleared."
-   --#SUMMARY "A critical condition has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 301
-
-smwWarningCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsGauge, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Symmetra MW UPS warning condition has been detected.
-       The first variable is the fault condition."
-   --#TYPE "APC Symmetra MW UPS: A warning condition has been detected."
-   --#SUMMARY "A warning condition has been detected."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 302
-
-smwWarningConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsGauge, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Symmetra MW UPS warning condition has been cleared.
-      The first variable is the fault condition."
-   --#TYPE "APC Symmetra MW UPS: A warning condition has been cleared."
-   --#SUMMARY "A warning condition has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 303
-
-smwInformationalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsGauge, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Symmetra MW UPS informational condition has been detected.
-       The first variable is the fault condition."
-   --#TYPE "APC Symmetra MW UPS: Informational condition detected."
-   --#SUMMARY "An informational condition has been detected."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 304
-
-smwInformationalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsGauge, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Symmetra MW UPS informational condition has been cleared.
-      The first variable is the fault condition."
-   --#TYPE "APC Symmetra MW UPS: Informational condition cleared."
-   --#SUMMARY "An informational condition has been cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 305
-
-airCriticalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: An Air critical condition was detected.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC Air: A critical condition was detected. "
-   --#SUMMARY "A critical condition was detected. "
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 306
-
-airCriticalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Air critical condition was cleared.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC Air: A critical condition was cleared. "
-   --#SUMMARY "A critical condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 307
-
-airWarningCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An Air warning condition was detected.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC Air: A warning condition was detected. "
-   --#SUMMARY "A warning condition was detected. "
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 308
-
-airWarningConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An Air warning condition was cleared.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC Air: A warning condition was cleared. "
-   --#SUMMARY "A warning condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 309
-
-airInformationalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Air informational condition was detected.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC Air: Informational condition detected. "
-   --#SUMMARY "An informational condition was detected. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 310
-
-airInformationalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Air informational condition was cleared.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC Air: Informational condition was cleared. "
-   --#SUMMARY "An informational condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 311
-
--- xPDU Traps (part 1)
-
-xPDUInputVoltageLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Three-phase input voltage to the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase
-        (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
-   --#TYPE "APC XPDU: Main input voltage out-of-range alarm."
-   --#SUMMARY "Input voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 312
-
-xPDUInputVoltageLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Three-phase input voltage to the device is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XPDU: Main input voltage back in range."
-   --#SUMMARY "Input voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 313
-
-
-xPDUInputVoltageHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Three-phase input voltage to the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase
-        (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, above which the alarm was generated."
-   --#TYPE "APC XPDU: Main input voltage out-of-range alarm."
-   --#SUMMARY "Input voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 314
-
-xPDUInputVoltageHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Three-phase input voltage to the device is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XPDU: Main input voltage back in range."
-   --#SUMMARY "Input voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 315
-
-xPDUBypassVoltageLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Three-phase bypass input voltage to the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
-   --#TYPE "APC XPDU: Bypass input voltage out-of-range alarm."
-   --#SUMMARY "Bypass input voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 316
-
-xPDUBypassVoltageLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Three-phase bypass input voltage to the device is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XPDU: Bypass input voltage back in range."
-   --#SUMMARY "Bypass input voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 317
-
-xPDUBypassVoltageHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Three-phase bypass input voltage to the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, above which the alarm was generated."
-   --#TYPE "APC XPDU: Bypass input voltage out-of-range alarm."
-   --#SUMMARY "Bypass input voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 318
-
-xPDUBypassVoltageHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Three-phase bypass input voltage to the device is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XPDU: Bypass input voltage back in range."
-   --#SUMMARY "Bypass input voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 319
-
-xPDUOutputVoltageLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The device three-phase output voltage of the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
-   --#TYPE "APC XPDU:  Output voltage out-of-range alarm."
-   --#SUMMARY "Output voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 320
-
-xPDUOutputVoltageLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XPDU: Output voltage back in range."
-   --#SUMMARY "Output voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 321
-
-xPDUOutputVoltageHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The device three-phase output voltage of the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, above which the alarm was generated."
-   --#TYPE "APC XPDU:  Output voltage out-of-range alarm."
-   --#SUMMARY "Output voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 322
-
-xPDUOutputVoltageHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XPDU: Output voltage back in range."
-   --#SUMMARY "Output voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 323
-
-xPDUOutputCurrentLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices three-phase load current is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3).
-        The fourth argument is the measured current in tenths of Amps.
-        The fifth argument is the threshold, in Amps, from which the alarm was generated."
-   --#TYPE "APC XPDU: Output (load) current out-of-range alarm."
-   --#SUMMARY "Output current is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 324
-
-xPDUOutputCurrentLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3).
-        The fourth argument is the measured current in tenths of Amps."
-   --#TYPE "APC XPDU: Output (load) current back in range."
-   --#SUMMARY "Output current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 325
-
-xPDUOutputCurrentHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices three-phase load current is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3).
-        The fourth argument is the measured current in tenths of Amps.
-        The fifth argument is the threshold, in Amps, above which the alarm was generated."
-   --#TYPE "APC XPDU: Output (load) current out-of-range alarm."
-   --#SUMMARY "Output current is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 326
-
-xPDUOutputCurrentHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3).
-        The fourth argument is the measured current in tenths of Amps."
-   --#TYPE "APC XPDU: Output (load) current back in range."
-   --#SUMMARY "Output current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 327
-
-xPDUOutputFrequencyAlarm TRAP-TYPE
-  ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices output frequency is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the frequency deviation from the nominal in tenths of Hertz."
-   --#TYPE "APC XPDU: Output frequency out-of-range alarm."
-   --#SUMMARY "Output frequency is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 328
-
-xPDUOutputFrequencyAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices output frequency is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Output frequency back in range."
-   --#SUMMARY "Output frequency in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 329
-
-xPDUSystemGroundCurrentAlarm TRAP-TYPE
-  ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices earth ground current is over the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the measured current in tenths of Amps."
-   --#TYPE "APC XPDU: Earth ground current over range alarm."
-   --#SUMMARY "Earth ground current is over limit."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 330
-
-xPDUSystemGroundCurrentAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices earth ground current is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the measured current in tenths of Amps."
-   --#TYPE "APC XPDU: Earth ground current back in range."
-   --#SUMMARY "Earth ground current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 331
-
-xPDUInputContactStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A user input contact on the device has changed to its abnormal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the input contact number. 
-        The fourth argument is the input contact name.
-        The fifth argument is the input contact state (1=OPEN, 2=CLOSED).
-        The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XPDU: Input contact has changed to its abnormal state."
-   --#SUMMARY "Input contact has changed to its abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 332
-
-xPDUInputContactStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A user input contact on the device has changed to its normal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the input contact number. 
-        The fourth argument is the input contact name.
-        The fifth argument is the input contact state (1=CLOSED, 2=OPEN).
-        The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XPDU: Input contact has changed to its normal state."
-   --#SUMMARY "Input contact has changed to its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 333
-
-xPDUOutputRelayStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "WARNING: An Output Relay on the device has changed to its abnormal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the Output Relay number. 
-        The fourth argument is the Output Relay name.
-        The fifth argument is the current Output Relay state (1=OPEN, 2=CLOSED).
-        The sixth argument is the configured normal Output Relay state (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XPDU: Output Relay has changed to its abnormal state."
-   --#SUMMARY "Output Relay has changed to its abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 334
-
-xPDUOutputRelayStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: An Output Relay on the device has changed to its normal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the Output Relay number. 
-        The fourth argument is the Output Relay name.
-        The fifth argument is the current Output Relay state (1=OPEN, 2=CLOSED).
-        The sixth argument is the configured normal Output Relay state (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XPDU: Output Relay has changed to its normal state."
-   --#SUMMARY "Output Relay has changed to its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 335
-
-xPDUCoolingFanAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The device's internal cooling fans have failed.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Cooling fan failure alarm."
-   --#SUMMARY "Cooling fan failure."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 336
-
-xPDUCoolingFanAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The device's cooling fans are now functioning properly.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Cooling fan alarm cleared."
-   --#SUMMARY "Cooling fan alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 337
-
-xPDUTransformerTempAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The device's isolation transformer is over temperature.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Isolation transformer over temperature alarm."
-   --#SUMMARY "Transformer temp alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 338
-
-xPDUTransformerTempAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The device's isolation transformer is no longer over temperature.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Isolation transformer over temperature alarm cleared."
-   --#SUMMARY "Transformer temp alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 339
-
-xPDUBranchCurrentLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The current in a branch circuit is outside the limits specified for that
-        branch circuit.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the panel position of the branch circuit (1-based index).
-        The fourth argument is the measured current in tenths of Amps.
-        The fifth argument is the threshold, in tenth of Amps, from which the alarm was generated."
-   --#TYPE "APC XPDU: Branch circuit current out-of-range alarm."
-   --#SUMMARY "Branch circuit current is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 340
-
-xPDUBranchCurrentLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The current in a branch circuit is back within the limits 
-        specified for that branch circuit.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the panel position of the branch circuit (1-based index).
-        The fourth argument is the measured current in tenths of Amps."
-   --#TYPE "APC XPDU: Branch circuit current back in range."
-   --#SUMMARY "Branch circuit current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 341
-
-xPDUBranchCurrentHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The current in a branch circuit is outside the limits specified for that
-        branch circuit.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the panel position of the branch circuit (1-based index).
-        The fourth argument is the measured current in tenths of Amps.
-        The fifth argument is the threshold, in tenth of Amps, above which the alarm was generated."
-   --#TYPE "APC XPDU: Branch circuit current out-of-range alarm."
-   --#SUMMARY "Branch circuit current is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 342
-
-xPDUBranchCurrentHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The current in a branch circuit is back within the limits 
-        specified for that branch circuit.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the panel position of the branch circuit (1-based index).
-        The fourth argument is the measured current in tenths of Amps."
-   --#TYPE "APC XPDU: Branch circuit current back in range."
-   --#SUMMARY "Branch circuit current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 343
-
-
-xPDUInternalCommError TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: There is an internal communication error in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Internal communication error."
-   --#SUMMARY "Internal communication error."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 344
-
-emsHardwareStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The device's hardware is improperly configured and operating outside
-        normal bounds for the hardware.  This can be caused by improper devices being
-        connected to the EMS ports or Alink Current limit detection."
-   --#TYPE "APC EMS: Hardware is in an abnormal state."
-   --#SUMMARY "Hardware is in an abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 345
-
-emsHardwareStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The device's hardware is in its normal operational state.
-        The first argument is the host device serial number."
-   --#TYPE "APC EMS: Hardware is in a normal state."
-   --#SUMMARY "Hardware is in its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 346
-   
-ceSevereCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Custom Event severe condition was detected.
-       The first variable is the custom event text message.
-       The second variable is the custom event number."
-   --#TYPE "APC CustomEvent: A severe condition was detected. "
-   --#SUMMARY "A severe condition was detected. "
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 347
-
-ceSevereConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Custom Event severe condition was cleared.
-       The first variable is the custom event text message.
-       The second variable is the custom event number."
-   --#TYPE "APC CustomEvent: A severe condition was cleared. "
-   --#SUMMARY "A severe condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 348
-
-ceWarningCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Custom Event warning condition was detected.
-       The first variable is the custom event text message.
-       The second variable is the custom event number."
-   --#TYPE "APC CustomEvent: A warning condition was detected. "
-   --#SUMMARY "A warning condition was detected. "
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 349
-
-ceWarningConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Custom Event warning condition was cleared.
-       The first variable is the custom event text message.
-       The second variable is the custom event number."
-   --#TYPE "APC CustomEvent: A warning condition was cleared. "
-   --#SUMMARY "A warning condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 350
-
-ceInformationalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Custom Event informational condition was detected.
-       The first variable is the custom event text message.
-       The second variable is the custom event number."
-   --#TYPE "APC CustomEvent: Informational condition detected. "
-   --#SUMMARY "An informational condition was detected. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 351
-
-ceInformationalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Custom Event informational condition was cleared.
-       The first variable is the custom event text message.
-       The second variable is the custom event number."
-   --#TYPE "APC CustomEvent: Informational condition was cleared. "
-   --#SUMMARY "An informational condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 352
-     
-upsInternalOverTemperature TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "WARNING: The internal over temperature condition exists."
-   --#TYPE "APC UPS: The internal over temperature condition exists."
-   --#SUMMARY "The internal over temperature condition exists."
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 353
-
-upsInternalOverTemperatureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The internal over temperature condition cleared."
-   --#TYPE "APC UPS: The internal over temperature condition cleared."
-   --#SUMMARY "The internal over temperature condition cleared."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 354
-   
-upsMpuReset TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The MPU has been reset."
-   --#TYPE "APC UPS: The MPU has been reset."
-   --#SUMMARY "The MPU has been reset."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 355
-
-upsOutputSwitchClosed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The Output Switch is closed."
-   --#TYPE "APC UPS: The Output Switch is closed."
-   --#SUMMARY "The Output Switch is closed."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 356
-
-upsOutputSwitchOpened TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: The Output Switch is open."
-   --#TYPE "APC UPS: The Output Switch is open."
-   --#SUMMARY "The Output Switch is open."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 357
-
-upsCalibrationStackChanged TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: A calibration value in the stack was changed."
-   --#TYPE "APC UPS: A calibration value in the stack was changed."
-   --#SUMMARY "A calibration value in the stack was changed."
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 358
-
-   
--- Upgraded EMS now has more env traps
-
-envMaxTempThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Max temperature threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Max temperature threshold violation."
-   --#SUMMARY "Max temperature threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 359
-
-envMaxTempThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Max temperature threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Max temperature threshold violation cleared."
-   --#SUMMARY "Max temperature threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 360
-
-envMinTempThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Min temperature threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Min temperature threshold violation."
-   --#SUMMARY "Min temperature threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 361
-
-envMinTempThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Min temperature threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Min temperature threshold violation cleared."
-   --#SUMMARY "Min temperature threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 362
-
-envMaxHumidityThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Max humidity threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: Max humidity threshold violation."
-   --#SUMMARY "Max humidity threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 363
-
-envMaxHumidityThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Max humidity threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity. 
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: Max humidity threshold violation cleared."
-   --#SUMMARY "Max humidity threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 364
-
-envMinHumidityThresholdViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Min humidity threshold violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: Min humidity threshold violation."
-   --#SUMMARY "Min humidity threshold violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 365
-
-envMinHumidityThresholdViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeHumidity, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Min humidity threshold violation cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current humidity. 
-        The fourth argument is the probe number. 
-        The fifth argument is the probe name."
-   --#TYPE "APC ENV: Min humidity threshold violation cleared."
-   --#SUMMARY "Min humidity threshold violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 366
-
-envSTIncTempRateViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Short-term increasing temperature rate violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Short-term inc. temp rate violation."
-   --#SUMMARY "Short-term inc. temp rate violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 367
-
-envSTIncTempRateViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Short-term increasing temperature rate cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Short-term inc. temp rate violation cleared."
-   --#SUMMARY "Short-term inc. temp rate violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 368
-
-envSTDecTempRateViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Short-term decreasing temperature rate violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Short-term dec. temp rate violation."
-   --#SUMMARY "Short-term dec. temp rate violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 369
-
-envSTDecTempRateViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Short-term decreasing temperature rate cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Short-term dec. temp rate violation cleared."
-   --#SUMMARY "Short-term dec. temp rate violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 370
-
-envLTIncTempRateViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Long-term increasing temperature rate violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Long-term inc. temp rate violation."
-   --#SUMMARY "Long-term inc. temp rate violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 371
-
-envLTIncTempRateViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Long-term increasing temperature rate cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Long-term inc. temp rate violation cleared."
-   --#SUMMARY "Long-term inc. temp rate violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 372
-
-envLTDecTempRateViolation TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "SEVERE: Long-term decreasing temperature rate violated on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Long-term dec. temp rate violation."
-   --#SUMMARY "Long-term dec. temp rate violation."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 373
-
-envLTDecTempRateViolationCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { emsIdentSerialNumber, emsIdentEMSName, emsProbeStatusProbeTemperature, emsStatusSysTempUnits, 
-               emsProbeStatusProbeIndex, emsProbeStatusProbeName, mtrapargsString }
-   DESCRIPTION
-       "INFORMATIONAL: Long-term decreasing temperature rate cleared on the probe. 
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the current temperature. 
-        The fourth argument is the temperature scale. 
-        The fifth argument is the probe number. 
-        The sixth argument is the probe name."
-   --#TYPE "APC ENV: Long-term dec. temp rate violation cleared."
-   --#SUMMARY "Long-term dec. temp rate violation cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 374
-
--- Battery Management System Traps
-
-bmsCriticalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A Battery Management System critical condition was detected.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC BMS: A critical condition was detected. "
-   --#SUMMARY "A critical condition was detected. "
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 375
-
-bmsCriticalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Battery Management System critical condition was cleared.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC BMS: A critical condition was cleared. "
-   --#SUMMARY "A critical condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 376
-
-bmsWarningCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Battery Management System warning condition was detected.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC BMS: A warning condition was detected. "
-   --#SUMMARY "A warning condition was detected. "
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 377
-
-bmsWarningConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: A Battery Management System warning condition was cleared.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC BMS: A warning condition was cleared. "
-   --#SUMMARY "A warning condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 378
-
-bmsInformationalCondition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Battery Management System informational condition was detected.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC BMS: Informational condition detected. "
-   --#SUMMARY "An informational condition was detected. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 379
-
-bmsInformationalConditionCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsString02, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A Battery Management System informational condition was cleared.
-       The first variable is the error condition text message.
-       The second variable is the error number."
-   --#TYPE "APC BMS: Informational condition was cleared. "
-   --#SUMMARY "An informational condition was cleared. "
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 380
-
--- xATS Traps
-
-xATSOutputVoltageLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The device three-phase output voltage of the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, from which the alarm was generated."
-   --#TYPE "APC XATS:  Output voltage out-of-range alarm."
-   --#SUMMARY "Output voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 381
-
-xATSOutputVoltageLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XATS: Output voltage back in range."
-   --#SUMMARY "Output voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 382
-
-xATSOutputVoltageHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The device three-phase output voltage of the device is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts.
-        The fifth argument is the threshold, in tenths of Volts, above which the alarm is generated."
-   --#TYPE "APC XATS: Output voltage out-of-range alarm."
-   --#SUMMARY "Output voltage is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 383
-
-xATSOutputVoltageHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output voltage is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1-N, 2=L2-N, 3=L3-N, 4=unused, 5=L1-L2, 6=L2-L3, 7=L3-L1).
-        The fourth argument is the measured voltage in tenths of Volts."
-   --#TYPE "APC XATS: Output voltage back in range."
-   --#SUMMARY "Output voltage in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 384
-
-xATSOutputCurrentLowAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices three-phase load current is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral, 5=L1-2, 6=L2-3, 7=L3-1).
-        The fourth argument is the measured current in Amps.
-        The fifth argument is the threshold, in Amps, from which the alarm was generated."
-   --#TYPE "APC XATS: Output (load) current out-of-range alarm."
-   --#SUMMARY "Output current is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 385
-
-xATSOutputCurrentLowAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral).
-        The fourth argument is the measured current in Amps."
-   --#TYPE "APC XATS: Output (load) current back in range."
-   --#SUMMARY "Output current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 386
-
-xATSOutputCurrentHighAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices three-phase load current is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral).
-        The fourth argument is the measured current in Amps.
-        The fifth argument is the threshold, in Amps, from which the alarm was generated."
-   --#TYPE "APC XATS: Output (load) current out-of-range alarm."
-   --#SUMMARY "Output current is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 387
-
-xATSOutputCurrentHighAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices three-phase output current is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3, 4=Neutral).
-        The fourth argument is the measured current in Amps."
-   --#TYPE "APC XATS: Output (load) current back in range."
-   --#SUMMARY "Output current in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 388
-
-
-xATSOutputFrequencyAlarm TRAP-TYPE
-  ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The devices output frequency is outside the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the frequency deviation from the nominal in tenths of Hertz.
-        The fourth argument is the frequency deviation threshold in tenths of Hertz, 
-        from which the alarm was generated."
-   --#TYPE "APC XATS: Output frequency out-of-range alarm."
-   --#SUMMARY "Output frequency is out-of-range."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 389
-
-xATSOutputFrequencyAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The devices output frequency is back within the specified limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Output frequency back in range."
-   --#SUMMARY "Output frequency in range."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 390
-
-xATSInternalCommError TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: There is an internal communication error in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Internal communication error."
-   --#SUMMARY "Internal communication error."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 391
-
-xATSInternalCommErrorCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Internal communication has been restored.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Internal Communication error cleared."
-   --#SUMMARY "ATS Communication error cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 392
-
-xATSDataCommMismatchError TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A data incompatibility exists within the device.  This
-        is typically the result of mismatches between firmware revisions
-        of the transfer switch controller and the Network Management interface.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Data mismatch error."
-   --#SUMMARY "ATS data mismatch error."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 393
-
-xATSDataCommMismatchErrorCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The internal data incompatibility has been resolved.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: data mismatch error cleared."
-   --#SUMMARY "ATS data mismatch error cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 394
-
-xATSGenCommLost TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The XATS cannot communicate with the generator.
-        This will make unavailable all the xATSGenerator OIDs.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: No communication with generator."
-   --#SUMMARY "ATS/Generator communication lost."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 395
-
-xATSGenCommEstablished TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The XATS has established communication with the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Communication with generator established."
-   --#SUMMARY "ATS/generator communication established."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 396
-   
-xATSNeutralPosition TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
-                mtrapargsString }
-   DESCRIPTION
-      "WARNING: XATS has transferred to neutral position.
-        In this position neither Source 1 nor Source 2 is selected,
-        and the XATS will have no output voltage.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the mode in which the switch is operating
-        (1=Auto, 2=Not-in-Auto, Abnormal Condition  3=Not-in-Auto, manual)."
-   --#TYPE "APC XATS: Transferred to the neutral (no output power) position."
-   --#SUMMARY "Transferred to neutral."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 397
-
-xATSSwitchTransferEvent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger,
-                mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: XATS has transferred from one source to the other.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the mode in which the switch is operating.
-        (1=Auto, 2=Not-in-Auto, Abnormal Condition  3=Not-in-Auto, manual).
-        The fourth argument is the input source selected (1=Source 1, 2=Source 2).
-        The fifth argument is type of transfer that took place. (1=Closed, 2=Open, 3=Unknown)"
-   --#TYPE "APC XATS: Transferred from Source-X to Source-Y."
-   --#SUMMARY "Source-to-Source transfer."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 398
-
-xATSInternalATSFault TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: An internal XATS fault has been detected.
-        The XATS may have forced itself to not-in-auto mode (abnormal condition),
-        as indicated by the xATSSwitchStatusAutoSwitchOperationalMode OID.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument indicates the detected fault.
-
-           1=Cannot Close S1
-           2=Cannot Close S2
-           3=Cannot Open S1
-           4=Cannot Open S2
-           5=Cannot Trip Open S1 
-           6=Cannot Trip Open S2 
-           7=Start Contact Failure
-           8=Voltage Sensing Failure"
-
-   --#TYPE "APC XATS: Internal fault detected."
-   --#SUMMARY "ATS internal fault detected."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 399
-
-xATSInternalATSFaultCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected internal XATS fault has been cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument indicates the detected fault.
-
-           1=Cannot Close S1
-           2=Cannot Close S2
-           3=Cannot Open S1
-           4=Cannot Open S2
-           5=Cannot Trip Open S1 
-           6=Cannot Trip Open S2 
-           7=Start Contact Failure
-           8=Voltage Sensing Failure"
-
-   --#TYPE "APC XATS: Internal fault cleared."
-   --#SUMMARY "ATS internal fault cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 400
-
-xATSEngineStartAsserted TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The XATS has asserted the Engine Start contact.
-        This should result in the generator producing output voltage.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument indicates the reason that the start signal was asserted
-        1=Unknown, 2=S1 Low Voltage, 3=S1 High Voltage, 4=S1 Line Imbalance,
-        5=S1 Freq Range, 6=S1 Bad Rotation."
-   --#TYPE "APC XATS: Engine Start signal asserted."
-   --#SUMMARY "Engine Start asserted."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 401
-
-xATSEngineStopAsserted TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The XATS has de-asserted the Engine Start contact.
-        This should result in the generator shutting down, and producing no output voltage.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Engine Stop signal asserted."
-   --#SUMMARY "Engine Stop asserted."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 402
-
-xATSStartFailure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator failed to start. After assertion of the
-        Engine Start signal, the quality of Source 2 was not seen as good.
-        This alarm can be cleared using the xATSSwitchStatusClearLatchedAlarms OID.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument indicates the line quality at S2
-         1=Unknown, 2=S2 Low Voltage, 3=S2 High Voltage, 4=S2 Line Imbalance,
-         4=S2 Freq Range, 5=S2 Bad Rotation."
-   --#TYPE "APC XATS: Generator failed to start alarm."
-   --#SUMMARY "Generator failed to start."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 403
-
-xATSStopFailure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The generator failed to stop. After de-assertion of the
-        Engine Start signal, the quality of Source 2 continued to be seen as good.
-        This alarm can be cleared using the xATSSwitchStatusClearLatchedAlarms OID.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Generator failed to stop alarm."
-   --#SUMMARY "Generator failed to stop."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 404
-
-xATSNotInAutomaticMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Automatic Transfer Switch is not in automatic mode.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The xATSSwitchStatusAutoSwitchStatus OID and the
-        xATSSwitchStatusAutoSwitchOperationalMode OID
-        can provide more information about the state of the XATS."
-   --#TYPE "APC XATS: XATS is not-in-automatic mode."
-   --#SUMMARY "ATS not in auto."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 405
-
-xATSNotInAutomaticModeCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Automatic Transfer Switch is in automatic mode.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: XATS in auto mode."
-   --#SUMMARY "ATS in auto mode."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 406
-
-xATSEpoTripped TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The device's Emergency Power Off (EPO) circuit is tripped.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Emergency Power Off (EPO) tripped."
-   --#SUMMARY "EPO tripped."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 407
-
-xATSEpoReset TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The device's Emergency Power Off (EPO) circuit has been
-        reset to the armed position.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Emergency Power Off (EPO) reset."
-   --#SUMMARY "EPO armed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 408
-
-xATSEpoTestMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The device's Emergency Power Off (EPO) circuit has been
-        switched back to the test position.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Emergency Power Off (EPO) in test mode."
-   --#SUMMARY "EPO disabled."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 409
-
-xATSEpoArmed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The device's Emergency Power Off (EPO) circuit has been
-        switched back to the armed position.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Emergency Power Off (EPO) enabled."
-   --#SUMMARY "EPO armed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 410
-
-xATSTestInitiated TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A scheduled test has been initiated.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the type of test initiated (1=scheduled, 2=manual)."
-   --#TYPE "APC XATS: Test initiated."
-   --#SUMMARY "Test initiated."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 411
-
-xATSTestCancelled TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The scheduled test has been canceled
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the type of test initiated (1=scheduled, 2=manual)."
-   --#TYPE "APC XATS: Test cancelled."
-   --#SUMMARY "Test cancelled."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 412
-
-xATSTestFailed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The initiated test has failed.
-        This alarm can be cleared using the xATSSwitchStatusClearLatchedAlarms OID.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Initiated test failed."
-   --#SUMMARY "Initiated test failed."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 413
-
-xATSTestPassed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The initiated test has passed
-        switched back to the armed position.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Initiated test passed."
-   --#SUMMARY "Initiated test passed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 414
-
-xATSInputContactStateAbnormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A user input contact on the device has changed to its abnormal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the input contact number. 
-        The fourth argument is the input contact name.
-        The fifth argument is the input contact state (1=OPEN, 2=CLOSED).
-        The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XATS: Input contact has changed to its abnormal state."
-   --#SUMMARY "Input contact has changed to its abnormal state."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 415
-
-xATSInputContactStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, 
-               mtrapargsString02, mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A user input contact on the device has changed to its normal state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the input contact number. 
-        The fourth argument is the input contact name.
-        The fifth argument is the input contact state (1=OPEN, 2=CLOSED).
-        The sixth argument is the configured normal input contact state (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XATS: Input contact has changed to its normal state."
-   --#SUMMARY "Input contact has changed to its normal state."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 416
-
-xATSRemoteStartContactMismatch TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The state of the generator's Remote Start input
-        and the ATS's Engine Start output do not match. 
-        This indicates something wrong in the Engine Start wiring,
-        which must be corrected. This condition will prevent the 
-        generator from being started when needed.
-
-          (See also: xATSGeneratorStatusRemoteStart 
-           and xATSSwitchStatusEngineStartSignal OIDs)
-
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Generator/ATS start contact mismatch."
-   --#SUMMARY "Generator/ATS start contact mismatch."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 417
-
-xATSRemoteStartContactMismatchCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Mismatch in the state of the generator's 
-        Remote Start input and the ATS's Engine Start output as been resolved. 
-        This indicates something wrong in the Engine Start wiring,
-        which must be corrected. This condition will prevent the 
-        generator from being started when needed.
-
-          (See also: xATSGeneratorStatusRemoteStart 
-           and xATSSwitchStatusEngineStartSignal OIDs)
-
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Generator/ATS start contact mismatch cleared."
-   --#SUMMARY "Generator/ATS start contact mismatch cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 418
-
-xATSDoorOpenAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The XATS exterior panel door is open.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Panel door is open alarm."
-   --#SUMMARY "Panel door open alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 419
-
-xATSDoorOpenAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The external door to the device is closed.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Panel door open alarm cleared."
-   --#SUMMARY "Panel door open alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 420
-
-xATSDCBackupAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The XATS's DC backup has been lost. The XATS will lose power
-        on Source 1 failure, causing the Engine Start signal to be asserted.
-        The XATS will then restart from Source 2.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: DC backup failure."
-   --#SUMMARY "ATS DC backup failure."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 421
-
-xATSDCBackupAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: DC backup alarm has been cleared in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: DC backup alarm cleared."
-   --#SUMMARY "DC backup alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 422
-
--- xATS Generator Traps
-
-xATSGeneratorLowCoolantLevelAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Low coolant level has been detected in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low coolant level alarm."
-   --#SUMMARY "Generator low coolant level alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 423
-
-xATSGeneratorLowCoolantLevelAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected low coolant level has been cleared in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low coolant level alarm cleared."
-   --#SUMMARY "Generator low coolant level alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 424
-
-xATSGeneratorVeryLowCoolantLevelAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Very low coolant level has been detected in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator very low coolant level alarm."
-   --#SUMMARY "Generator very low coolant level alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 425
-
-xATSGeneratorVeryLowCoolantLevelAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected Very low coolant level has been cleared in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator very low coolant level alarm cleared."
-   --#SUMMARY "Generator very low coolant level alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 426
-
-xATSGeneratorHighCoolantTempAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: High coolant temperature has been detected in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator high coolant temperature alarm."
-   --#SUMMARY "Generator high coolant temperature alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 427
-
-xATSGeneratorHighCoolantTempAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected high coolant temperature has been cleared in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator high coolant temperature alarm cleared."
-   --#SUMMARY "Generator high coolant temperature alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 428
-
-xATSGeneratorVeryHighCoolantTempAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Very high coolant temperature has been detected in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator very high coolant temperature alarm."
-   --#SUMMARY "Generator very high coolant temperature alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 429
-
-xATSGeneratorVeryHighCoolantTempAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The Very high coolant temperature condition has been cleared in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator very high coolant temperature alarm cleared."
-   --#SUMMARY "Generator very high coolant temperature alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 430
-
-xATSGeneratorLowCoolantTempAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Low coolant temperature has been detected in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low coolant temperature alarm."
-   --#SUMMARY "Generator low coolant temperature alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 431
-
-xATSGeneratorLowCoolantTempAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The low coolant temperature condition has been cleared in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low coolant temperature alarm cleared."
-   --#SUMMARY "Generator low coolant temperature alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 432
-
-xATSGeneratorLowOilLevelAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Low oil level has been detected in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low oil level alarm."
-   --#SUMMARY "Generator low oil level alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 433
-
-xATSGeneratorLowOilLevelAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Low oil level alarm has been cleared in the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low oil level alarm cleared."
-   --#SUMMARY "Generator low oil level alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 434
-   
-xATSGeneratorLowBatteryVoltDuringCrankAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator's battery voltage has been detected 
-        as low while cranking the engine.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Low batt. voltage while cranking alarm."
-   --#SUMMARY "Generator low battery volts while cranking alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 435
-
-xATSGeneratorLowBatteryVoltDuringCrankAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator's low battery voltage while
-        cranking condition has been cleared.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "XGEN: Generator low batt. voltage while cranking alarm cleared."
-   --#SUMMARY "Generator low battery volts while cranking alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 436
-
-xATSGeneratorVeryLowBatteryVoltDuringCrankAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator's battery voltage has been detected 
-        as very low while cranking the engine.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "XGEN: Generator v.low battery voltage while cranking alarm."
-   --#SUMMARY "Generator v.low battery volts while cranking alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 437
-
-xATSGeneratorVeryLowBatteryVoltDuringCrankAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator's high battery voltage while
-        cranking condition has been cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "XGEN: Generator v.low batt volt, while cranking alarm cleared."
-   --#SUMMARY "Generator v.low battery volts while cranking alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 438
-
-xATSGeneratorEStop TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator's emergency stop input has been activated.
-        After the emergency stop signal has been removed, the E-Stop condition  
-        must be cleared before the generator can be started again.
-        E-Stop conditions can only be cleared via the generator front panel.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code.
-        The fourth argument is the type of E-Stop (1=LOCAL, 2=REMOTE)."
-   --#TYPE "APC XGEN: Generator emergency stop engaged."
-   --#SUMMARY "Generator emergency stop engaged."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 439
-
-xATSGeneratorEStopCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator's emergency stop condition has been cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code.
-        The fourth argument is the type of E-Stop (1=LOCAL, 2=REMOTE)."
-   --#TYPE "APC XGEN: Generator emergency stop condition cleared."
-   --#SUMMARY "Generator emergency stop condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 440
-
-xATSGeneratorHighBatteryVolt TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The generator's battery voltage has been detected as high.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator high battery voltage."
-   --#SUMMARY "Generator high battery volts."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 441
-
-xATSGeneratorHighBatteryVoltCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected high battery voltage has been cleared, on the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator high battery voltage condition cleared."
-   --#SUMMARY "Generator high battery volts condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 442
-
-xATSGeneratorLowBatteryVolt TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator's battery voltage has been detected as low.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low battery voltage."
-   --#SUMMARY "Generator low battery volts."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 443
-
-xATSGeneratorLowBatteryVoltCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected low battery voltage has been cleared, on the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low battery voltage condition cleared."
-   --#SUMMARY "Generator low battery volts condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 444
-
-xATSGeneratorControlSwitchNotAuto TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The control switch on the generator is not in auto position.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator not-in-automatic mode."
-   --#SUMMARY "Generator not-in-auto."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 445
-
-xATSGeneratorControlSwitchNotAutoCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The control switch on the generator is in auto position.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator automatic mode restored."
-   --#SUMMARY "Generator not-in-auto cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 446
-
-xATSGeneratorLowOilPressure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator's oil pressure has been detected as low.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low oil pressure."
-   --#SUMMARY "Generator low oil pressure."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 447
-
-xATSGeneratorLowOilPressureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected low oil pressure has been cleared, on the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator low oil pressure condition cleared."
-   --#SUMMARY "Generator low oil pressure condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 448
-
-xATSGeneratorVeryLowOilPressure TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator's oil pressure has been detected as very low.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator v.low oil pressure."
-   --#SUMMARY "Generator v.low oil pressure."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 449
-
-xATSGeneratorVeryLowOilPressureCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected v.low oil pressure has been cleared, on the generator.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator v.low oil pressure condition cleared."
-   --#SUMMARY "Generator v.low oil pressure condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 450
-
-xATSGeneratorOverload TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator is overloaded.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator is in overload event."
-   --#SUMMARY "Generator on overload event."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 451
-
-xATSGeneratorOverloadCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator is running within loading limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator is in overload event cleared."
-   --#SUMMARY "Generator on overload event cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 452
-
-xATSGeneratorLowACVEvent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator AC voltage is outside the acceptable bounds.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: State of the Generator ac voltage."
-   --#SUMMARY " State of the Generator ac voltage."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 453
-
-xATSGeneratorLowACVEventCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator AC voltage is within normal bounds.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: State of the Generator ac voltage cleared."
-   --#SUMMARY "State of the Generator ac voltage cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 454
-
-xATSGeneratorHighACVEvent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator AC voltage is outside the acceptable bounds.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: State of the Generator ac voltage."
-   --#SUMMARY " State of the Generator ac voltage."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 455
-
-xATSGeneratorHighACVEventCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator AC voltage is within normal bounds.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: State of the Generator ac voltage cleared."
-   --#SUMMARY "State of the Generator ac voltage cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 456
-
-xATSGeneratorOverspeed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator is running over the acceptable RPM.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator overspeed condition."
-   --#SUMMARY "Generator overspeed condition."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 457
-
-xATSGeneratorOverspeedCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator overspeed shutdown has been cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator overspeed condition cleared."
-   --#SUMMARY "Generator overspeed condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 458
-
-xATSGeneratorEngineCold TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator engine is cold, may not start.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator engine is cold, may not start."
-   --#SUMMARY "Generator engine is cold."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 459
-
-xATSGeneratorEngineColdCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The engine is not cold to start.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Engine is cold to start condition cleared."
-   --#SUMMARY "Engine is cold to start condition cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 460
-
-xATSGeneratorOutputBreakerOpen TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generators output breaker has been detected as open.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator output breaker open alarm."
-   --#SUMMARY "Generator output breaker open."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE NONOPERATIONAL
-   ::= 461
-
-xATSGeneratorOutputBreakerOpenCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The engine is not cold to start.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator output breaker open alarm cleared."
-   --#SUMMARY "Generator output breaker open cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 462
-
-xATSGeneratorLowFuelLevelAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The tank fuel level is below the limits specified
-        in the xATSGeneratorFuelSystemLowFuelLevelThreshold OID.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the measured fuel level in percent of full."
-   --#TYPE "APC XGEN: Low fuel level alarm."
-   --#SUMMARY "Generator low fuel level alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 463
-
-xATSGeneratorLowFuelLevelAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The tank fuel level is back above the specified limit.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XGEN: Low fuel level alarm cleared."
-   --#SUMMARY "Generator low fuel level alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 464
-
-xATSGeneratorVeryLowFuelLevelAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The tank fuel level is below the low threshold limits.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the measured tank fuel level in percent of full."
-   --#TYPE "APC XGEN: Very Low fuel level alarm."
-   --#SUMMARY "Generator very low fuel level alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 465
-
-xATSGeneratorVeryLowFuelLevelAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected low tank level has been cleared in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XGEN: Very low fuel level alarm cleared."
-   --#SUMMARY "Generator very low fuel level alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 466
-
-xATSGeneratorLowRunTimeAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The estimated runtime is below the limits specified.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the estimated runtime in hours."
-   --#TYPE "APC XGEN: Low run time alarm."
-   --#SUMMARY "Generator low run time alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 467
-
-xATSGeneratorLowRunTimeAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected low runtime has been cleared in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XGEN: Low run time alarm cleared."
-   --#SUMMARY "Generator low run time alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 468
-
-xATSGeneratorVeryLowRunTimeAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The estimated runtime is below the limits specified
-        in the xATSGeneratorFuelSystemVeryLowRunTimeThreshold OID.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the estimated runtime in hours."
-   --#TYPE "APC XGEN: Very low run time alarm."
-   --#SUMMARY "Generator very low run time alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 469
-
-xATSGeneratorVeryLowRunTimeAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The detected low runtime has been cleared in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XGEN: Very low run time alarm cleared."
-   --#SUMMARY "Generator very low run time alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 470
-
-xATSGeneratorServiceDueAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The generator is due for scheduled service.
-        Generation of this alarm is based on calender days since 
-        and/or actual generator run-hours since last service.
-        This alarm is cleared using the xATSGeneratorServiceResetRecord OID.
-
-          (See also: xATSGeneratorServiceCalendarIntervalThreshold
-           and xATSGeneratorServiceRunHoursThreshold OIDs)
-
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Generator scheduled maintenance is due."
-   --#SUMMARY "Generator maintenance due."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 471
-
-xATSGeneratorServiceDueAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator's service registers have been reset.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Generator service due alarm is cleared."
-   --#SUMMARY "Generator service alarm is cleard."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 472
-
-xATSGeneratorShutdown TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator is shutdown.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator shutdown."
-   --#SUMMARY "Generator shutdown"
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 473
-
-xATSGeneratorShutdownCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The generator shutdown alarm is cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator shutdown is cleared."
-   --#SUMMARY "Generator shutdown is cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 474
-
-xATSGeneratorBatteryCharger TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: The generator battery charger is nonfunctional.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator batt. charger is nonfunctional."
-   --#SUMMARY "Generator battery charger is nonfunctional"
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 475
-
-xATSGeneratorBatteryChargerCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName, mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: nonfunctionality of the generator battery is cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: " Nonfunctionality of battery charger is cleared."
-   --#SUMMARY "non-functionality of Generator battery charger is cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 476
-
-xATSGeneratorGenericEvent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: Any generic generator event.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generator generic event."
-   --#SUMMARY "Generator generic event."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 477
-
-xATSGeneratorGenericEventCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xATSIdentSerialNumber, xATSIdentProductName,  mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Generated generic generator event is cleared.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the OEM's fault/event code."
-   --#TYPE "APC XGEN: Generic generator event is cleared."
-   --#SUMMARY "Generic generator event is cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 478
-
--- xPDU Traps (part 2)
-
-xPDUInternalCommErrorCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Internal communication has been restored.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Internal Communication error cleared."
-   --#SUMMARY "Communication error cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 479
-
-xPDUSystemStateAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
-               mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The PDU's breakers (Q1, Q2 & Q3) are in a configuration that might lead
-        to system unavailability.  it may signify a temporary condition, when the breakers
-		are placed in an atypical manner as the user transitions to (UPS OPERATION or MAINTENANCE BYPASS)
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the type of alarm
-        (1=NO UPS INPUT, 2=NO PANEL FEED, 3=ATYPICAL BYPASS MODE)."
-   --#TYPE "APC XPDU: System state alarm ."
-   --#SUMMARY "PDU state alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 480
-
-xPDUSystemStateNormal TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, 
-               mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The PDU's breakers (Q1, Q2 & Q3) are set in a configuration
-        that is a non-alarm state.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the type of alarm (1=UPS OPERATION, 2=MAINTENANCE BYPASS)."
-   --#TYPE "APC XPDU: System state returned to normal."
-   --#SUMMARY "PDU state normal."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 481
-
-xPDUEpoTestMode TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "WARNING: The device's Emergency Power Off (EPO) circuit has been
-        switched back to the test position.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Emergency Power Off (EPO) in test mode."
-   --#SUMMARY "EPO disabled."
-   --#ARGUMENTS { }
-   --#SEVERITY WARNING
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 482
-
-xPDUEpoArmed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: The device's Emergency Power Off (EPO) circuit has been
-        switched back to the armed position.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Emergency Power Off (EPO) enabled."
-   --#SUMMARY "EPO armed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 483
-
-xPDUFuseBlownAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
-               mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: One or more fuses in this PDU have been detected as open.
-        These fuses are in the feed to the UPS associated with this PDU.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3)."
-   --#TYPE "APC XPDU: Check fuse alarm."
-   --#SUMMARY "Fuse detected opened."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 484
-
-xPDUFuseBlownAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
-               mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A previous check fuse alarm in this PDU has cleared.
-        These fuses are in the feed to the UPS associated with this PDU.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the phase (1=L1, 2=L2, 3=L3)."
-   --#TYPE "APC XPDU: Check fuse alarm cleared."
-   --#SUMMARY "Fuse alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 485
-
-xPDUBreakerPositionAlarm TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, 
-               mtrapargsInteger, mtrapargsInteger02, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: A PDU breaker is in a state that compromises system availability.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the breaker (1=MAIN INPUT, 2=BYPASS INPUT, 3=CROSS TIE).
-        The fourth argument is the breaker position (1=OPEN, 2=CLOSED)."
-   --#TYPE "APC XPDU: Breaker position alarm."
-   --#SUMMARY "Breaker position alarm."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 486
-
-xPDUBreakerPositionAlarmCleared TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName,
-               mtrapargsInteger, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A PDU breaker is no longer in a state that compromises system availability.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the breaker (1=MAIN INPUT, 2=BYPASS INPUT, 3=CROSS TIE)."
-   --#TYPE "APC XPDU: Breaker position alarm cleared."
-   --#SUMMARY "Breaker alarm cleared."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 487
-
-xPDUBreakerChangeEvent TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsInteger,
-               mtrapargsInteger02, mtrapargsInteger03, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: A system breaker or switch within the device has changed state.
-	    They are generated when any of the Q1, Q2 or Q3 breakers have changed states.
-        The first argument is the host device serial number.
-        The second argument is the host device name.
-        The third argument is the breaker that has changed
-        (1=UPS FEED (Q1), 2=UPS OUTPUT(Q2), 3=MAINTENANCE BYPASS (Q3).
-        The fourth argument is the state of the breaker that has changed (1=OPEN, 2=CLOSED).
-        The fifth argument is a 8-bit field representing the state of all breakers in the system,
-		when any of one of the Q1, Q2 or Q3 breakers have changed state.
-
-        The bit map is represented in the following manner (b7, b6 ... b0)
-		b0 - UPS FEED (Q1)
-		b1 - MAINTENANCE BYPASS (Q3)
-		b2 - UPS OUTPUT (Q2)
-        b3 - MAIN INPUT
-		b4 - BYPASS INPUT
-		b5 - CROSS-TIE OUTPUT
-
-        Example:  value of 60 (0x3C) indicates that the CROSS_TIE, BYPASS and MAIN INPUT, and Q2 breakers 
-        are CLOSED and Q2, Q1 breakers are OPEN." 
-   --#TYPE "APC XPDU: Breaker/switch change event."
-   --#SUMMARY "Breaker/switch change event."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 488
-
-xPDUControllerFirmwareUpdateTransferStart TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Start Controller firmware transfer in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Start controller firmware transfer."
-   --#SUMMARY "Start controller firmware transfer."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 489
-
-xPDUControllerFirmwareUpdateTransferComplete TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Transfer of Controller firmware was completed in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Controller firmware transfer completed."
-   --#SUMMARY "Controller firmware transfer completed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 490
-
-xPDUControllerFirmwareUpdateTransferFailed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Transfer of Controller firmware has failed in the PDU.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XPDU: Controller firmware transfer failed."
-   --#SUMMARY "Controller firmware transfer failed."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 491
-
-xATSControllerFirmwareUpdateTransferStart TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Start Controller firmware transfer in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Start controller firmware transfer."
-   --#SUMMARY "Start controller firmware transfer."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 492
-
-xATSControllerFirmwareUpdateTransferComplete TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "INFORMATIONAL: Transfer of Controller firmware was completed in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Controller firmware transfer completed."
-   --#SUMMARY "Controller firmware transfer completed."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 493
-
-xATSControllerFirmwareUpdateTransferFailed TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { xPDUIdentSerialNumber, xPDUIdentProductName, mtrapargsString }
-   DESCRIPTION
-      "SEVERE: Transfer of Controller firmware has failed in the device.
-        The first argument is the host device serial number.
-        The second argument is the host device name."
-   --#TYPE "APC XATS: Controller firmware transfer failed."
-   --#SUMMARY "Controller firmware transfer failed."
-   --#ARGUMENTS { }
-   --#SEVERITY SEVERE
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE DEGRADED
-   ::= 494
-
-apcDeviceShutdownHeartbeat TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { mtrapargsInteger, mtrapargsTimeTicks, mtrapargsString}
-   DESCRIPTION
-      "INFORMATIONAL: "
-   --#TYPE "APC X:"
-   --#SUMMARY "."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 999
-
-apcDiscoveryAlarmStateTableUpdate TRAP-TYPE
-   ENTERPRISE apc
-   VARIABLES { apcDiscoveryDeviceAlarmStateChangeCount }
-   DESCRIPTION
-      "INTERNAL: A Discovery Alarm State Table Update trap is sent
-       when any data alarm state is added, removed, or its parameters
-       are changed in the condition table.  This trap is
-       only for machine-to-machine communication. "
-   --#TYPE "APC X:"
-   --#SUMMARY "."
-   --#ARGUMENTS { }
-   --#SEVERITY INFORMATIONAL
-   --#TIMEINDEX 1
-   --#HELP ""
-   --#HELPTAG 0
-   --#STATE OPERATIONAL
-   ::= 1000
-   
-END
diff --git a/fence/agents/baytech/Makefile b/fence/agents/baytech/Makefile
deleted file mode 100644
index 23bfe58..0000000
--- a/fence/agents/baytech/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_baytech
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/baytech/fence_baytech.8 b/fence/agents/baytech/fence_baytech.8
deleted file mode 100644
index aa17955..0000000
--- a/fence/agents/baytech/fence_baytech.8
+++ /dev/null
@@ -1,84 +0,0 @@
-.TH fence_baytech 8
-
-.SH NAME
-fence_baytech - I/O Fencing agent for Baytech RPC switches in combination with a Cyclades Terminal Server
-
-.SH SYNOPSIS
-.B
-fence_baytech
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-
-This fencing agent is written for the Baytech RPC27-20nc in combination with
-a Cyclades terminal server.  The Cyclades TS exports the RPC's serial port
-via a Telnet interface.  Other interfaces, such as SSH, are possible.  
-However, this script relies upon the assumption that Telnet is used.  Future
-features to this agent would allow the agent to work with a multitude of 
-different communication protocols such as Telnet, SSH or Kermit.
-
-The other assumption that is made is that Outlet names do not end in space.
-The name "Foo" and "Foo    " are identical when the RPC prints them with
-the status command.
-
-fence_baytech accepts options on the command line as well as from stdin.
-fenced sends parameters through stdin when it execs the agent.  fence_baytech
-can be run by itself with command line options which is useful for testing.
-
-Vendor URL: http://www.baytech.net
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIhost\fP
-IP address or hostname to connect to.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlogin\fP
-Username name for the switch.
-.TP
-\fB-n\fP \fIport\fP
-The name of the outlet to act upon.
-.TP
-\fB-o\fP \fIaction\fP
-The action required. This can be on, off, status or reboot (default)
-.TP
-\fB-p\fP \fIpassword\fP
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-q\fP
-Quiet mode: print only error messages.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_baytech.
-.TP
-\fIhost = < hostname | ip >\fR
-IP address or hostname to connect to.
-.TP
-\fIlogin = < param >\fR
-Login name.
-.TP
-\fIaction = < param >\fR
-The action required. This can be on, off, status or reboot (default)
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-.TP
-\fIoutlet = < param >\fR
-The name of the outlet to act upon.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/baytech/fence_baytech.pl b/fence/agents/baytech/fence_baytech.pl
deleted file mode 100644
index b625968..0000000
--- a/fence/agents/baytech/fence_baytech.pl
+++ /dev/null
@@ -1,683 +0,0 @@
-#!/usr/bin/perl
-
-# This fencing agent is written for the Baytech RPC27-20nc in conjunction with
-# a Cyclades terminal server.  The Cyclades TS exports the RPC's serial port
-# via a Telnet interface.  Other interfaces, such as SSH, are possible.  
-# However, this script relys upon the assumption that Telnet is used.  Future
-# features to this agent would allow the agent to work with a mulitude of 
-# different communication protocols such as Telnet, SSH or Kermit.
-#
-# The other assumption that is made is that Outlet names do not end in space.
-# The name "Foo" and "Foo    " are identical when the RPC prints them with
-# the status command.
-
-use Net::Telnet;
-use Getopt::Std;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-
-sub rpc_error 
-{
-	if (defined $error_message && $error_message ne "")
-	{
-		chomp $error_message;
-		die "$error_message\n";
-	}
-	else
-	{
-		die "read timed-out\n"
-	}
-}
-
-sub usage 
-{
-
-    print "Usage:\n";
-    print "\n";
-    print "$pname [options]\n";
-    print "\n";
-    print "Options:\n";
-    print " -a host        host to connect to\n";
-    print " -D             debugging output\n";
-    print " -h             usage\n";
-    print " -l string      user name\n";
-    print " -o string      action: on,off,status or reboot (default)\n";
-    print " -n string      outlet name\n";
-    print " -p string      password\n";
-    print " -S path        script to run to retrieve password\n";
-    print " -V             version\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg)=@_;
-  print $msg."\n" unless defined $quiet;
-  $t->close if defined $t;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg)=@_;
-  print STDERR $msg."\n" if $msg;
-  print STDERR "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-# Get operating paramters, either with getopts or from STDIN
-sub get_options
-{
-   $action = "Reboot";
-   if (@ARGV > 0) {
-      getopts("n:l:p:S:o:a:VhD") || fail_usage ;
-
-      usage if defined $opt_h;
-      version if defined $opt_V;
-
-      fail_usage "Unkown parameter." if (@ARGV > 0);
-
-   } else {
-      get_options_stdin();
-   } 
-
-   fail "failed: must specify hostname" unless defined $opt_a;
-   $host=$opt_a;
-   $port=23 unless ($opt_a =~ /:/);
-
-   $action = $opt_o if defined $opt_o;
-   fail "failed: unrecognised action: $action"
-         unless $action=~ /^(Off|On|Reboot|status)$/i;
-   
-   fail "failed: no outletname" unless defined $opt_n;
-   $outlet = $opt_n;
-
-   $debug=$opt_D if defined $opt_D;
-   $quiet=$opt_q if defined $opt_q;
-   $user=$opt_l if defined $opt_l;
-   $passwd=$opt_p if defined $opt_p;
-   if (defined $opt_S) {
-     $pwd_script_out = `$opt_S`;
-     chomp($pwd_script_out);
-     if ($pwd_script_out) {
-       $passwd=$pwd_script_out;
-     }
-   }
-
-   if(defined $passwd && !defined $user)
-   {
-      fail "failed: password given without username";
-   }
-}
-
-# Get options from STDIN
-sub get_options_stdin
-{
-    my $opt;
-    my $line = 0;
-    while( defined($in = <>) )
-    {
-	$_ = $in;
-        chomp;
-
-	# strip leading and trailing whitespace
-        s/^\s*//;
-        s/\s*$//;
-
-	# skip comments
-	next if /^#/;
-
-        $line+=1;
-        $opt=$_;
-	next unless $opt;
-
-	($name,$val)=split /\s*=\s*/, $opt;
-
-	if ( $name eq "" )
-	{
-	   print STDERR "parse error: illegal name in option $line\n";
-	   exit 2;
-	} 
-
-        # DO NOTHING -- this field is used by fenced 
-	elsif ($name eq "agent" ) { } 
-
-	elsif ($name eq "host" ) 
-	{
-	    $opt_a = $val;
-	} 
-
-	elsif ($name eq "login" ) 
-	{
-	    $opt_l = $val;
-	} 
-
-	elsif ($name eq "passwd" ) 
-	{
-	    $opt_p = $val;
-	} 
-
-    elsif ($name eq "passwd_script") {
-        $opt_S = $val;
-    }
-
-	elsif ($name eq "action" ) 
-	{
-	    $opt_o = $val;
-	} 
-
-	elsif ($name eq "outlet" ) 
-	{
-	    $opt_n = $val;
-	} 
-
-    }
-}
-
-# Get a bunch of lines.  The newlines must terminate complete lines.
-sub getlines
-{
-	my $data=$t->get();
-	return undef unless defined $data;
-	my @chars = split //,$data;
-	my @lines;
-	my $line="";
-
-	for (my $i=0;$i<@chars;$i++)
-	{
-		$line = $line.$chars[$i];
-		next unless $chars[$i] eq "\n";
-		$lines[@lines] = $line;
-		$line = "";
-	}
-	$lines[@lines] = $line unless $line eq "";
-
-	return @lines;
-}
-
-# Fill the global input buffer of lines read.  All lines are terminated with
-# a newline.  If a line is not terminated, the next call to fill buffer will
-# append the last line of the input buffer with the first line that it gets from
-# getlines()
-sub fill_buffer
-{
-	my @lines = getlines();
-	return undef unless @lines;
-
-	if(@buffer)
-	{
-		if ( $buffer[$#buffer]=~/\n/) { }
-		else
-		{
-			$buffer[$#buffer] = $buffer[$#buffer].$lines[0];
-			shift @lines;
-		}
-	}
-
-	foreach (@lines) 
-	{ 
-		push @buffer,$_;
-	}
-}
-
-
-
-#
-# ($p_index, at data) = get_match @patterns;
-#
-# searches the input buffers for the patterns specified by the regeps in 
-# @patterns, when a match is found, all the lines through the matched 
-# pattern line are removed from the global input buffer and returned in the
-# array @data.  The index into @patterns for the matching pattern is also
-# returned.
-sub get_match
-{
-	my (@patterns) = @_;
-	$b_index = 0 unless defined $b_index;
-
-	fill_buffer() unless defined @buffer;
-
-	for(;;)
-	{
-		for(my $bi=$b_index; $bi<@buffer; $bi++)
-		{
-			for(my $pat=0; $pat<@patterns; $pat++)
-			{
-				if($buffer[$bi] =~ /$patterns[$pat]/)
-				{
-					$b_index = 0;
-					my @rtrn = splice(@buffer,0,$bi);
-					shift @buffer;
-				
-					if($debug)
-					{
-						foreach (@rtrn) { print $_ }
-						print "$patterns[$pat] ";
-					}
-					
-					return ($pat, at rtrn);
-				}
-			}
-			$b_index = $bi;
-		}
-
-		fill_buffer();
-	}
-}
-
-#
-# ($bt_num,$bt_name,$bt_state,$bt_locked) = parse_status $outlet, at data;
-#
-# This parses the data @data and searches for an outlet named $outlet.
-# The data will be in the form:
-# 
-#   Average Power:    0 Watts        Apparent Power:   17 VA
-# 
-#   True RMS Voltage: 120.0 Volts
-# 
-#   True RMS Current:   0.1 Amps     Maximum Detected:   0.2 Amps     
-# 
-#   Internal Temperature:  19.5 C
-# 
-#   Outlet Circuit Breaker: Good
-# 
-#    1)...Outlet  1       : Off           2)...Outlet  2       : Off          
-#    3)...Outlet  3       : On            4)...Outlet  4       : On           
-#    5)...Outlet  5       : On            6)...Outlet  6       : On           
-#    7)...Outlet  7       : On            8)...Outlet  8       : On           
-#    9)...Outlet  9       : On           10)...Outlet 10       : On           
-#   11)...Outlet 11       : On           12)...Outlet 12       : On           
-#   13)...Outlet 13       : On           14)...Outlet 14       : On           
-#   15)...Outlet 15       : On           16)...Outlet 16       : On           
-#   17)...Outlet 17       : On           18)...Outlet 18       : On           
-#   19)...Outlet 19       : On           20)...Outlet 20       : On    Locked 
-#
-sub parse_status
-{
-	my $outlet = shift;
-	my @data = @_;
-
-	my $bt_num="";
-	my $bt_name="";
-	my $bt_state="";
-	my $bt_locked="";
-
-	# Verify that the Outlet name exists
-	foreach my $line (@data)
-	{
-		next unless $line =~ /^[ 12][0-9]\)\.\.\./;
-
-		my @entries = split /([ 12][0-9])\)\.\.\./,$line;
-	
-		foreach my $entry (@entries)
-		{
-			next if $entry eq "";
-			
-			if($entry =~ /^([ 12][0-9])$/)
-			{
-				$bt_num = $1;
-			}
-			elsif($entry =~ /^(.{15}) : (On|Off)(.*)/)
-			{
-	
-				$bt_name = $1;
-				$bt_state = $2;
-				$bt_locked = $3;
-	
-				$_ = $bt_name;
-				s/\s*$//;
-				$bt_name = $_;
-	
-				$_ = $bt_locked;
-				s/\s*$//;
-				$bt_locked = $_;
-	
-				last if ($bt_name eq $outlet);
-	
-				$bt_name = "";
-				next;
-			}
-			else
-			{
-				die "parse error: $entry";
-			}
-		}
-		last if ($bt_name ne "");
-	}
-	
-	if ($bt_name eq "")
-	{
-		$bt_num=undef;
-		$bt_name=undef;
-		$bt_state=undef;
-		$bt_locked=undef;
-	}
-
-	return ($bt_num,$bt_name,$bt_state,$bt_locked);
-}
-
-##########################################################################
-#
-# Main
-
-get_options;
-
-
-if (defined $port)
-{
-	$t = new Net::Telnet(Host=>$host, Port=>$port) or 
-		die "Unable to connect to $host:$port: ".($!?$!:$_)."\n";
-}
-else
-{
-	$t = new Net::Telnet(Host=>$host) or 
-		die "Unable to connect to $host: ".($!?$!:$_)."\n";
-}
-
-
-
-#> DEBUG $t->dump_log("LOG");
-
-$t->print("\n");
-
-my @patterns;
-$prompt_user="^Enter user name:";
-$prompt_pass="^Enter Password:";
-$prompt_cmd="^RPC-27>";
-$prompt_confirm_yn="^.*\\(Y/N\\)\\?";
-
-$patterns[0]=$prompt_user;
-$patterns[1]=$prompt_pass;
-$patterns[2]=$prompt_cmd;
-$patterns[3]=$prompt_confirm_yn;
-
-my $p_index;
-my @data;
-
-my $bt_num="";
-my $bt_name="";
-my $bt_state="";
-my $bt_locked="";
-my $exit=1;
-
-($p_index, at data) = get_match @patterns;
-
-#
-# Set errmode after first get_match.  This allows for more descriptive errors
-# when handling unexpected error conditions
-#
-$t->errmode(\&rpc_error);
-
-# At this point, the username is unknown.  We'll just
-# pass in an empty passwd so that we can get back to the 
-# login prompt.  
-#
-# FIXME
-# If this is the third login failure for this switch, an
-# additional newline will need to be made sent.  This script
-# does not handle that case at this time.  This will cause
-# a timeout on read and cause this to fail.  Rerunning the
-# script ought to work though.
-if ($patterns[$p_index] eq $prompt_pass)
-{
-	$t->print("\n");
-	($p_index, at data) = get_match @patterns;
-}
-
-# Enter user name:
-#
-# Depending how the RPC is configured, a user name may not be required.
-# We will only deal with usernames if prompted.  
-#
-# If there is no user/passwd given as a parameter, but the switch
-# expects one, rather than just fail, we will first try to
-# get the switch in a known state 
-my $warn_user="yes";
-my $warn_passwd="yes";
-
-$error_message = "Invalid user/password";
-
-for (my $retrys=0; $patterns[$p_index] eq $prompt_user ; $retrys++)
-{
-	$warn_passwd = "yes";
-	if(defined $user)
-	{
-		$t->print("$user\n");
-		$warn_user = "no";
-	}
-	else
-	{
-		$t->print("\n");
-
-	}
-	($p_index, at data) = get_match @patterns;
-
-	# Enter Password:
-	#
-	# Users don't have to have passwords either.  We will only check
-	# that the user specified a password if we were prompted by the
-	# RPC.
-	if ($patterns[$p_index] eq $prompt_pass)
-	{
-		if(defined $passwd)
-		{
-			$t->print("$passwd\n");
-			$warn_passwd = "no";
-		}
-		else
-		{
-			$t->print("\n");
-		}
-
-		($p_index, at data) = get_match @patterns;
-	}
-
-
-	#
-	# If a valid user name is given, but not a valid password, we
-	# will loop forever unless we limit the number of retries
-	#
-	# set the user to "" so we stop entering a valid username and
-	# force the login proccess to fail
-	#
-	if ($retrys>2)
-	{
-		$user = "";
-	}
-	elsif ($retrys>10)
-	{
-		die "maximum retry count exceeded\n";
-	}
-}
-
-#
-# reset errmode to die()
-#
-$t->errmode("die");
-
-# all through with the login/passwd.  If we see any other prompt it is an 
-# error.
-if ($patterns[$p_index] ne $prompt_cmd)
-{
-	$t->print("\n");
-	die "bad state: '$patterns[$p_index]'";
-}
-
-if (defined $user && ($warn_user eq "yes"))
-{
-	warn "warning: user parameter ignored\n";
-}
-
-if (defined $passwd && ($warn_passwd eq "yes"))
-{
-	warn "warning: passwd parameter ignored\n";
-}
-
-
-
-
-# We are now logged in, no need for these patterns.  We'll strip these
-# so that we don't have to keep searching for patterns that shouldn't
-# appear.
-shift @patterns;
-shift @patterns;
-
-# Get the current status of a particular outlet.  Explicitly pass
-# the status command in case the RPC is not configured to report the
-# status on each command completion.
-$t->print("status\n");
-($p_index, at data) = get_match @patterns;
-($bt_num,$bt_name,$bt_state,$bt_locked) = parse_status $outlet, at data;
-
-if (!defined $bt_name )
-{
-	# We have problems if there is not outlet named $outlet
-	print "Outlet \'$outlet\' not found\n";
-	$exit=1;
-}
-elsif ($action =~ /status/i)
-{
-	print "Outlet '$bt_name' is $bt_state and is ".
-		(($bt_locked eq "")?"not ":"")."Locked\n";
-
-	if ($bt_state =~ /on/i)
-	{
-		$exit=0;
-	} else {
-		$exit=2;
-	}
-}
-elsif ($bt_locked ne "")
-{
-	# Report an error if an outlet is locked since we can't actually 
-	# issue commands on a Locked outlet.  This will prevent false
-	# successes.
-	print "Outlet '$bt_name' is Locked\n";
-	$exit=1;
-}
-elsif (($action =~ /on/i && $bt_state eq "On") ||
-	($action =~ /off/i && $bt_state eq "Off") )
-{
-	# No need to issue the on/off command since we are already in 
-	# the desired state
-	print "Outlet '$bt_name' is already $bt_state\n";
-	$exit=0;
-}
-elsif ($action =~ /o(n|ff)/i)
-{
-	# On/Off command
-	$t->print("$action $bt_num\n");
-	($p_index, at data) = get_match @patterns;
-	
-	# Confirmation prompting maybe enabled in the switch.  If it is,
-	# we enter 'Y' for yes.
-	if ($patterns[$p_index] eq $prompt_confirm_yn)
-	{
-		$t->print("y\n");
-		($p_index, at data) = get_match @patterns;
-	}
-
-	$t->print("status\n");
-	($p_index, at data) = get_match @patterns;
-
-	($bt_num,$bt_name,$bt_state,$bt_locked) = parse_status $outlet, at data;
-	
-	if ($bt_state =~ /$action/i)
-	{
-		print "success: outlet='$outlet' action='$action'\n";
-		$exit=0;
-	}
-	else
-	{	
-		print "fail: outlet='$outlet' action='$action'\n";
-		$exit=1;
-	}
-}
-elsif ($action =~ /reboot/i)
-{
-	# Reboot command
-	$t->print("$action $bt_num\n");
-	($p_index, at data) = get_match @patterns;
-	
-	# Confirmation prompting maybe enabled in the switch.  If it is,
-	# we enter 'Y' for yes.
-	if ($patterns[$p_index] eq $prompt_confirm_yn)
-	{
-		$t->print("y\n");
-		($p_index, at data) = get_match @patterns;
-	}
-
-	# The reboot command is annoying.  It reports that the outlet will
- 	# reboot in 9 seconds.  Then it has a countdown timer.  We first
-	# look for the "Rebooting... 9" message, then we parse the remaining
-	# output to verify that it reaches 0 without skipping anything.
-	my $pass=0;
-	foreach (@data)
-	{
-		chomp;
-		my $line = $_;
-
-		# There is a countdown timer that prints a number, then sleeps a 
-		# second, then prints a backspace and then another number
-		#
-		# /^Rebooting\.\.\. 9\b8\b7\b6\b5\b4\b3\b2\b1\b0\b$/
-		if($line =~/^Rebooting\.\.\..*0[\b]$/)
-		{
-			$pass=1;
-			last;
-		}
-	}
-
-	if ($pass)
-	{
-		print "success: outlet='$outlet' action='$action'\n";
-		$exit=0;
-	}
-	else
-	{
-		print "fail: outlet='$outlet' action='$action'\n";
-		$exit=1;
-	}
-}
-else
-{
-	die "bad state";
-}
-
-# Clean up.  If we don't tell it to logout, then anybody else can log onto 
-# the serial port and have access to the switch without authentication (when 
-# enabled)
-$t->print("logout\n");
-$t->close;
-exit $exit;
diff --git a/fence/agents/bladecenter/Makefile b/fence/agents/bladecenter/Makefile
deleted file mode 100644
index 76b2a2c..0000000
--- a/fence/agents/bladecenter/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_bladecenter
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/bladecenter/fence_bladecenter.py b/fence/agents/bladecenter/fence_bladecenter.py
deleted file mode 100644
index 8b890e4..0000000
--- a/fence/agents/bladecenter/fence_bladecenter.py
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  Model                 Firmware
-## +--------------------+---------------------------+
-## (1) Main application	  BRET85K, rev 16  
-##     Boot ROM           BRBR67D, rev 16
-##     Remote Control     BRRG67D, rev 16
-##
-#####
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Bladecenter Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	try:
-		node_cmd = "system:blade\[" + options["-n"] + "\]>"
-
-		conn.send("env -T system:blade[" + options["-n"] + "]\r\n")
-		i = conn.log_expect(options, [ node_cmd, "system>" ] , int(options["-Y"]))
-		if i == 1:
-			## Given blade number does not exist
-			if options.has_key("-M"):
-				return "off"
-			else:
-				fail(EC_STATUS)
-		conn.send("power -state\r\n")
-		conn.log_expect(options, node_cmd, int(options["-Y"]))
-		status = conn.before.splitlines()[-1]
-		conn.send("env -T system\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	return status.lower().strip()
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "powerup",
-		'off': "powerdown"
-	}[options["-o"]]
-
-	try:
-		node_cmd = "system:blade\[" + options["-n"] + "\]>"
-
-		conn.send("env -T system:blade[" + options["-n"] + "]\r\n")
-		conn.log_expect(options, node_cmd, int(options["-Y"]))
-		conn.send("power -"+options["-o"]+"\r\n")
-		conn.log_expect(options, node_cmd, int(options["-Y"]))
-		conn.send("env -T system\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def get_blades_list(conn, options):
-	outlets = { }
-	try:
-		node_cmd = "system>"
-
-		conn.send("env -T system\r\n")
-		conn.log_expect(options, node_cmd, int(options["-Y"]))
-		conn.send("list -l 2\r\n")
-		conn.log_expect(options, node_cmd, int(options["-Y"]))
-
-		lines = conn.before.split("\r\n")
-		filter_re = re.compile("^\s*blade\[(\d+)\]\s+(.*?)\s*$")
-		for x in lines:
-			res = filter_re.search(x)
-			if res != None:
-				outlets[res.group(1)] = (res.group(2), "")
-
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	return outlets
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"cmd_prompt", "secure", "port", "identity_file", "separator",
-			"inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait", "missing_as_off" ]
-
-	atexit.register(atexit_handler)
-
-	all_opt["power_wait"]["default"] = "10"
-	all_opt["cmd_prompt"]["default"] = "system>"
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	docs = { }        
-	docs["shortdesc"] = "Fence agent for IBM BladeCenter"
-	docs["longdesc"] = "fence_bladecenter is an I/O Fencing agent \
-which can be used with IBM Bladecenters with recent enough firmware that \
-includes telnet support. It logs into a Brocade chasis via telnet or ssh \
-and uses the command line interface to power on and off blades."
-	docs["vendorurl"] = "http://www.ibm.com"
-	show_docs(options, docs)
-	
-	##
-	## Operate the fencing device
-	######
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status, get_blades_list)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.send("exit\r\n")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/bladecenter_snmp/Makefile b/fence/agents/bladecenter_snmp/Makefile
deleted file mode 100644
index d98cfa6..0000000
--- a/fence/agents/bladecenter_snmp/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_bladecenter_snmp
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/bladecenter_snmp/fence_bladecenter_snmp.py b/fence/agents/bladecenter_snmp/fence_bladecenter_snmp.py
deleted file mode 100644
index deceada..0000000
--- a/fence/agents/bladecenter_snmp/fence_bladecenter_snmp.py
+++ /dev/null
@@ -1,88 +0,0 @@
-#!/usr/bin/python
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-from fencing_snmp import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="IBM BladeCenter SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-### CONSTANTS ###
-# From fence_ibmblade.pl
-STATUSES_OID=".1.3.6.1.4.1.2.3.51.2.22.1.5.1.1.4" # remoteControlBladePowerState
-CONTROL_OID=".1.3.6.1.4.1.2.3.51.2.22.1.6.1.1.7" # powerOnOffBlade
-
-# Status constants returned as value from SNMP
-STATUS_DOWN=0
-STATUS_UP=1
-
-# Status constants to set as value to SNMP
-STATUS_SET_OFF=0
-STATUS_SET_ON=1
-
-### FUNCTIONS ###
-
-def get_power_status(conn,options):
-	(oid,status)=conn.get("%s.%s"%(STATUSES_OID,options["-n"]))
-	return (status==str(STATUS_UP) and "on" or "off")
-
-def set_power_status(conn, options):
-	conn.set("%s.%s"%(CONTROL_OID,options["-n"]),(options["-o"]=="on" and STATUS_SET_ON or STATUS_SET_OFF))
-
-def get_outlets_status(conn, options):
-	result={}
-
-	res_blades=conn.walk(STATUSES_OID,30)
-
-	for x in res_blades:
-		port_num=x[0].split('.')[-1]
-
-		port_alias=""
-		port_status=(x[1]==str(STATUS_UP) and "on" or "off")
-
-		result[port_num]=(port_alias,port_status)
-
-	return result
-
-# Define new options
-def ibmblade_define_defaults():
-	all_opt["snmp_version"]["default"]="1"
-
-# Main agent method
-def main():
-	global port_oid
-
-	device_opt = [ "help", "version", "agent", "quiet", "verbose", "debug",
-		       "action", "ipaddr", "login", "passwd", "passwd_script",
-		       "test", "port", "separator", "no_login", "no_password",
-		       "snmp_version", "community", "snmp_auth_prot", "snmp_sec_level",
-		       "snmp_priv_prot", "snmp_priv_passwd", "snmp_priv_passwd_script",
-		       "udpport","inet4_only","inet6_only",
-		       "power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	snmp_define_defaults ()
-	ibmblade_define_defaults()
-
-	options=check_input(device_opt,process_input(device_opt))
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for IBM BladeCenter over SNMP"
-	docs["longdesc"] = "fence_bladecenter_snmp is an I/O Fencing agent \
-which can be used with IBM BladeCenter chassis. It issues SNMP Set \
-request to BladeCenter chassis, rebooting, powering up or down \
-the specified Blade Server."
-	docs["vendorurl"] = "http://www.ibm.com"
-	show_docs(options, docs)
-
-	# Operate the fencing device
-	result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
-
-	sys.exit(result)
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/brocade/Makefile b/fence/agents/brocade/Makefile
deleted file mode 100644
index 6ac510f..0000000
--- a/fence/agents/brocade/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_brocade
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/brocade/fence_brocade.8 b/fence/agents/brocade/fence_brocade.8
deleted file mode 100644
index 812a3f9..0000000
--- a/fence/agents/brocade/fence_brocade.8
+++ /dev/null
@@ -1,84 +0,0 @@
-.TH fence_brocade 8
-
-.SH NAME
-fence_brocade - I/O Fencing agent for Brocade FC switches
-
-.SH SYNOPSIS
-.B
-fence_brocade
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_brocade is an I/O Fencing agent which can be used with Brocade FC 
-switches.  It logs into a Brocade switch via telnet and disables a specified 
-port.  Disabling the port which a machine is connected to effectively fences 
-that machine.  Lengthy telnet connections to the switch should be avoided 
-while a GFS cluster is running because the connection will block any necessary 
-fencing actions.
-
-fence_brocade accepts options on the command line as well as from stdin.
-fenced sends parameters through stdin when it execs the agent.  fence_brocade 
-can be run by itself with command line options which is useful for testing.
-
-After a fence operation has taken place the fenced machine can no longer connect
-to the Brocade FC switch.  When the fenced machine is ready to be brought back 
-into the GFS cluster (after reboot) the port on the Brocade FC switch needs to 
-be enabled. This can be done by running fence_brocade and specifying the 
-enable action.
-
-Vendor URL: http://www.brocade.com
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fP
-IP address of the switch.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlogin\fP
-Login name for the switch.
-.TP
-\fB-n\fP \fIport\fP
-The port number to disable on the switch.
-.TP
-\fB-o\fP \fIaction\fP
-The action required.  disable (default) or enable.
-.TP
-\fB-p\fP \fIpassword\fP
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-q\fP
-Quiet mode: print only error messages.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_brocade.
-.TP
-\fIipaddr = < hostname | ip >\fR
-IP address or hostname of the switch.
-.TP
-\fIlogin = < param >\fR
-Login name.
-.TP
-\fIoption = < param >\fR
-The action required.  disable (default) or enable.
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-.TP
-\fIport = < param >\fR
-The port number to disable on the switch.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/brocade/fence_brocade.pl b/fence/agents/brocade/fence_brocade.pl
deleted file mode 100644
index 933cecf..0000000
--- a/fence/agents/brocade/fence_brocade.pl
+++ /dev/null
@@ -1,255 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-use Net::Telnet ();
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-$opt_o = 'disable';        # Default fence action
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-sub usage
-{
-    print "Usage:\n";
-    print "\n";
-    print "$pname [options]\n";
-    print "\n";
-    print "Options:\n";
-    print "  -a <ip>          IP address or hostname of switch\n";
-    print "  -h               usage\n";
-    print "  -l <name>        Login name\n";
-    print "  -n <num>         Port number to operate on\n";
-    print "  -o <string>      Action:  disable (default) or enable\n";
-    print "  -p <string>      Password for login\n";
-    print "  -S <path>        Script to run to retrieve password\n";
-    print "  -q               quiet mode\n";
-    print "  -V               version\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg) = @_;
-  print $msg."\n" unless defined $opt_q;
-  $t->close if defined $t;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg)=@_;
-  print STDERR $msg."\n" if $msg;
-  print STDERR "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-
-if (@ARGV > 0) {
-   getopts("a:hl:n:o:p:S:qV") || fail_usage ;
-
-   usage if defined $opt_h;
-   version if defined $opt_V;
-
-   fail_usage "Unknown parameter." if (@ARGV > 0);
-
-   if (defined $opt_S) {
-     $pwd_script_out = `$opt_S`;
-     chomp($pwd_script_out);
-     if ($pwd_script_out) {
-       $opt_p = $pwd_script_out;
-     }
-   }
-
-   fail_usage "No '-a' flag specified." unless defined $opt_a;
-   fail_usage "No '-n' flag specified." unless defined $opt_n;
-   fail_usage "No '-l' flag specified." unless defined $opt_l;
-   fail_usage "No '-p' or '-S' flag specified." unless defined $opt_p;
-   fail_usage "Unrecognised action '$opt_o' for '-o' flag"
-      unless $opt_o =~ /^(disable|enable)$/i;
-
-} else {
-   get_options_stdin();
-
-   fail "failed: no IP address" unless defined $opt_a;
-   fail "failed: no plug number" unless defined $opt_n;
-   fail "failed: no login name" unless defined $opt_l;
-
-   if (defined $opt_S) {
-     $pwd_script_out = `$opt_S`;
-     chomp($pwd_script_out);
-     if ($pwd_script_out) {
-       $opt_p = $pwd_script_out;
-     }
-   }
-
-   fail "failed: no password" unless defined $opt_p;
-   fail "failed: unrecognised action: $opt_o"
-      unless $opt_o =~ /^(disable|enable)$/i;
-}
-
-if ( $opt_o =~ /^(disable|enable)$/i )
-{
-  $opt_o = "port".$1;
-}
-
-
-#
-# Set up and log in
-#
-
-$t = new Net::Telnet;
-
-$t->open($opt_a);
-
-$t->waitfor('/login:/');
-
-$t->print($opt_l);
-
-$t->waitfor('/assword:/');
-
-$t->print($opt_p);
-
-$t->waitfor('/\>/');
-
-
-
-#
-# Do the command
-#
-
-$cmd = "$opt_o $opt_n";
-$t->print($cmd);
-
-
-#
-# Assume here that the word "error" will appear after errors (bad assumption! see next check)
-#
-
-($text, $match) = $t->waitfor('/\>/');
-if ($text =~ /error/)
-{
-  fail "failed: error from switch\n";
-}
-
-
-#
-# Do a portshow on the port and look for the DISABLED string to verify success
-#
-
-$t->print("portshow $opt_n");
-($text, $match) = $t->waitfor('/\>/');
-
-if ( $opt_o eq "portdisable" && !($text =~ /DISABLED/) )
-{
-  fail "failed: portshow $opt_n does not show DISABLED\n";
-}
-elsif ( $opt_o eq "portenable" && ($text =~ /DISABLED/) )
-{
-  fail "failed: portshow $opt_n shows DISABLED\n";
-}
-
-
-print "success: $opt_o $opt_n\n" unless defined $opt_q;
-exit 0;
-
-sub get_options_stdin
-{
-    my $opt;
-    my $line = 0;
-    while( defined($in = <>) )
-    {
-        $_ = $in;
-        chomp;
-
-	# strip leading and trailing whitespace
-        s/^\s*//;
-        s/\s*$//;
-
-	# skip comments
-        next if /^#/;
-
-        $line+=1;
-        $opt=$_;
-        next unless $opt;
-
-        ($name,$val)=split /\s*=\s*/, $opt;
-
-        if ( $name eq "" )
-        {  
-           print STDERR "parse error: illegal name in option $line\n";
-           exit 2;
-	}
-	
-        # DO NOTHING -- this field is used by fenced
-	elsif ($name eq "agent" ) { } 
-
-	# FIXME -- depricated.  use "port" instead.
-        elsif ($name eq "fm" ) 
-	{
-            (my $dummy,$opt_n) = split /\s+/,$val;
-	    print STDERR "Depricated \"fm\" entry detected.  refer to man page.\n";
-	}
-
-        elsif ($name eq "ipaddr" ) 
-	{
-            $opt_a = $val;
-        } 
-	elsif ($name eq "login" ) 
-	{
-            $opt_l = $val;
-        } 
-
-	# FIXME -- depreicated residue of old fencing system
-	elsif ($name eq "name" ) { } 
-
-        elsif ($name eq "option" )
-        {
-            $opt_o = $val;
-        }
-	elsif ($name eq "passwd" ) 
-	{
-            $opt_p = $val;
-        } 
-	elsif ($name eq "passwd_script") {
-		$opt_S = $val;
-	}
-	elsif ($name eq "port" ) 
-	{
-            $opt_n = $val;
-        } 
-	# elsif ($name eq "test" ) 
-	# {
-        #    $opt_T = $val;
-        # } 
-    }
-}
diff --git a/fence/agents/bullpap/Makefile b/fence/agents/bullpap/Makefile
deleted file mode 100644
index b84826a..0000000
--- a/fence/agents/bullpap/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_bullpap
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/bullpap/fence_bullpap.8 b/fence/agents/bullpap/fence_bullpap.8
deleted file mode 100644
index 1404c75..0000000
--- a/fence/agents/bullpap/fence_bullpap.8
+++ /dev/null
@@ -1,73 +0,0 @@
-.TH fence_bullpap 8
-
-.SH NAME
-fence_bullpap - I/O Fencing agent for Bull FAME architecture controlled by a 
-PAP management console.
-
-.SH SYNOPSIS
-.B
-fence_bullpap
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_bullpap is an I/O Fencing agent which can be used with Bull's NovaScale
-machines controlled by PAP management consoles.  This agent calls Bull's
-support software provided by the NSMasterHW RPM available from Bull.
-
-fence_bullpap accepts options on the command line as well as from stdin.  
-fenced sends the options through stdin when it execs the agent.  fence_bullpap
-can be run by itself with command line options which is useful for testing.
-
-Vendor URL: http://www.bull.com
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fP
-IP address or hostname of the PAP management console.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlogin\fP
-Login with administrative privileges.
-.TP
-\fB-d\fP \fIdomain\fP
-This is the domain name of the Bull machine to power-cycle.
-.TP
-\fB-o\fP \fIoption\fP
-Action to perform (on, off, reboot, status).
-.TP
-\fB-p\fP \fIpassword\fP
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-q\fP
-Quiet operation.  Only print out error messages.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIipaddr = < hostname | ip >\fR
-IP address or hostname of the PAP management console.
-.TP
-\fIlogin= < param >\fR
-Login with administrative privileges.
-.TP
-\fIdomain = < param >\fR
-This is the domain name of the Bull machine to power-cycle.
-.TP
-\fIoption = < param >\fR
-Action to perform (on, off, reboot, status).
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/bullpap/fence_bullpap.pl b/fence/agents/bullpap/fence_bullpap.pl
deleted file mode 100644
index 6915f57..0000000
--- a/fence/agents/bullpap/fence_bullpap.pl
+++ /dev/null
@@ -1,366 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-use POSIX;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-$action = "reboot"; # Default fence action
-my $bulldir = "/usr/local/bull/NSMasterHW/bin";
-
-stat($bulldir);
-die "NSMasterHW not installed correctly" if ! -d _;
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-sub usage
-{
-	print "Usage:\n";
-	print "\n";
-	print "$pname [options]\n";
-	print "\n";
-	print "Options:\n";
-	print "  -a <ip>          IP address or hostname of PAP console\n";
-	print "  -h               usage\n";
-	print "  -l <name>        Login name\n";
-	print "  -d <domain>      Domain to operate on\n";
-	print "  -o <string>      Action:  on, off, reboot (default) or status\n";
-	print "  -p <string>      Password for login\n";
-	print "  -S <path>        Script to run to retrieve password\n";
-	print "  -q               quiet mode\n";
-	print "  -V               version\n";
-	print "\n";
-	print "When run with no arguments, $pname takes arguments from ";
-	print "standard\ninput, one line per option.  They are as follows:\n";
-	print "\n";
-	print "  ipaddr=<ip>          Same as -a command line option\n";
-	print "  login=<name>         Same as -l command line option\n";
-	print "  domain=<domain>      Same as -d command line option\n";
-	print "  option=<string>      Same as -o command line option\n";
-	print "  passwd=<string>      Same as -p command line option\n";
-	print "  passwd_script=<path> Same as -S command line option\n\n";
-
-	exit 0;
-}
-
-sub fail
-{
-	($msg) = @_;
-	print $msg."\n" unless defined $quiet;
-	exit 1;
-}
-
-sub fail_usage
-{
-	($msg)=@_;
-	print STDERR $msg."\n" if $msg;
-	print STDERR "Please use '-h' for usage.\n";
-	exit 1;
-}
-
-sub version
-{
-	print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-	print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-	exit 0;
-}
-
-sub get_options_stdin
-{
-	my $opt;
-	my $line = 0;
-	while( defined($in = <>) )
-	{
-		$_ = $in;
-		chomp;
-
-		# strip leading and trailing whitespace
-		s/^\s*//;
-		s/\s*$//;
-	
-		# skip comments
-		next if /^#/;
-
-		$line+=1;
-		$opt=$_;
-		next unless $opt;
-
-		($name,$val)=split /\s*=\s*/, $opt;
-
-		if ( $name eq "" )
-		{  
-			print STDERR "parse error: illegal name in option $line\n";
-			exit 2;
-		}
-	
-		# DO NOTHING -- this field is used by fenced
-		elsif ($name eq "agent" ) { } 
-
-		elsif ($name eq "ipaddr" ) 
-		{
-			$host = $val;
-		} 
-		elsif ($name eq "login" ) 
-		{
-			$login = $val;
-		} 
-		elsif ($name eq "option" )
-		{
-			$action = $val;
-		}
-		elsif ($name eq "passwd" ) 
-		{
-			$passwd = $val;
-		} 
-		elsif ($name eq "password" ) 
-		{
-			$passwd = $val;
-		} 
-		elsif ($name eq "passwd_script" ) {
-			$passwd_script = $val;
-		}
-		elsif ($name eq "domain" ) 
-		{
-			$domain = $val;
-		} 
-		elsif ($name eq "debuglog" ) 
-		{
-			$verbose = $val;
-		} 
-	}
-}
-
-sub get_power_state
-{
-	my ($ip,$dom,$user,$pass,$junk) = @_;
-	fail "missing IP address in get_power_state()" unless defined $ip;
-	fail "missing domain to get_power_state()" unless defined $dom;
-	fail "illegal argument to get_power_state()" if defined $junk;
-
-	my $state="";
-	my $cmd = $bulldir . "/pampower.pl";
-	
-	$cmd = $cmd . " -a status";
-	$cmd = $cmd . " -M $ip -D $dom";
-	if (defined $user) {
-		$cmd = $cmd . "	-u $user";
-	}
-	if (defined $pass) {
-		$cmd = $cmd . " -p $pass";
-	}
-
-	$state=system($cmd);
-	WIFEXITED($state) || die "child killed abnormally";
-
-	$state=WEXITSTATUS($state);
-	if ($state == 0) {
-		$state = "ON";
-	} elsif ($state == 1) {
-		$state = "OFF";
-	} else {
-		$state = "$state TRANSITION";
-	}
-
-	$_=$state;
-}
-
-sub set_power_state
-{
-	my ($ip,$dom,$set,$user,$pass,$junk) = @_;
-	fail "missing action to set_power_state()" unless defined $set;
-	fail "missing IP address in set_power_state()" unless defined $ip;
-	fail "missing domain to set_power_state()" unless defined $dom;
-	fail "illegal argument to set_power_state()" if defined $junk;
-
-	my $state="";
-	my $cmd = $bulldir . "/pampower.pl";
-	
-	if ($set =~ /on/) {
-		$cmd = $cmd . " -a on";
-	} else {
-		$cmd = $cmd . " -a off_force";
-	}
-	
-	$cmd = $cmd . " -M $ip -D $dom";
-	if (defined $user) {
-		$cmd = $cmd . "	-u $user";
-	}
-	if (defined $pass) {
-		$cmd = $cmd . " -p $pass";
-	}
-
-	$state=system "$cmd";
-
-	$_=$state;
-}
-
-# MAIN
-
-if (@ARGV > 0) 
-{
-	getopts("a:hl:d:o:p:S:qv:V") || fail_usage ;
-
-	usage if defined $opt_h;
-	version if defined $opt_V;
-
-	$host     = $opt_a if defined $opt_a;
-	$login    = $opt_l if defined $opt_l;
-	$passwd   = $opt_p if defined $opt_p;
-	$action   = $opt_o if defined $opt_o;
-	$domain	  = $opt_d if defined $opt_d;
-	$verbose  = $opt_v if defined $opt_v;
-	$quiet    = $opt_q if defined $opt_q;
-
-	if (defined $opt_S) {
-		$pwd_script_out = `$opt_S`;
-		chomp($pwd_script_out);
-		if ($pwd_script_out) {
-			$passwd = $pwd_script_out;
-		}
-	}
-
-	fail_usage "Unknown parameter." if (@ARGV > 0);
-
-	fail_usage "No '-a' flag specified." unless defined $host;
-	fail_usage "No '-d' flag specified." unless defined $domain;
-	fail_usage "No '-l' flag specified." unless defined $login;
-	fail_usage "No '-p' or '-S' flag specified." unless defined $passwd;
-	fail_usage "Unrecognised action '$action' for '-o' flag"
-		unless $action =~ /^(on|off|reboot|status)$/i;
-} 
-else 
-{
-	get_options_stdin();
-
-	fail "failed: no IP address" unless defined $host;
-	fail "failed: no domain" unless defined $domain;
-	fail "failed: no login name" unless defined $login;
-	fail "failed: unrecognized action: $action"
-		unless $action =~ /^(on|off|reboot|status)$/i;
-
-	if (defined $passwd_script) {
-		$pwd_script_out = `$passwd_script`;
-		chomp($pwd_script_out);
-		if ($pwd_script_out) {
-			$passwd = $pwd_script_out;
-		}
-	}
-	fail "failed: no password" unless defined $passwd;
-}
-
-# convert $action to lower case 
-$_=$action;
-if    (/^on$/i)     { $action = "on"; }
-elsif (/^off$/i)    { $action = "off"; }
-elsif (/^reboot$/i) { $action = "reboot"; }
-elsif (/^status$/i) { $action = "status"; }
-
-#
-# If if pampower / pamreset don't exist, we're done.
-#
-# -M -- the maintenance port on the NovaScale Windows 2000 master server
-# -D -- the Domain to reboot
-# -u -- User name
-# -p -- Password
-#
-#/usr/local/bull/NSMasterHW/bin/pamreset.pl 
-#    -M 192.168.78.169 -D Domaine2-8CPU -u Administrator -p administrator
-#
-#/usr/local/bull/NSMasterHW/bin/pampower.pl -a off_force 
-#    -M 192.168.78.169 -D Domaine2-8CPU -u Administrator -p administrator
-#
-#/usr/local/bull/NSMasterHW/bin/pampower.pl -a on 
-#    -M 192.168.78.169 -D Domaine2-8CPU -u Administrator -p administrator
-#
-# Do the command
-#
-$success=0;
-$_ = $action;
-my $exit_code=0;
-if (/(on|off)/)
-{
-	my $timeout = 120; # 120 = max of (60, 120).  Max timeout for "on"
-			   # on 32-way bull machines
-
-	set_power_state $host,$domain,$action,$login,$passwd;
-	do {
-		sleep 5;
-		$state=get_power_state $host,$domain,$login,$passwd;
-		$timeout -= 5;
-	} while ($timeout > 0 && !($state =~ /^$action$/i));
-
-	$success = 1 if ($state=~/^$action$/i);
-}
-elsif (/reboot/)
-{
-	my $timeout = 60; # 60 seconds for "off" for 32-way bull machines
-
-	set_power_state $host,$domain,"off",$login,$passwd;
-	do {
-		sleep 5;
-		$state=get_power_state $host,$domain,$login,$passwd;
-		$timeout -= 5;
-	} while ($timeout > 0 && $state != 0);
-
-	if ($timeout <= 0) {
-		$success = 0;
-	} else  {
-		$timeout = 120; # 120 seconds for on, for 32-way bull machines
-		set_power_state $host,$domain,"on",$login,$passwd;
-		do {
-			sleep 5;
-			$state=get_power_state $host,$domain,$login,$passwd;
-			$timeout -= 5;
-		} while ($timeout > 0 && $state != 0);
-
-		$success = 1 if ($state == 0);
-	}
-}
-elsif (/status/)
-{
-	get_power_state $host,$domain,$login,$passwd;
-	$state=$_;
-	$success = 1 if defined $state;
-	if ($state eq "OFF") {
-		$exit_code = 2;
-	}
-}
-else
-{
-	fail "fail: illegal action";
-}
-
-if ($success)
-{
-	print "success: domain $domain $action". ((defined $state) ? ": $state":"")
-		."\n" unless defined $quiet;
-	exit $exit_code;
-}
-else
-{
-	fail "fail: domain $domain $action";	
-	exit 1
-}
-
-
diff --git a/fence/agents/cisco_mds/Makefile b/fence/agents/cisco_mds/Makefile
deleted file mode 100644
index 6b2cc85..0000000
--- a/fence/agents/cisco_mds/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_cisco_mds
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/cisco_mds/fence_cisco_mds.py b/fence/agents/cisco_mds/fence_cisco_mds.py
deleted file mode 100644
index d20efe4..0000000
--- a/fence/agents/cisco_mds/fence_cisco_mds.py
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/python
-
-# The Following agent has been tested on:
-# - Cisco MDS UROS 9134 FC (1 Slot) Chassis ("1/2/4 10 Gbps FC/Supervisor-2") Motorola, e500v2
-#   with BIOS 1.0.16, kickstart 4.1(1c), system 4.1(1c)
-# - Cisco MDS 9124 (1 Slot) Chassis ("1/2/4 Gbps FC/Supervisor-2") Motorola, e500
-#   with BIOS 1.0.16, kickstart 4.1(1c), system 4.1(1c)
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-from fencing_snmp import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Cisco MDS 9xxx SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-### CONSTANTS ###
-# Cisco admin status
-PORT_ADMIN_STATUS_OID=".1.3.6.1.2.1.75.1.2.2.1.1"
-
-# IF-MIB trees for alias, status and port
-ALIASES_OID=".1.3.6.1.2.1.31.1.1.1.18"
-PORTS_OID=".1.3.6.1.2.1.2.2.1.2"
-
-### GLOBAL VARIABLES ###
-# OID converted from fc port name (fc(x)/(y))
-port_oid=""
-
-### FUNCTIONS ###
-
-# Convert cisco port name (fc(x)/(y)) to OID
-def cisco_port2oid(port):
-	port=port.lower()
-
-	nums=re.match('^fc(\d+)/(\d+)$',port)
-
-	if ((nums) and (len(nums.groups()))==2):
-		return "%s.%d.%d"%(PORT_ADMIN_STATUS_OID,int(nums.group(1))+21,int(nums.group(2))-1)
-	else:
-		fail_usage("Mangled port number: %s"%(port))
-
-def get_power_status(conn,options):
-	global port_oid
-
-	(oid,status)=conn.get(port_oid)
-	return (status=="1" and "on" or "off")
-
-def set_power_status(conn, options):
-	global port_oid
-
-	conn.set(port_oid,(options["-o"]=="on" and 1 or 2))
-
-# Convert array of format [[key1, value1], [key2, value2], ... [keyN, valueN]] to dict, where key is
-# in format a.b.c.d...z and returned dict has key only z
-def array_to_dict(ar):
-	return dict(map(lambda y:[y[0].split('.')[-1],y[1]],ar))
-
-def get_outlets_status(conn, options):
-	result={}
-
-	res_fc=conn.walk(PORTS_OID,30)
-	res_aliases=array_to_dict(conn.walk(ALIASES_OID,30))
-
-	fc_re=re.compile('^"fc\d+/\d+"$')
-
-	for x in res_fc:
-		if fc_re.match(x[1]):
-			port_num=x[0].split('.')[-1]
-
-			port_name=x[1].strip('"')
-			port_alias=(res_aliases.has_key(port_num) and res_aliases[port_num].strip('"') or "")
-			port_status=""
-			result[port_name]=(port_alias,port_status)
-
-	return result
-
-# Main agent method
-def main():
-	global port_oid
-
-	device_opt = [ "help", "version", "agent", "quiet", "verbose", "debug",
-		       "action", "ipaddr", "login", "passwd", "passwd_script",
-		       "test", "port", "separator", "no_login", "no_password",
-		       "snmp_version", "community", "snmp_auth_prot", "snmp_sec_level",
-		       "snmp_priv_prot", "snmp_priv_passwd", "snmp_priv_passwd_script",
-		       "udpport","inet4_only","inet6_only",
-		       "power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	snmp_define_defaults ()
-	options=process_input(device_opt)
-
-	# Emulate enable/disable functionality
-	if (options.has_key("-o")):
-		options["-o"]=options["-o"].lower()
-
-		if (options["-o"]=="enable"):
-			options["-o"]="on"
-		if (options["-o"]=="disable"):
-			options["-o"]="off"
-	else:
-		options["-o"]="off"
-
-	options = check_input(device_opt, options)
-
-	docs = { }           
-	docs["shortdesc"] = "Fence agent for Cisco MDS"
-	docs["longdesc"] = "fence_cisco_mds is an I/O Fencing agent \
-which can be used with any Cisco MDS 9000 series with SNMP enabled device."
-	docs["vendorurl"] = "http://www.cisco.com"
-	show_docs(options, docs)
-
-	if (not (options["-o"] in ["list","monitor"])):
-		port_oid=cisco_port2oid(options["-n"])
-
-	# Operate the fencing device
-	result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/cisco_ucs/Makefile b/fence/agents/cisco_ucs/Makefile
deleted file mode 100644
index eff9945..0000000
--- a/fence/agents/cisco_ucs/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_cisco_ucs
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py b/fence/agents/cisco_ucs/fence_cisco_ucs.py
deleted file mode 100755
index 07375b3..0000000
--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py
+++ /dev/null
@@ -1,138 +0,0 @@
-#!/usr/bin/python
-
-import sys, re, pexpect, socket
-import pycurl, StringIO
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Cisco UCS Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-re_cookie = re.compile("<aaaLogin .* outCookie=\"(.*?)\"", re.IGNORECASE);
-re_status = re.compile("<lsPower .*? state=\"(.*?)\"", re.IGNORECASE);
-re_get_dn = re.compile(" dn=\"(.*?)\"", re.IGNORECASE)
-re_get_desc = re.compile(" descr=\"(.*?)\"", re.IGNORECASE)
-
-def get_power_status(conn, options):
-	try:
-		res = send_command(options, "<configResolveDn cookie=\"" + options["cookie"] + "\" inHierarchical=\"false\" dn=\"org-root/ls-" + options["-n"] + "/power\"/>")
-	except pycurl.error, e:
-		sys.stderr.write(e[1] + "\n")
-		fail(EC_TIMED_OUT)
-
-	result = re_status.search(res)
-	if (result == None):
-		fail(EC_STATUS)
-	else:
-		status = result.group(1)
-
-	if (status == "up"):
-		return "on"
-	else:
-		return "off"
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "up",
-		'off' : "down"
-	}[options["-o"]]
-	
-	try:
-		res = send_command(options, "<configConfMos cookie=\"" + options["cookie"] + "\" inHierarchical=\"no\"><inConfigs><pair key=\"org-root/ls-" + options["-n"] + "/power\"><lsPower dn=\"org-root/ls-" + options["-n"] + "/power\" state=\"" + action + "\" status=\"modified\" /></pair></inConfigs></configConfMos>")
-	except pycurl.error, e:
-		sys.stderr.write(e[1] + "\n")
-		fail(EC_TIMED_OUT)
-	
-	return
-
-def get_list(conn, options):
-	outlets = { }
-
-	try:
-		try:
-			res = send_command(options, "<configResolveClass cookie=\"" + options["cookie"] + "\" inHierarchical=\"false\" classId=\"lsServer\"/>")
-		except pycurl.error, e:
-			sys.stderr.write(e[1] + "\n")
-			fail(EC_TIMED_OUT)
-
-		lines = res.split("<lsServer ")
-		for i in range(1, len(lines)):
-			dn = re_get_dn.search(lines[i]).group(1)
-			desc = re_get_desc.search(lines[i]).group(1)
-			outlets[dn] = (desc, None)
-	except AttributeError:
-		return { }
-	except IndexError:
-		return { }
-
-	return outlets
-
-def send_command(opt, command):
-	## setup correct URL
-	if opt.has_key("-z"):
-		url = "https:"
-	else:
-		url = "http:"
-
-	url += "//" + opt["-a"] + ":" + str(opt["-u"]) + "/nuova"
-
-	## send command through pycurl
-	c = pycurl.Curl()
-	b = StringIO.StringIO()
-	c.setopt(pycurl.URL, url)
-	c.setopt(pycurl.HTTPHEADER, [ "Content-type: text/xml" ])
-	c.setopt(pycurl.POSTFIELDS, command)
-	c.setopt(pycurl.WRITEFUNCTION, b.write)
-	c.setopt(pycurl.TIMEOUT, int(opt["-Y"]))
-	c.setopt(pycurl.SSL_VERIFYPEER, 0)
-	c.perform()
-	result = b.getvalue()
-
-	if opt["log"] >= LOG_MODE_VERBOSE:
-		opt["debug_fh"].write(command + "\n")
-		opt["debug_fh"].write(result + "\n")
-
-	return result
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"ssl", "inet4_only", "inet6_only", "ipport", "port", 
-			"web", "separator", "power_wait", "power_timeout",
-			"shell_timeout" ]
-
-	atexit.register(atexit_handler)
-	
-	options = check_input(device_opt, process_input(device_opt))
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for Cisco UCS"
-	docs["longdesc"] = "fence_cisco_ucs is an I/O Fencing agent which can be \
-used with Cisco UCS to fence machines."
-	docs["vendorurl"] = "http://www.cisco.com"
-	show_docs(options, docs)
-
-	### Login
-	res = send_command(options, "<aaaLogin inName=\"" + options["-l"] + "\" inPassword=\"" + options["-p"] + "\" />")
-	result = re_cookie.search(res)
-	if (result == None):	
-		## Cookie is absenting in response
-		fail(EC_LOGIN_DENIED)
-
-	options["cookie"] = result.group(1);
-
-	##
-	## Fence operations
-	####
-	result = fence_action(None, options, set_power_status, get_power_status, get_list)
-
-	### Logout; we do not care about result as we will end in any case
-	send_command(options, "<aaaLogout inCookie=\"" + options["cookie"] + "\" />")
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/cpint/Makefile b/fence/agents/cpint/Makefile
deleted file mode 100644
index 637ce23..0000000
--- a/fence/agents/cpint/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_cpint
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/cpint/fence_cpint.8 b/fence/agents/cpint/fence_cpint.8
deleted file mode 100644
index e9f1c5d..0000000
--- a/fence/agents/cpint/fence_cpint.8
+++ /dev/null
@@ -1,54 +0,0 @@
-.TH fence_cpint 8
-
-.SH NAME
-fence_cpint - I/O Fencing agent for GFS on s390 and zSeries VM clusters
-
-.SH SYNOPSIS
-.B
-fence_cpint
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_cpint is an I/O Fencing agent used on a virtual machine running GFS in a
-s390 or zSeries VM cluster.
-It uses the cpint package to send a CP LOGOFF command to the specified virtual
-machine.
-For fence_cpint to execute correctly, you must have the cpint module installed,
-and hcp in your PATH.
-\fBNOTE:\fP for fence_cpint to send a command to another virtual machine, the
-machine executing it must either be a privilege class C user or it must be
-the secondary user of the virtual machine to be fenced.  This means that unless
-all of you GULM server nodes are privilege class C, fence_cpint can only be
-used with SLM.
-
-fence_cpint accepts options on the command line as well as from stdin.
-fence_node sends the options through stdin when it execs the agent.
-fence_cpint can be run by itself with command line options which is useful for
-testing.
-
-Vendor URL: http://www.ibm.com
-
-.SH OPTIONS
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-u\fP \fIuserid\fP
-userid of the virtual machine to fence (required).
-.TP
-\fB-q\fP
-quiet mode, no output.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_cpint.
-.TP
-\fIuserid = < parm >\fP
-userid of the virtual machine to fence (required).
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/cpint/fence_cpint.pl b/fence/agents/cpint/fence_cpint.pl
deleted file mode 100644
index dc17eed..0000000
--- a/fence/agents/cpint/fence_cpint.pl
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-$comm_prog = "hcp";
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-sub usage
-{
-    print "Usage:\n";  
-    print "\n";
-    print "$pname [options]\n";
-    print "\n";
-    print "Options:\n";
-    print "  -h               usage\n";
-    print "  -u <string>      userid of the virtual machine to fence\n";
-    print "  -q               quiet mode\n";
-    print "  -V               Version\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg)=@_;
-  print "failed: " . $msg . "\n" unless defined $opt_q;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg)=@_q;
-  print stderr $msg."\n" if $msg;
-  print stderr "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-sub get_options_stdin
-{
-    my $opt;
-    my $line = 0;
-    while( defined($in = <>) )
-    {
-        $_ = $in;
-	      chomp;
-
-        # strip leading and trailing whitespace
-        s/^\s*//;
-        s/\s*$//;
-
-        # skip comments
-        next if /^#/;
-
-	      $line+=1;
-        $opt=$_;
-        next unless $opt;
-
-	      ($name,$val)=split /\s*=\s*/, $opt;
-
-	      if ( $name eq "" )
-        {
-           print stderr "parse error: illegal name in option $line\n";
-           exit 2;
-        }
-
-	      # DO NOTHING -- this field is used by fenced or stomithd
-        elsif ($name eq "agent" ) { }
-
-	      # FIXME -- depricated.  use "userid" and "password" instead.
-        elsif ($name eq "fm" )
-        {
-            (my $dummy,$opt_u,$opt_p) = split /\s+/,$val;
-	          print STDERR "Depricated \"fm\" entry detected.  refer to man page.\n";
-        }
-
-        # FIXME -- depreicated residue of old fencing system
-      	elsif ($name eq "name" ) { }
-
-	      elsif ($name eq "userid" )
-        {
-            $opt_u = $val;
-        }
-
-	else
-        {
-           print stderr "parse error: unknown option \"$opt\"\n";
-           #> exit 2;
-        }
-    }
-}
-
-if (@ARGV > 0){
-    getopts("hqu:V") || fail_usage;
-    usage if defined $opt_h;
-    version if defined $opt_V;
-
-    fail_usage "Unkown parameter." if (@ARGV > 0);
-
-    fail_usage "No '-u' flag specified." unless defined $opt_u;
-} else {
-    get_options_stdin();
-
-    fail "no userid" unless defined $opt_u;
-}
-
-$ret_val = system("$comm_prog send cp $opt_u logoff > /dev/null 2>&1") >> 8;
-fail "$comm_prog failed ($ret_val)" unless ($ret_val == 0 || $ret_val == 45);
-$ret_val = system("$comm_prog send cp $opt_u > /dev/null 2>&1") >> 8;
-fail "$userid isn't logged off. $comm_prog return ($ret_val)" unless ($ret_val == 45);
-
-print "success: booted userid $opt_u\n" unless defined $opt_q;
-exit 0;
diff --git a/fence/agents/drac/Makefile b/fence/agents/drac/Makefile
deleted file mode 100644
index 826744e..0000000
--- a/fence/agents/drac/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_drac
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/drac/fence_drac.8 b/fence/agents/drac/fence_drac.8
deleted file mode 100644
index 3660c5a..0000000
--- a/fence/agents/drac/fence_drac.8
+++ /dev/null
@@ -1,105 +0,0 @@
-.TH fence_drac 8
-
-.SH NAME
-fence_drac - fencing agent for Dell Remote Access Card 
-
-.SH SYNOPSIS
-.B 
-fence_drac
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_drac is an I/O Fencing agent which can be used with the Dell Remote
-Access Card (DRAC).  This card provides remote access to controlling 
-power to a server.  It logs into the DRAC through the telnet interface of
-the card.  By default, the telnet interface is not enabled.  To enable the
-interface, you will need to use the racadm command in the racser-devel rpm 
-available from Dell.  To enable telnet on the DRAC:
-
-[root]# racadm config -g cfgSerial -o cfgSerialTelnetEnable 1
-
-[root]# racadm racreset
-
-fence_drac accepts options on the command line as well as from stdin.  
-Fenced sends parameters through stdin when it execs the agent.  fence_drac 
-can be run by itself with command line options.  This is useful for testing 
-and for turning outlets on or off from scripts.
-
-Vendor URL: http://www.dell.com
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fR
-IP address or hostname of the switch.
-.TP
-\fB-c\fP \fIcmd_prompt\fR
-Force fence_drac to use cmd_prompt as the command prompt
-.TP
-\fB-d\fP \fIdracversion\fR
-Force fence_drac to treat the device as though it was for the specified drac version
-.TP
-\fB-D\fP \fIdumpfile\fR
-Debug file of the telnet interaction
-.TP
-\fB-h\fP 
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlogin\fR
-Login name.
-.TP
-\fB-m\fP \fImodulename\fR
-The module name of the blade when using DRAC/MC firmware.
-.TP
-\fB-o\fP \fIaction\fR
-The action required.  reboot (default), off, on or status.
-.TP
-\fB-p\fP \fIpassword\fR
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-f\fP \fIseconds\fR
-Wait X seconds before fencing is started
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIaction = < param >\fR
-The action required.  reboot (default), off, on or status.
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_apc.
-.TP
-\fIcmd_prompt = < param >\fr
-Force fence_drac to use cmd_prompt as the command prompt
-.TP
-\fIdrac_version = < param >\fr 
-Force fence_drac to treat the device as though it was for the specified drac version.
-.TP
-\fIdebug = < dumpfile >\fR
-Debug file of the telnet interaction
-.TP
-\fIipaddr = < hostname | ip >\fR
-IP address or hostname of the switch.
-.TP
-\fIlogin = < param >\fR
-Login name.
-.TP
-\fImodulename = < param >\fr
-The module name of the blade when using DRAC/MC firmware.
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-.TP
-\fIdelay = < param >\fR
-Wait X seconds before fencing is started
-.TP
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/drac/fence_drac.pl b/fence/agents/drac/fence_drac.pl
deleted file mode 100644
index e28ed98..0000000
--- a/fence/agents/drac/fence_drac.pl
+++ /dev/null
@@ -1,678 +0,0 @@
-#!/usr/bin/perl
-
-# The following agent has been tested on:
-#
-#  Model 		DRAC Version	Firmware
-#  -------------------	--------------	----------------------
-#  PowerEdge 750	DRAC III/XT	3.20 (Build 10.25)
-#  Dell Remote Access Controller - ERA and DRAC III/XT, v.3.20, A00
-#  
-#  PowerEdge 1855	DRAC/MC		1.1  (Build 03.03)
-#  PowerEdge 1855	DRAC/MC		1.2  (Build 03.03)
-#  PowerEdge 1855	DRAC/MC		1.3  (Build 06.12)
-#  PowerEdge 1850	DRAC 4/I	1.35 (Build 09.27)
-#  PowerEdge 1850	DRAC 4/I	1.40 (Build 08.24)
-#  PowerEdge 1950	DRAC 5		1.0  (Build 06.05.12)
-#
-
-use Getopt::Std;
-use Net::Telnet ();
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-my $telnet_timeout = 10;      # Seconds to wait for matching telent response
-my $power_timeout = 20;      # time to wait in seconds for power state changes
-$action = 'reboot';          # Default fence action.  
-
-my $logged_in = 0;
-my $quiet = 0;
-
-my $t = new Net::Telnet;
-
-my $DRAC_VERSION_UNKNOWN	= '__unknown__';
-my $DRAC_VERSION_III_XT		= 'DRAC III/XT';
-my $DRAC_VERSION_MC			= 'DRAC/MC';
-my $DRAC_VERSION_4I			= 'DRAC 4/I';
-my $DRAC_VERSION_4P			= 'DRAC 4/P';
-my $DRAC_VERSION_5			= 'DRAC 5';
-
-my $PWR_CMD_SUCCESS			= "/^OK/";
-my $PWR_CMD_SUCCESS_DRAC5	= "/^Server power operation successful$/";
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-sub usage 
-{
-	print "Usage:\n";
-	print "\n";
-	print "$pname [options]\n";
-	print "\n";
-	print "Options:\n";
-	print "  -a <ip>          IP address or hostname of DRAC\n";
-	print "  -c <cmd_prompt>  force DRAC command prompt\n";
-	print "  -d <dracversion> force DRAC version to use\n";
-	print "  -D <debugfile>   debugging output file\n";
-	print "  -h               usage\n";
-	print "  -l <name>        Login name\n";
-	print "  -m <modulename>  DRAC/MC module name\n";
-	print "  -o <string>      Action: reboot (default), off or on\n";
-	print "  -p <string>      Login password\n";
-	print "  -S <path>        Script to run to retrieve password\n";
-	print "  -f <seconds>     Wait X seconds before fencing is started\n";
-	print "  -q               quiet mode\n";
-	print "  -V               version\n";
-	print "\n";
-	print "CCS Options:\n";
-	print "  action = \"string\"      Action: reboot (default), off or on\n";
-	print "  debug  = \"debugfile\"   debugging output file\n";
-	print "  ipaddr = \"ip\"          IP address or hostname of DRAC\n";
-	print "  login  = \"name\"        Login name\n";
-	print "  passwd = \"string\"      Login password\n";
-	print "  passwd_script = \"path\" Script to run to retrieve password\n";
-	print "  delay = \"seconds\"      Wait X seconds before fencing is started\n";
-
-	exit 0;
-}
-
-sub msg
-{
-	($msg)=@_;
-	print $msg."\n" unless $quiet;
-}
-
-sub fail
-{
-	($msg)=@_;
-	print $msg."\n" unless $quiet;
-
-	if (defined $t)
-	{
-		# make sure we don't get stuck in a loop due to errors
-		$t->errmode('return');  
-
-		logout() if $logged_in;
-		$t->close 
-	}
-	exit 1;
-}
-
-sub fail_usage
-{
-	($msg)=@_;
-	print STDERR $msg."\n" if $msg;
-	print STDERR "Please use '-h' for usage.\n";
-	exit 1;
-}
-
-sub version
-{
-	print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-	print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-	exit 0;
-}
-
-
-sub login
-{
-	$t->open($address) or 
-		fail "failed: telnet open failed: ". $t->errmsg."\n";
-  
-	# Expect 'Login: ' 
-	($_) = $t->waitfor(Match => "/[Ll]ogin: /", Timeout=>15) or
-		fail "failed: telnet failed: ". $t->errmsg."\n" ;
-
-	# Determine DRAC version
-  if (/Dell Embedded Remote Access Controller \(ERA(\/O)?\)\nFirmware Version/m)
-  {
-    $drac_version = $DRAC_VERSION_III_XT;
-  } else {
-	if (/.*\((DRAC[^)]*)\)/m)
-	{
-		print "detected drac version '$1'\n" if $verbose;
-		$drac_version = $1 unless defined $drac_version;
-		
-		print "WARNING: detected drac version '$1' but using "
-			. "user defined version '$drac_version'\n"
-			if ($drac_version ne $1);
-	}
-	else
-	{
-		$drac_version = $DRAC_VERSION_UNKNOWN;
-	}
-  }
-
-	# Setup prompt
-	if ($drac_version =~ /$DRAC_VERSION_III_XT/)
-	{
-		$cmd_prompt = "/\\[$login\\]# /" 
-			unless defined $cmd_prompt;
-	}
-	elsif ($drac_version =~ /$DRAC_VERSION_MC/)
-	{
-		$cmd_prompt = "/DRAC\\/MC:/" 
-			unless defined $cmd_prompt;
-	}	
-	elsif ($drac_version =~ /$DRAC_VERSION_4I/)
-	{
-		$cmd_prompt = "/\\[$login\\]# /" 
-			unless defined $cmd_prompt;
-	}
-  elsif ($drac_version =~ /$DRAC_VERSION_4P/)
-  {
-        $cmd_prompt = "/\\[$login\\]# /"
-          unless defined $cmd_prompt;
-  } 
-	else
-	{
-		$drac_version = $DRAC_VERSION_UNKNOWN;
-	}
-
-	# Take a guess as to what the prompt might be if not already defined
-	$cmd_prompt="/(\\[$login\\]# |DRAC\\/MC:|\\\$ )/" unless defined $cmd_prompt;
-	
-
-	# Send login
-	$t->print($login);
-
-	# Expect 'Password: ' 
-	$t->waitfor("/Password: /") or 
-		fail "failed: timeout waiting for password";
-
-	# Send password
-	$t->print($passwd);  
-
-	# DRAC5 prints version controller version info
-	# only after you've logged in.
-	if ($drac_version eq $DRAC_VERSION_UNKNOWN) {
-		if ($t->waitfor(Match => "/.*\($DRAC_VERSION_5\)/m")) {
-			$drac_version = $DRAC_VERSION_5;
-			$cmd_prompt = "/\\\$ /";
-			$PWR_CMD_SUCCESS = $PWR_CMD_SUCCESS_DRAC5;
-		} else {
-			print "WARNING: unable to detect DRAC version '$_'\n";
-		}
-	}
-
-	$t->waitfor($cmd_prompt) or
-		fail "failed: invalid username or password";
-
-	if ($drac_version eq $DRAC_VERSION_UNKNOWN) {
-		print "WARNING: unsupported DRAC version '$drac_version'\n";
-	}
-
-	$logged_in = 1;
-}
-
-#
-# Set the power status of the node 
-#
-sub set_power_status
-{
-	my ($state,$dummy) = @_;
-	my $cmd,$svr_action;
-
-	if   ( $state =~ /^on$/)  { $svr_action = "powerup"   }
-	elsif( $state =~ /^off$/) { $svr_action = "powerdown" }
-
-	if ($drac_version eq $DRAC_VERSION_MC)
-	{
-		$cmd = "serveraction -m $modulename  -d 0 $svr_action";
-	}
-	elsif ($drac_version eq $DRAC_VERSION_5) {
-		$cmd = "racadm serveraction $svr_action";
-	} else
-	{
-		$cmd = "serveraction -d 0 $svr_action";
-	}
-
-	$t->print($cmd);
-
-	# Expect /$cmd_prompt/
-	($_) = $t->waitfor($cmd_prompt) or
-		fail "failed: unexpected serveraction response"; 
-
-	my @cmd_out = split /\n/;
-
-	# discard command sent to DRAC
-	$_ = shift @cmd_out;
-        s/\e\[(([0-9]+;)*[0-9]+)*[ABCDfHJKmsu]//g; #strip ansi chars
-        s/^.*\x0D//;
-
-	fail "failed: unkown dialog exception: '$_'" unless (/^$cmd$/);
-
-	# Additional lines of output probably means an error.  
-	# Aborting to be safe.  Note: additional user debugging will be 
-	# necessary,  run with -D and -v flags
-	my $err;
-	while (@cmd_out)
-	{
-		$_ = shift @cmd_out;
-                #firmware vers 1.2 on DRAC/MC sends ansi chars - evil
-                s/\e\[(([0-9]+;)*[0-9]+)*[ABCDfHJKmsu]//g;
-                s/^.*\x0D//;
-
-		next if (/^\s*$/); # skip empty lines
-		if (defined $err)
-		{
-			$err = $err."\n$_";
-		}
-		else
-		{
-			next if ($PWR_CMD_SUCCESS);
-			$err = $_;
-		}
-	}
-	fail "failed: unexpected response: '$err'" if defined $err;
-}
-
-
-#
-# get the power status of the node and return it in $status and $_
-#
-sub get_power_status
-{
-	my $status; 
-	my $modname = $modulename;
-	my $cmd;
-
-	if ($drac_version eq $DRAC_VERSION_5) {
-		$cmd = "racadm serveraction powerstatus";
-	} else {
-		$cmd = "getmodinfo";
-	}
-
-	$t->print($cmd);
-
-	($_) = $t->waitfor($cmd_prompt);
-
-	my $found_header = 0;
-	my $found_module = 0;
-
-	my @cmd_out = split /\n/;
-
-	# discard command sent to DRAC
-	$_ = shift @cmd_out;
-        #strip ansi control chars
-        s/\e\[(([0-9]+;)*[0-9]+)*[ABCDfHJKmsu]//g;
-        s/^.*\x0D//;
-
-	fail "failed: unkown dialog exception: '$_'" unless (/^$cmd$/);
-
-	if ($drac_version ne $DRAC_VERSION_5) {
-		#Expect:
-		#  #<group>     <module>    <presence>  <pwrState>  <health>  <svcTag>
-		#   1  ---->     chassis    Present         ON      Normal    CQXYV61
-		#
-		#  Note: DRAC/MC has many entries in the table whereas DRAC III has only
-		#  a single table entry.
-
-		while (1)
-		{
-			$_ = shift @cmd_out;
-			if (/^#<group>\s*<module>\s*<presence>\s*<pwrState>\s*<health>\s*<svcTag>/)
-			{
-				$found_header = 1;
-				last;
-			}
-		}
-		fail "failed: invalid 'getmodinfo' header: '$_'" unless $found_header;
-	}
-
-	foreach (@cmd_out)
-	{ 
-		s/^\s+//g; #strip leading space
-		s/\s+$//g; #strip training space
-
-		if ($drac_version eq $DRAC_VERSION_5) {
-			if(m/^Server power status: (\w+)/) {
-				$status = lc($1);
-			}
-		} else {
-			my ($group,$arrow,$module,$presence,$pwrstate,$health,
-				$svctag,$junk) = split /\s+/;
-
-			if ($drac_version eq  $DRAC_VERSION_III_XT || $drac_version eq $DRAC_VERSION_4I || $drac_version eq $DRAC_VERSION_4P)
-			{
-				fail "failed: extraneous output detected from 'getmodinfo'" if $found_module;
-				$found_module = 1;
-				$modname = $module;
-			}
-
-			if ($modname eq $module)
-			{
-				fail "failed: duplicate module names detected" if $status;
-				$found_module = 1;
-
-				fail "failed: module not reported present" unless ($presence =~ /Present/);
-				$status = $pwrstate;
-			}
-
-		}
-	}
-
-	if ($drac_version eq $DRAC_VERSION_MC)
-	{
-		fail "failed: module '$modulename' not detected" unless $found_module;
-	}
-
-	$_=$status;
-	if(/^(on|off)$/i)
-	{
-		# valid power states 
-	}
-	elsif ($status) 
-	{
-		fail "failed: unknown power state '$status'";
-	}
-	else
-	{
-		fail "failed: unable to determine power state";
-	}
-}
-
-
-# Wait upto $power_timeout seconds for node power state to change to 
-# $state before erroring out.
-#
-# return 1 on success
-# return 0 on failure
-#
-sub wait_power_status
-{
-	my ($state,$dummy) = @_;
-	my $status;
-
-	$state = lc $state;
-
-	for (my $i=0; $i<$power_timeout ; $i++)
-	{
-		get_power_status;
-		$status = $_;
-		my $check = lc $status;
-
-		if ($state eq $check ) { return 1 }
-		sleep 1;
-	}
-	$_ = "timed out waiting to power $state";
-	return 0;
-}
-
-#
-# logout of the telnet session
-#
-sub logout 
-{
-	$t->print("");
-	$t->print("exit");
-}
-
-#
-# error routine for Net::Telnet instance
-#
-sub telnet_error
-{
-	fail "failed: telnet returned: ".$t->errmsg."\n";
-}
-
-#
-# execute the action.  Valid actions are 'on' 'off' 'reboot' and 'status'.
-# TODO: add 'configure' that uses racadm rpm to enable telnet on the drac
-#
-sub do_action
-{
-	if (($action =~ /^off$/i) || ($action =~ /^reboot$/i)) {
-		sleep ($delay) if defined($delay);
-	}
-
-	get_power_status;
-	my $status = $_;
-
-	if ($action =~ /^on$/i)
-	{
-		if ($status =~ /^on$/i)
-		{
-			msg "success: already on";
-			return 0;
-		}
-			
-		set_power_status on;
-		fail "failed: $_" unless wait_power_status on;
-
-		msg "success: powered on";
-	}
-	elsif ($action =~ /^off$/i)
-	{
-		if ($status =~ /^off$/i)
-		{
-			msg "success: already off";
-			return 0;
-		}
-
-		set_power_status off;
-		fail "failed: $_" unless wait_power_status off;
-	
-		msg "success: powered off";
-	}
-	elsif ($action =~ /^reboot$/i)
-	{
-		if ( !($status =~ /^off$/i) )
-		{
-			set_power_status off;
-		}
-		fail "failed: $_" unless wait_power_status off;
-
-		set_power_status on;
-		fail "failed: $_" unless wait_power_status on;
-
-		msg "success: rebooted";
-	}
-	elsif ($action =~ /^status$/i)
-	{
-		msg "status: $status";
-		if ($status =~ /on/i)
-		{
-			return 0;
-		} else {
-			return 2;
-		}
-	}
-	else 
-	{
-		fail "failed: unrecognised action: '$action'";
-	}
-
-	return 0;
-}
-
-#
-# Decipher STDIN parameters
-#
-sub get_options_stdin
-{
-	my $opt;
-	my $line = 0;
-	while( defined($in = <>) )
-	{
-		$_ = $in;
-		chomp;
-
-		# strip leading and trailing whitespace
-		s/^\s*//;
-		s/\s*$//;
-
-		# skip comments
-		next if /^#/;
-	
-		$line+=1;
-		$opt=$_;
-		next unless $opt;
-
-		($name,$val)=split /\s*=\s*/, $opt;
-
-		if ( $name eq "" )
-		{
-			print STDERR "parse error: illegal name in option $line\n";
-			exit 2;
-		} 
-		# DO NOTHING -- this field is used by fenced 
-		elsif ($name eq "agent" ) 
-		{
-		} 
-		elsif ($name eq "ipaddr" ) 
-		{
-			$address = $val;
-		} 
-		elsif ($name eq "login" ) 
-		{
-			$login = $val;
-		} 
-		elsif ($name eq "action" ) 
-		{
-			$action = $val;
-		} 
-		elsif ($name eq "passwd" ) 
-		{
-			$passwd = $val;
-		}
-		elsif ($name eq "passwd_script" )
-		{
-			$passwd_script = $val;
-		}
-		elsif ($name eq "debug" ) 
-		{
-			$debug = $val;
-		} 
-		elsif ($name eq "modulename" ) 
-		{
-			$modulename = $val;
-		} 
-		elsif ($name eq "drac_version" ) 
-		{
-			$drac_version = $val;
-		} 
-		elsif ($name eq "cmd_prompt" ) 
-		{
-			$cmd_prompt = $val;
-		} 
-		elsif ($name eq "delay")
-		{
-			$delay = $val;
-		}
-	}
-}
-
-
-### MAIN #######################################################
-
-#
-# Check parameters
-#
-if (@ARGV > 0) {
-	getopts("a:c:d:D:hl:m:o:p:S:qVvf:") || fail_usage ;
-	
-	usage if defined $opt_h;
-	version if defined $opt_V;
-	
-	$quiet = 1 if defined $opt_q;
-	$debug = $opt_D; 
-
-	fail_usage "Unknown parameter." if (@ARGV > 0);
-
-	fail_usage "No '-a' flag specified." unless defined $opt_a;
-	$address = $opt_a;
-
-	fail_usage "No '-l' flag specified." unless defined $opt_l;
-	$login = $opt_l;
-
-	$modulename = $opt_m if defined $opt_m;
-	$delay = $opt_f if defined $opt_f;
-
-	if (defined $opt_S) {
-		$pwd_script_out = `$opt_S`;
-		chomp($pwd_script_out);
-		if ($pwd_script_out) {
-			$opt_p = $pwd_script_out;
-		}
-	}
-
-	fail_usage "No '-p' or '-S' flag specified." unless defined $opt_p;
-	$passwd = $opt_p;
-
-	$verbose = $opt_v if defined $opt_v;
-
-	$cmd_prompt = $opt_c if defined $opt_c;
-	$drac_version = $opt_d if defined $opt_d;
-
-	if ($opt_o)
-	{
-		fail_usage "Unrecognised action '$opt_o' for '-o' flag"
-		unless $opt_o =~ /^(Off|On|Reboot|status)$/i;
-		$action = $opt_o;
-	}
-
-} else {
-	get_options_stdin();
-
-	fail "failed: no IP address" unless defined $address;
-	fail "failed: no login name" unless defined $login;
-
-	if (defined $passwd_script) {
-		$pwd_script_out = `$passwd_script`;
-		chomp($pwd_script_out);
-		if ($pwd_script_out) {
-			$passwd = $pwd_script_out;
-		}
-	}
-
-	fail "failed: no password" unless defined $passwd;
-	fail "failed: unrecognised action: $action"
-		unless $action =~ /^(Off|On|Reboot|status)$/i;
-} 
-
-
-$t->timeout($telnet_timeout);
-$t->input_log($debug) if $debug;
-$t->errmode('return');  
-
-login;
-
-# Abort on failure beyond here
-$t->errmode(\&telnet_error);  
-
-if ($drac_version eq $DRAC_VERSION_III_XT)
-{
-	fail "failed: option 'modulename' not compatilble with DRAC version '$drac_version'" 
-		if defined $modulename;
-}
-elsif ($drac_version eq $DRAC_VERSION_MC)
-{
-	fail "failed: option 'modulename' required for DRAC version '$drac_version'"
-		unless  defined $modulename;
-}
-
-my $res = do_action;
-
-logout;
-
-exit $res;
-
-
diff --git a/fence/agents/drac/test_drac.sh b/fence/agents/drac/test_drac.sh
deleted file mode 100644
index 55ebc4d..0000000
--- a/fence/agents/drac/test_drac.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/bin/bash
-
-verbose="-D /dev/stdout -v "
-passwd="calvin"
-login="root"
-
-drac="drac.localhost.localdomain"
-modulename=" -m Server-1 "
-
-
-fence_drac="./fence_drac.pl"
-i=0
-
-cmd()
-{
-	echo $*
-	out=$(echo $*; $*)
-	out_exit=$?
-
-	echo "$out" > out.log.$i
-	echo "Exit $out_exit" >> out.log.$i
-
-	if [ $out_exit -ne 0 ]
-	then
-		echo "ASSERTION FAILURE: command failed: see out.log.$i" >&2
-		exit 1
-	fi
-
-	: $((i++))
-}
-
-pause()
-{
-	echo "press ENTER to continue"
-	read
-}
-
-assert()
-{
-	get_status
-	if [ "$status" != "$1" ]
-	then
-		echo "ASSERTION FAILURE: power status is '$status' not '$1'" >&2
-		exit 1
-	fi
-}
-
-get_status()
-{
-	cmd $fence_drac -o status -a $drac -l $login -p $passwd $modulename $verbose
-	status=$(echo "$out" | awk '($1 == "status:") { print tolower($2)}')
-	echo "status -> $status"
-}
-
-get_status
-pause
-
-cmd $fence_drac -o off -a $drac -l $login -p $passwd $modulename $verbose 
-assert off
-
-cmd $fence_drac -o on -a $drac -l $login -p $passwd $modulename $verbose 
-assert on
-
-cmd $fence_drac -o off -a $drac -l $login -p $passwd $modulename $verbose 
-assert off
-
-cmd $fence_drac -o reboot -a $drac -l $login -p $passwd $modulename $verbose 
-assert on
-
-cmd $fence_drac -o on -a $drac -l $login -p $passwd $modulename $verbose 
-assert on
-
-cmd $fence_drac -o reboot -a $drac -l $login -p $passwd $modulename $verbose 
-assert on
-
-cmd $fence_drac -o off -a $drac -l $login -p $passwd $modulename $verbose 
-assert off
-
-cmd $fence_drac -o off -a $drac -l $login -p $passwd $modulename $verbose 
-assert off
-
-echo SUCCESS
-exit 0
diff --git a/fence/agents/drac5/Makefile b/fence/agents/drac5/Makefile
deleted file mode 100644
index 4f74c52..0000000
--- a/fence/agents/drac5/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_drac5
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/drac5/fence_drac5.py b/fence/agents/drac5/fence_drac5.py
deleted file mode 100755
index 256158a..0000000
--- a/fence/agents/drac5/fence_drac5.py
+++ /dev/null
@@ -1,142 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  DRAC Version       Firmware
-## +-----------------+---------------------------+
-##  DRAC 5             1.0  (Build 06.05.12)
-##  DRAC 5             1.21 (Build 07.05.04)
-##
-## @note: drac_version was removed
-#####
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Drac5 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	try:
-		if options["model"] == "DRAC CMC":
-			conn.sendline("racadm serveraction powerstatus -m " + options["-m"])
-		elif options["model"] == "DRAC 5":
-			conn.sendline("racadm serveraction powerstatus")
-		
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-				
-	status = re.compile("(^|: )(ON|OFF|Powering ON|Powering OFF)\s*$", re.IGNORECASE | re.MULTILINE).search(conn.before).group(2)
-	if status.lower().strip() in ["on", "powering on", "powering off"]:
-		return "on"
-	else:
-		return "off"
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "powerup",
-		'off': "powerdown"
-	}[options["-o"]]
-
-	try:
-		if options["model"] == "DRAC CMC":
-			conn.sendline("racadm serveraction " + action + " -m " + options["-m"])
-		elif options["model"] == "DRAC 5":
-			conn.sendline("racadm serveraction " + action)
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def get_list_devices(conn, options):
-	outlets = { }
-
-	try:
-		if options["model"] == "DRAC CMC":
-			conn.sendline("getmodinfo")
-
-			list_re = re.compile("^([^\s]*?)\s+Present\s*(ON|OFF)\s*.*$")
-			for line in conn.before.splitlines():
-				if (list_re.search(line)):
-					outlets[list_re.search(line).group(1)] = ("", list_re.search(line).group(2))
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-		elif options["model"] == "DRAC 5":
-			## DRAC 5 can be used only for one computer
-			pass
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	return outlets
-	
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"cmd_prompt", "secure", "identity_file", "drac_version", "module_name",
-			"separator", "inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = "\$"
-
-	docs = { }           
-	docs["shortdesc"] = "Fence agent for Dell DRAC CMC/5" 
-	docs["longdesc"] = "fence_drac5 is an I/O Fencing agent \
-which can be used with the Dell Remote Access Card v5 or CMC (DRAC). \
-This device provides remote access to controlling  power to a server. \
-It logs into the DRAC through the telnet/ssh interface of the card. \
-By default, the telnet interface is not  enabled."
-	docs["vendorurl"] = "http://www.dell.com"
-	show_docs(options, docs)
-
-	##
-	## Operate the fencing device
-	######
-	conn = fence_login(options)
-
-	if conn.before.find("CMC") >= 0:
-		if 0 == options.has_key("-m") and 0 == ["monitor", "list"].count(option["-o"].lower()):
-			fail_usage("Failed: You have to enter module name (-m)")
-			
-		options["model"]="DRAC CMC"		
-	elif conn.before.find("DRAC 5") >= 0:
-		options["model"]="DRAC 5"
-	else:
-		## Assume this is DRAC 5 by default as we don't want to break anything
-		options["model"]="DRAC 5"
-
-	result = fence_action(conn, options, set_power_status, get_power_status, get_list_devices)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.sendline("exit")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/egenera/Makefile b/fence/agents/egenera/Makefile
deleted file mode 100644
index 3949482..0000000
--- a/fence/agents/egenera/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_egenera
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/egenera/fence_egenera.8 b/fence/agents/egenera/fence_egenera.8
deleted file mode 100644
index 1111b1b..0000000
--- a/fence/agents/egenera/fence_egenera.8
+++ /dev/null
@@ -1,78 +0,0 @@
-.TH fence_egenera 8
-
-.SH NAME
-fence_egenera - I/O Fencing agent for the Egenera BladeFrame
-
-.SH SYNOPSIS
-.B
-fence_egenera
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_egenera is an I/O Fencing agent which can be used with the Egenera
-BladeFrame.  It logs into a control blade (cserver) via ssh and operates
-on a processing blade (pserver) identified by the pserver name and the 
-logical process area network (LPAN) that it is in.  fence_egenera requires
-that ssh keys have been setup so that the fence_egenera does not require
-a password to authenticate.  Refer to ssh(8) for more information on setting
-up ssh keys.
-
-fence_egenera accepts options on the command line as well as from stdin.  
-Fenced sends parameters through stdin when it execs the agent.  fence_egenera 
-can also be run by itself with command line options.  
-
-Vendor URL: http://www.egenera.com
-
-.SH OPTIONS
-.TP
-\fB-c\fP \fIcserver\fR
-The cserver to ssh to.  cserver can be in the form user at hostname to
-specify a different user to login as.
-.TP
-\fB-h\fP 
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlpan\fR
-the lpan to operate on
-.TP
-\fB-o\fP \fIaction\fR
-The action required.  reboot (default), off, on or status.
-.TP
-\fB-p\fP \fIpserver\fR
-the pserver to operate on
-.TP
-\fB-f\fP \fIseconds\fR
-Wait X seconds before fencing is started
-.TP
-\fB-q\fP
-quite mode.  suppress output.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIaction = < param >\fR
-The action required.  reboot (default), off, on or status.
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_apc.
-.TP
-\fIcserver = < param >\fR
-The cserver to ssh to.  cserver can be in the form user at hostname to
-specify a different user to login as.
-.TP
-\fIlpan = < param >\fR
-The lpan to operate on
-.TP
-\fIpserver = < param >\fR
-The pserver to operate on
-.TP
-\fIesh = < param >\fR
-The path to the esh command on the cserver (default is /opt/panmgr/bin/esh)
-.TP
-\fIdelay = < param >\fR
-Wait X seconds before fencing is started
-
-.SH SEE ALSO
-fence(8), fence_node(8), ssh(8)
diff --git a/fence/agents/egenera/fence_egenera.pl b/fence/agents/egenera/fence_egenera.pl
deleted file mode 100644
index f09ff32..0000000
--- a/fence/agents/egenera/fence_egenera.pl
+++ /dev/null
@@ -1,439 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-use IPC::Open3;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-$|=1;
-s/.*\///;
-my $pname = $_;
-
-$esh="/opt/panmgr/bin/esh";
-
-sub usage 
-{
-	print "Usage:\n";
-	print "\n";
-	print "$pname [options]\n";
-	print "\n";
-	print "Options:\n";
-	print "  -c <string>      cserver\n";
-	print "  -h               help\n";
-	print "  -l <string>      lpan\n";
-	print "  -o <string>      Action: reboot (default), off, on or status\n";
-	print "  -p <string>      pserver\n";
-	print "  -u <string>      username (default=root)\n";
-	print "  -f <seconds>     Wait X seconds before fencing is started\n";
-	print "  -q               quiet mode\n";
-	print "  -V               version\n";
-	
-	exit 0;
-}
-
-sub fail
-{
-	($msg)=@_;
-	print $msg."\n" unless defined $opt_q;
-	$t->close if defined $t;
-	exit 1;
-}
-
-sub fail_usage
-{
-	($msg)=@_;
-	print STDERR $msg."\n" if $msg;
-	print STDERR "Please use '-h' for usage.\n";
-	exit 1;
-}
-
-
-sub version
-{
-	print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-	print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-	exit 0;
-}
-
-if (@ARGV > 0) 
-{
-	getopts("c:hl:o:p:u:qVf:") || fail_usage ;
-
-	usage if defined $opt_h;
-	version if defined $opt_V;
-
-	fail_usage "Unkown parameter." if (@ARGV > 0);
-
-	$cserv  = $opt_c if defined $opt_c;
-	$lpan   = $opt_l if defined $opt_l;
-	$pserv  = $opt_p if defined $opt_p;
-	$action = $opt_o if defined $opt_o;
-	$user   = $opt_u if defined $opt_u;
-	$delay  = $opt_f if defined $opt_f;
-} 
-else 
-{
-	get_options_stdin();
-} 
-
-$action = "reboot" unless defined $action;
-$user = "root" unless defined $user;
-
-fail "failed: no cserver defined" unless defined $cserv;
-fail "failed: no lpan defined" unless defined $lpan;
-fail "failed: no pserver defined" unless defined $pserv;
-
-fail "failed: unrecognised action: $action"
-	unless $action =~ /^(off|on|reboot|status|pblade)$/i;
-
-sub get_options_stdin
-{
-	my $opt;
-	my $line = 0;
-	while( defined($in = <>) )
-	{
-		$_ = $in;
-		chomp;
-
-		# strip leading and trailing whitespace
-		s/^\s*//;
-		s/\s*$//;
-
-		# skip comments
-		next if /^#/;
-
-	        $line+=1;
-		$opt=$_;
-		next unless $opt;
-
-		($name,$val)=split /\s*=\s*/, $opt;
-
-		if ( $name eq "" )
-		{
-			print STDERR "parse error: illegal name in option $line\n";
-			exit 2;
-		} 
-
-		elsif ($name eq "agent" )
-		{
-			# DO NOTHING -- this field is used by fenced 
-		}
-
-		elsif ($name eq "cserver" ) 
-		{
-			$cserv = $val;
-		} 
-
-		elsif ($name eq "lpan" ) 
-		{
-			$lpan = $val;
-		} 
-
-		elsif ($name eq "pserver" ) 
-		{
-			$pserv = $val;
-		} 
-
-		elsif ($name eq "action" ) 
-		{
-			$action = $val;
-		} 
-
-		elsif ($name eq "esh" ) 
-		{
-			$esh = $val;
-		} 
-		elsif ($name eq "user" )
-		{
-			$user = $val;
-		}
-		elsif ($name eq "delay" )
-		{
-			$delay = $val;
-		}
-	}
-}
-
-# _pserver_query_field -- query the state of the pBlade or Status field
-# and return it's value in $_.  
-# Return 0 on success, or non-zero on error
-sub _pserver_query_field
-{
-	my ($field,$junk) = @_;
-
-	if ($field ne "pBlade" && $field ne "Status")
-	{
-		$_="Error _pserver_query_field: unknown field of type '$field'";
-		return 1;
-	}
-
-	my $val;
-
-	my $cmd = "ssh -l $user $cserv $esh pserver $lpan/$pserv";
-	my $pid = open3 (\*WTR, \*RDR,\*RDR, $cmd)
-		or die "error open3(): $!";
-
-	while(<RDR>)
-	{
-		chomp;
-		my $line = $_;
-		my @fields = split /\s+/,$line;
-
-		if ($fields[0] eq "Error:")
-		{
-			$val=$line;
-			print "Debug ERROR: $val\n";
-			last;
-		}
-		elsif ($fields[0] eq $pserv)
-		{
-			if ( $field eq "Status" ) 
-			{
-				$val=$fields[1];
-			}
-			elsif ($field eq "pBlade" )
-			{
-				# grrr... Status can be "Shutting down"
-				if ($fields[1] ne "Shutting")
-				{
-					$val=$fields[3];
-				}
-				else
-				{
-					$val=$fields[4];
-				}
-			}
-		}
-	}
-
-	close WTR;
-	close RDR;
-	
-	waitpid $pid,0;
-	my $rtrn = $?>>8;
-	$_=$val if defined $val;
-	return $rtrn;
-}
-
-# return the pBlade of an lpan/pserver in $_.  
-# Return 0 on success or non=zero on error
-sub pserver_pblade
-{
-	_pserver_query_field "pBlade";
-}
-
-# return the Status of an lpan/pserver in $_.  
-# Return 0 on success or non=zero on error
-sub pserver_status
-{
-	_pserver_query_field "Status";
-}
-
-# boot an lpan/pserver.  
-# Return 0  if the status is "Booted" or "Booting" or non-zero on failure.
-# Continue checking the value until the status is "Boot" or "Booting" or
-# until a timeout of 120 seconds has been reached.
-sub pserver_boot
-{
-	my $rtrn=1;
-
-	# It seems it can take a while for a pBlade to 
-	# boot sometimes.  We shall wait for 120 seconds
-	# before giving up on a node returning failure
-	for (my $trys=0; $trys<120; $trys++)
-	{
-		last if (pserver_status != 0);
-
-		my $status = $_;
-		if ( $status eq "Booted"  || $status eq "Booting")
-		{
-			$rtrn=0;
-			last;
-		}
-
-		if(pserver_pblade)
-		{
-			die "error getting pBlade info";
-		}
-
-		# Is there any harm in sending this command multiple times?
-		my $cmd = "ssh -l $user $cserv $esh pserver -b $lpan/$pserv";
-		my $pid = open3 (\*WTR, \*RDR,\*RDR, $cmd)
-			or die "error open3(): $!";
-
-		close WTR;
-		close RDR;
-
-		waitpid $pid,0;
-		$rtrn = $?>>8;
-
-		sleep 1;
-	}
-	return $rtrn;
-}
-
-# boot an lpan/pserver.  
-# Return 0  if the status is "Shutdown" or non-zero on failure.
-# Continue checking the value until the status is "Shutdown" or
-# until a timeout of 20 seconds has been reached.
-sub pserver_shutdown
-{
-	my $rtrn=1;
-	local *egen_log;
-	open(egen_log,">>/@LOGDIR@/fence_egenera.log");
-	print egen_log "Attempting shutdown at ".`date`."\n";
-	for (my $trys=0; $trys<20; $trys++)
-	{
-		last if (pserver_status != 0);
-
-
-		my $status = $_;
-                print egen_log "shutdown: $trys    $status\n";
-		if (/^Shutdown/)
-		{
-			$rtrn=0;
-			last;
-		}
-		elsif (/^Shutting/)
-		{
-			# We are already in the process of shutting down.
-			# do I need to do anything here?  
-			# We'll just wait for now
-		}
-    elsif (/^Booting/)
-    {
-       # Server is already on the way back up. Do nothing
-       $rtrn=0;
-       last;
-    }
-		elsif (/^Booted\(KDB\)/ || /^Debugging/ )
-		{
-			print egen_log "shutdown: crash dump being performed. Waiting\n";
-			$rtrn=0;
-			last;
-		}
-		else
-		{
-			if (pserver_pblade)
-			{
-				die "error getting pBlade info: $_";
-			}
-
-			# is there any harm in sending this command multiple 
-			# times?
-			my $cmd = "ssh -l $user $cserv $esh blade -s $_";
-                        print egen_log "shutdown: $cmd  being called, before open3\n";
-			my $pid = open3 (\*WTR, \*RDR,\*RDR, $cmd)
-				or die "error open3(): $!";
-                        print egen_log "shutdown: after calling open3\n";
-                        @outlines = <RDR>;
-                        print egen_log "shutdown: Open3 result: ", @outlines, "\n";
-
-			close WTR;
-			close RDR;
-
-			waitpid $pid,0;
-			$rtrn = $?>>8;
-		}
-
-		sleep 1;
-	}
-        print egen_log "shutdown: Returning from pserver_shutdown with return code $rtrn\n";
-	return $rtrn;
-}
-
-
-$_=$action;
-if (/^status$/i)
-{
-	if (pserver_status==0)
-	{
-		print "$lpan/$pserv is $_\n" unless defined $opt_q;
-		exit 0;
-	}
-	else
-	{
-		fail "failed to get status of $lpan/$pserv: $_";
-	}
-}
-elsif (/^pblade$/i)
-{
-	if (pserver_pblade==0)
-	{
-		print "$lpan/$pserv is $_\n" unless defined $opt_q;
-		exit 0;
-	}
-	else
-	{
-		fail "failed to get pblade of $lpan/$pserv: $_";
-	}
-}
-elsif (/^off$/i)
-{
-	sleep ($delay) if defined($delay);
-	if (pserver_shutdown==0)
-	{
-		print "success: $lpan/$pserv has been shutdown\n" 
-			unless defined $opt_q;
-		exit 0;
-	}
-	else
-	{
-		fail "failed to shutdown $lpan/$pserv";
-	}
-}
-elsif (/^on$/i)
-{
-	if (pserver_boot==0)
-	{
-		print "success: $lpan/$pserv has been turned on\n" 
-			unless defined $opt_q;
-		exit 0;
-	}
-	else
-	{
-		fail "failed to turn on $lpan/$pserv";
-	}
-}
-elsif (/^reboot$/i)
-{
-	sleep ($delay) if defined($delay);
-	if (pserver_shutdown!=0)
-	{
-		fail "failed to shutdown $lpan/$pserv";
-	}
-
-	if (pserver_boot==0)
-	{
-		print "success: $lpan/$pserv has been rebooted\n" 
-			unless defined $opt_q;
-		exit 0;
-	}
-	else
-	{
-		fail "failed to turn on $lpan/$pserv";
-	}
-}
-else
-{
-	die "unknown action: $action";
-}
diff --git a/fence/agents/eps/Makefile b/fence/agents/eps/Makefile
deleted file mode 100644
index 3d591da..0000000
--- a/fence/agents/eps/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_eps
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/eps/fence_eps.py b/fence/agents/eps/fence_eps.py
deleted file mode 100644
index 049c01c..0000000
--- a/fence/agents/eps/fence_eps.py
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/python
-
-# The Following Agent Has Been Tested On:
-# ePowerSwitch 8M+ version 1.0.0.4
-
-import sys, re, time
-import httplib, base64, string,socket
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="ePowerSwitch 8M+ (eps)"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-# Log actions and results from EPS device
-def eps_log(options,str):
-	if options["log"]>=LOG_MODE_VERBOSE:
-		options["debug_fh"].write(str)
-
-# Run command on EPS device.
-# @param options Device options
-# @param params HTTP GET parameters (without ?)
-def eps_run_command(options, params):
-	try:
-		# New http connection
-		conn = httplib.HTTPConnection(options["-a"])
-
-		request_str="/"+options["-c"]
-
-		if (params!=""):
-			request_str+="?"+params
-
-		eps_log(options,"GET "+request_str+"\n")
-		conn.putrequest('GET', request_str)
-
-		if (options.has_key("-l")):
-			if (not options.has_key("-p")):
-				options["-p"]="" # Default is empty password
-				
-			# String for Authorization header
-			auth_str = 'Basic ' + string.strip(base64.encodestring(options["-l"]+':'+options["-p"]))
-			eps_log(options,"Authorization:"+auth_str+"\n")
-			conn.putheader('Authorization',auth_str)
-
-		conn.endheaders()
-
-		response = conn.getresponse()
-
-		eps_log(options,"%d %s\n"%(response.status,response.reason))
-
-		#Response != OK -> couldn't login
-		if (response.status!=200):
-			fail(EC_LOGIN_DENIED)
-
-		result=response.read()
-		eps_log(options,result+"\n")
-		conn.close()
-
-	except socket.timeout:
-		fail(EC_TIMED_OUT)
-	except socket.error:
-		fail(EC_LOGIN_DENIED)
-
-	return result
-
-def get_power_status(conn, options):
-	ret_val=eps_run_command(options,"")
-
-	result={}
-	status=re.findall("p(\d{2})=(0|1)\s*\<br\>",ret_val.lower())
-	for out_num,out_stat in status:
-		result[out_num]=("",(out_stat=="1" and "on" or "off"))
-
-	if (not (options["-o"] in ['monitor','list'])):
-		if (not (options["-n"] in result)):
-			fail_usage("Failed: You have to enter existing physical plug!")
-		else:
-			return result[options["-n"]][1]
-	else:
-		return result
-
-def set_power_status(conn, options):
-	ret_val=eps_run_command(options,"P%s=%s"%(options["-n"],(options["-o"]=="on" and "1" or "0")))
-
-# Define new option
-def eps_define_new_opts():
-	all_opt["hidden_page"]={
-		"getopt":"c:",
-		"help":"-c <page>      Name of hidden page (default hidden.htm)",
-		"order": 1}
-
-# Starting point of fence agent
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"test", "port", "hidden_page", "no_login", "no_password",
-			"separator" ]
-
-	atexit.register(atexit_handler)
-
-	eps_define_new_opts()
-
-	options = check_input(device_opt,process_input(device_opt))
-
-	if (not options.has_key("-c")):
-		options["-c"]="hidden.htm"
-
-	docs = { }           
-	docs["shortdesc"] = "Fence agent for ePowerSwitch" 
-	docs["longdesc"] = "fence_eps  is an I/O Fencing agent \
-which can be used with the ePowerSwitch 8M+ power switch to fence \
-connected machines. Fence agent works ONLY on 8M+ device, because \
-this is only one, which has support for hidden page feature. \
-\n.TP\n\
-Agent basically works by connecting to hidden page and pass \
-appropriate arguments to GET request. This means, that hidden \
-page feature must be enabled and properly configured."
-	docs["vendorurl"] = "http://www.epowerswitch.com"
-	show_docs(options, docs)
-
-	#Run fence action. Conn is None, beacause we always need open new http connection
-	result = fence_action(None, options, set_power_status, get_power_status,get_power_status)
-
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/ibmblade/Makefile b/fence/agents/ibmblade/Makefile
deleted file mode 100644
index 208ee4b..0000000
--- a/fence/agents/ibmblade/Makefile
+++ /dev/null
@@ -1,16 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET = fence_ibmblade
-MANTARGET = $(TARGET).8
-SBINSYMT = $(TARGET)
-
-all: $(TARGET)
-
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-include $(OBJDIR)/make/clean.mk
-
-$(TARGET):
-	ln -sf fence_bladecenter_snmp $@
-
-clean: generalclean
diff --git a/fence/agents/ibmblade/fence_ibmblade.8 b/fence/agents/ibmblade/fence_ibmblade.8
deleted file mode 100644
index f6f7888..0000000
--- a/fence/agents/ibmblade/fence_ibmblade.8
+++ /dev/null
@@ -1 +0,0 @@
-.so man8/fence_bladecenter_snmp.8
diff --git a/fence/agents/ifmib/Makefile b/fence/agents/ifmib/Makefile
deleted file mode 100644
index 64f4448..0000000
--- a/fence/agents/ifmib/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_ifmib
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ifmib/README b/fence/agents/ifmib/README
deleted file mode 100644
index cd2a3c1..0000000
--- a/fence/agents/ifmib/README
+++ /dev/null
@@ -1,45 +0,0 @@
-Intro:
-------
-This is an SNMP-based fencing agent for RHCS.  It was designed with the use-case
-of disabling ethernet ports on an iSCSI SAN, but could be used to disable any
-port on any SNMP v1/2c/3 device that implementes the IF-MIB.
-
-The script requires NetSNMP to be installed and working on all nodes
-in the cluster.  There are no requirements for any MIBs to be setup --- all of
-the required OIDs are hard-coded into the script.  Since the IF-MIB is an IETF
-standard, these identifiers are very widely supported and will not change.
-
-
-Typical usage:
---------------
-To use this agen with the switch used on the iSCSI network, you'll require:
-   1) A managed switch running SNMP.
-   2) An SNMP community with write privileges.
-   3) Permission to send SNMP through any ACLs or firewalls from the nodes.
-   4) The ifIndex or ifPort associated with the ports being used by the cluster nodes.
-
-Consider a three-node cluster composed of A, B, and C.  Each node has two
-network interfaces - one used for network and cluster communication, the second
-used for iSCSI traffic.  If A needs to be fenced, B and C will run this script
-to administratively disable the switchport for A's connection to the iSCSI
-storage.
-
-If you are using a single interface for cluster and iSCSI traffic, this will
-still work, but you will lose network connectivity to the fenced host.
-
-
-cluster.conf:
--------------
-There is no GUI support for this fence agent at this time.  To use it, you will
-need something like this cluster.conf
-
-<fencedevice agent="fence_ifmib" name="myswitch" comm="fencing" ipaddr="sw1"/>
-
-In a node's fencing methods, you'll include a line like this:
-
-<device name="myswitch" port="43" option="off"/>
-
-This node will be fenced by disabling the port with ifIndex 43 on the host sw1.
-In SNMP speak, we set IF-MIB::ifAdminStatus.43 = down(2).
-
-If you will use port name (like fc1/1), script will try to find ifIndex.
diff --git a/fence/agents/ifmib/fence_ifmib.py b/fence/agents/ifmib/fence_ifmib.py
deleted file mode 100644
index 2914301..0000000
--- a/fence/agents/ifmib/fence_ifmib.py
+++ /dev/null
@@ -1,149 +0,0 @@
-#!/usr/bin/python
-
-# The Following agent has been tested on:
-# - Cisco MDS UROS 9134 FC (1 Slot) Chassis ("1/2/4 10 Gbps FC/Supervisor-2") Motorola, e500v2
-#   with BIOS 1.0.16, kickstart 4.1(1c), system 4.1(1c)
-# - Cisco MDS 9124 (1 Slot) Chassis ("1/2/4 Gbps FC/Supervisor-2") Motorola, e500
-#   with BIOS 1.0.16, kickstart 4.1(1c), system 4.1(1c)
-# - Partially with APC PDU (Network Management Card AOS v2.7.0, Rack PDU APP v2.7.3)
-#   Only lance if is visible
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-from fencing_snmp import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="IF:MIB SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-### CONSTANTS ###
-# IF-MIB trees for alias, status and port
-ALIASES_OID=".1.3.6.1.2.1.31.1.1.1.18"
-PORTS_OID=".1.3.6.1.2.1.2.2.1.2"
-STATUSES_OID=".1.3.6.1.2.1.2.2.1.7"
-
-# Status constants returned as value from SNMP
-STATUS_UP=1
-STATUS_DOWN=2
-STATUS_TESTING=3
-
-### GLOBAL VARIABLES ###
-# Port number converted from port name or index
-port_num=None
-
-### FUNCTIONS ###
-
-# Convert port index or name to port index
-def port2index(conn,port):
-	res=None
-
-	if (port.isdigit()):
-		res=int(port)
-	else:
-		ports=conn.walk(PORTS_OID,30)
-
-		for x in ports:
-			if (x[1].strip('"')==port):
-				res=int(x[0].split('.')[-1])
-				break
-
-	if (res==None):
-		fail_usage("Can't find port with name %s!"%(port))
-
-	return res
-
-def get_power_status(conn,options):
-	global port_num
-
-	if (port_num==None):
-		port_num=port2index(conn,options["-n"])
-
-	(oid,status)=conn.get("%s.%d"%(STATUSES_OID,port_num))
-	return (status==str(STATUS_UP) and "on" or "off")
-
-def set_power_status(conn, options):
-	global port_num
-
-	if (port_num==None):
-		port_num=port2index(conn,options["-n"])
-
-	conn.set("%s.%d"%(STATUSES_OID,port_num),(options["-o"]=="on" and STATUS_UP or STATUS_DOWN))
-
-# Convert array of format [[key1, value1], [key2, value2], ... [keyN, valueN]] to dict, where key is
-# in format a.b.c.d...z and returned dict has key only z
-def array_to_dict(ar):
-	return dict(map(lambda y:[y[0].split('.')[-1],y[1]],ar))
-
-def get_outlets_status(conn, options):
-	result={}
-
-	res_fc=conn.walk(PORTS_OID,30)
-	res_aliases=array_to_dict(conn.walk(ALIASES_OID,30))
-
-	for x in res_fc:
-		port_num=x[0].split('.')[-1]
-
-		port_name=x[1].strip('"')
-		port_alias=(res_aliases.has_key(port_num) and res_aliases[port_num].strip('"') or "")
-		port_status=""
-		result[port_name]=(port_alias,port_status)
-
-	return result
-
-# Define new options
-def ifmib_define_defaults():
-	all_opt["snmp_version"]["default"]="2c"
-
-# Main agent method
-def main():
-	global port_oid
-
-	device_opt = [ "help", "version", "agent", "quiet", "verbose", "debug",
-		       "action", "ipaddr", "login", "passwd", "passwd_script",
-		       "test", "port", "separator", "no_login", "no_password",
-		       "snmp_version", "community", "snmp_auth_prot", "snmp_sec_level",
-		       "snmp_priv_prot", "snmp_priv_passwd", "snmp_priv_passwd_script",
-		       "udpport","inet4_only","inet6_only",
-		       "power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	snmp_define_defaults ()
-
-	options=process_input(device_opt)
-
-	# Emulate enable/disable functionality
-	if (options.has_key("-o")):
-		options["-o"]=options["-o"].lower()
-
-		if (options["-o"]=="enable"):
-			options["-o"]="on"
-		if (options["-o"]=="disable"):
-			options["-o"]="off"
-	else:
-		options["-o"]="off"
-
-	options = check_input(device_opt, options)
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for IF MIB"
-	docs["longdesc"] = "fence_ifmib is an I/O Fencing agent \
-which can be used with any SNMP IF-MIB capable device. \
-\n.P\n\
-It was written with managed ethernet switches in mind, in order to \
-fence iSCSI SAN connections. However, there are many devices that \
-support the IF-MIB interface. The agent uses IF-MIB::ifAdminStatus \
-to control the state of an interface."
-	docs["vendorurl"] = "http://www.ietf.org/wg/concluded/ifmib.html"
-	show_docs(options, docs)
-
-	# Operate the fencing device
-	result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/ilo/Makefile b/fence/agents/ilo/Makefile
deleted file mode 100644
index aafe6e4..0000000
--- a/fence/agents/ilo/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_ilo
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ilo/fence_ilo.py b/fence/agents/ilo/fence_ilo.py
deleted file mode 100755
index f70dc9c..0000000
--- a/fence/agents/ilo/fence_ilo.py
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  iLO Version
-## +---------------------------------------------+
-##  iLO  / firmware 1.91 / RIBCL 2.22
-##  iLO2 / firmware 1.22 / RIBCL 2.22 
-##  iLO2 / firmware 1.50 / RIBCL 2.22
-#####
-
-import sys, re, pexpect, socket
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New ILO Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	conn.send("<LOGIN USER_LOGIN = \"" + options["-l"] + "\"" + \
-		" PASSWORD = \"" + options["-p"] + "\">\r\n")
-	conn.send("<SERVER_INFO MODE = \"read\"><GET_HOST_POWER_STATUS/>\r\n")
-	conn.send("</SERVER_INFO></LOGIN>\r\n")
-	try:
-		conn.log_expect(options, "HOST_POWER=\"(.*?)\"", int(options["-g"]))
-	except pexpect.EOF, e:
-		fail(EC_STATUS)
-	except pexpect.TIMEOUT, e:
-		fail(EC_TIMED_OUT)
-
-	status = conn.match.group(1)
-	return status.lower().strip()
-
-def set_power_status(conn, options):
-	conn.send("<LOGIN USER_LOGIN = \"" + options["-l"] + "\"" + \
-		" PASSWORD = \"" + options["-p"] + "\">\r\n")
-	conn.send("<SERVER_INFO MODE = \"write\">")
-
-	if options.has_key("fw_processor") and options["fw_processor"] == "iLO2":
-		if options["fw_version"] > 1.29:
-			conn.send("<HOLD_PWR_BTN TOGGLE=\"yes\" />\r\n")
-		else:
-			conn.send("<HOLD_PWR_BTN />\r\n")
-	elif options["-r"] < 2.21:
-		conn.send("<SET_HOST_POWER HOST_POWER = \"" + options["-o"] + "\" />\r\n")
-	else:
-		if options["-o"] == "off":
-			conn.send("<HOLD_PWR_BTN/>\r\n")
-		else:
-			conn.send("<PRESS_PWR_BTN/>\r\n")
-	conn.send("</SERVER_INFO></LOGIN>\r\n")
-
-	return
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"ssl", "ribcl", "inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	all_opt["login_timeout"]["default"] = "10"
-	all_opt["retry_on"]["default"] = "3"
-
-	pinput = process_input(device_opt)
-	pinput["-z"] = 1
-	options = check_input(device_opt, pinput)
-	
-	LOGIN_TIMEOUT = 10
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for HP iLO"
-	docs["longdesc"] = "fence_ilo is an I/O Fencing agent \
-used for HP servers with the Integrated Light Out (iLO) PCI card.\
-The agent opens an SSL connection to the iLO card. Once the SSL \
-connection is established, the agent is able to communicate with \
-the iLO card through an XML stream."
-	docs["vendorurl"] = "http://www.hp.com"
-	show_docs(options, docs)
-
-	##
-	## Login and get version number
-	####
-	conn = fence_login(options)
-	try:
-		conn.send("<?xml version=\"1.0\"?>\r\n")
-		conn.log_expect(options, [ "</RIBCL>", "<END_RIBCL/>" ], int(options["-y"]))
-		version = re.compile("<RIBCL VERSION=\"(.*?)\"", re.IGNORECASE).search(conn.before).group(1)
-		if options.has_key("-r") == 0:
-			options["-r"] = float(version)
-
-		if options["-r"] >= 2:
-			conn.send("<RIBCL VERSION=\"2.0\">\r\n")
-		else:
-			conn.send("<RIBCL VERSION=\"1.2\">\r\n")
-
-		conn.send("<LOGIN USER_LOGIN = \"" + options["-l"] + "\"" + \
-			" PASSWORD = \"" + options["-p"] + "\">\r\n")
-		if options["-r"] >= 2:
-			conn.send("<RIB_INFO MODE=\"read\"><GET_FW_VERSION />\r\n")
-			conn.send("</RIB_INFO>\r\n")
-			conn.log_expect(options, "<GET_FW_VERSION\s*\n", int(options["-Y"]))
-			conn.log_expect(options, "/>", int(options["-Y"]))
-			options["fw_version"] = float(re.compile("FIRMWARE_VERSION\s*=\s*\"(.*?)\"", re.IGNORECASE).search(conn.before).group(1))
-			options["fw_processor"] = re.compile("MANAGEMENT_PROCESSOR\s*=\s*\"(.*?)\"", re.IGNORECASE).search(conn.before).group(1)
-		conn.send("</LOGIN>\r\n")
-	except pexpect.TIMEOUT:
-		fail(EC_LOGIN_DENIED)
-	except pexpect.EOF:
-		fail(EC_LOGIN_DENIED)
-
-	##
-	## Fence operations
-	####
-	result = fence_action(conn, options, set_power_status, get_power_status, None)
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/ilo_mp/Makefile b/fence/agents/ilo_mp/Makefile
deleted file mode 100644
index 42ffb03..0000000
--- a/fence/agents/ilo_mp/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_ilo_mp
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ilo_mp/fence_ilo_mp.py b/fence/agents/ilo_mp/fence_ilo_mp.py
deleted file mode 100644
index 1618216..0000000
--- a/fence/agents/ilo_mp/fence_ilo_mp.py
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/python
-
-import sys, re, pexpect, socket
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	try:
-		conn.send("show /system1\r\n")
-		
-		re_state = re.compile('EnabledState=(.*)', re.IGNORECASE)
-		conn.log_expect(options, re_state, int(options["-Y"]))
-
-		status = conn.match.group(1).lower()
-
-		if status.startswith("enabled"):
-			return "on"
-		else:
-			return "off"
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def set_power_status(conn, options):
-	try:
-		if options["-o"] == "on":
-			conn.send("start /system1\r\n")
-		else:
-			conn.send("stop -f /system1\r\n")
-
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-
-		return
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"secure", "identity_file", "cmd_prompt", "ipport", "login_eol_lf",
-			"separator", "inet4_only", "inet6_only",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-	
-	all_opt["cmd_prompt"]["default"] = [ "MP>", "hpiLO->" ]
-	all_opt["power_wait"]["default"] = 5
-	
-	options = check_input(device_opt, process_input(device_opt))
-		
-	docs = { }
-	docs["shortdesc"] = "Fence agent for HP iLO MP"
-	docs["longdesc"] = ""
-	docs["vendorurl"] = "http://www.hp.com"
-	show_docs(options, docs)
-	
-	conn = fence_login(options)
-	conn.send("SMCLP\r\n")
-
-	##
-	## Fence operations
-	####
-	result = fence_action(conn, options, set_power_status, get_power_status)
-
-	try:
-		conn.send("exit\r\n")
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/intelmodular/Makefile b/fence/agents/intelmodular/Makefile
deleted file mode 100644
index e7509e6..0000000
--- a/fence/agents/intelmodular/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_intelmodular
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/intelmodular/fence_intelmodular.py b/fence/agents/intelmodular/fence_intelmodular.py
deleted file mode 100644
index 11ff9bc..0000000
--- a/fence/agents/intelmodular/fence_intelmodular.py
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/python
-
-# Tested with an Intel MFSYS25 using firmware package 2.6 Should work with an
-# MFSYS35 as well.
-#
-# Notes:
-#
-# The manual and firmware release notes says SNMP is read only. This is not
-# true, as per the MIBs that ship with the firmware you can write to
-# the bladePowerLed oid to control the servers.
-#
-# Thanks Matthew Kent for original agent and testing.
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-from fencing_snmp import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Intel Modular SNMP fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-### CONSTANTS ###
-# From INTELCORPORATION-MULTI-FLEX-SERVER-BLADES-MIB.my that ships with
-# firmware updates
-STATUSES_OID=".1.3.6.1.4.1.343.2.19.1.2.10.202.1.1.6"
-
-# Status constants returned as value from SNMP
-STATUS_UP=2
-STATUS_DOWN=0
-
-# Status constants to set as value to SNMP
-STATUS_SET_ON=2
-STATUS_SET_OFF=3
-
-### FUNCTIONS ###
-
-def get_power_status(conn,options):
-	(oid,status)=conn.get("%s.%s"%(STATUSES_OID,options["-n"]))
-	return (status==str(STATUS_UP) and "on" or "off")
-
-def set_power_status(conn, options):
-	conn.set("%s.%s"%(STATUSES_OID,options["-n"]),(options["-o"]=="on" and STATUS_SET_ON or STATUS_SET_OFF))
-
-def get_outlets_status(conn, options):
-	result={}
-
-	res_blades=conn.walk(STATUSES_OID,30)
-
-	for x in res_blades:
-		port_num=x[0].split('.')[-1]
-
-		port_alias=""
-		port_status=(x[1]==str(STATUS_UP) and "on" or "off")
-
-		result[port_num]=(port_alias,port_status)
-
-	return result
-
-# Main agent method
-def main():
-	global port_oid
-
-	device_opt = [ "help", "version", "agent", "quiet", "verbose", "debug",
-		       "action", "ipaddr", "login", "passwd", "passwd_script",
-		       "test", "port", "separator", "no_login", "no_password",
-		       "snmp_version", "community", "snmp_auth_prot", "snmp_sec_level",
-		       "snmp_priv_prot", "snmp_priv_passwd", "snmp_priv_passwd_script",
-		       "udpport","inet4_only","inet6_only",
-		       "power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	snmp_define_defaults ()
-
-	options=check_input(device_opt,process_input(device_opt))
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for Intel Modular"
-	docs["longdesc"] = "fence_intelmodular is an I/O Fencing agent \
-which can be used with Intel Modular device (tested on Intel MFSYS25, should \
-work with MFSYS35 as well). \
-\n.P\n\
-Note: Since firmware update version 2.7, SNMP v2 write support is \
-removed, and replaced by SNMP v3 support. So agent now has default \
-SNMP version 3. If you are using older firmware, please supply -d \
-for command line and snmp_version option for your cluster.conf."
-	docs["vendorurl"] = "http://www.intel.com"
-	show_docs(options, docs)
-
-	# Operate the fencing device
-	result = fence_action(FencingSnmp(options), options, set_power_status, get_power_status, get_outlets_status)
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/ipmilan/Makefile b/fence/agents/ipmilan/Makefile
deleted file mode 100644
index e8790af..0000000
--- a/fence/agents/ipmilan/Makefile
+++ /dev/null
@@ -1,33 +0,0 @@
-TARGET= fence_ipmilan
-
-SBINDIRT=$(TARGET)
-
-MANTARGET=$(TARGET).8
-
-all: ${TARGET} ${MANTARGET}
-
-include ../../../make/defines.mk
-include $(OBJDIR)/make/cobj.mk
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-OBJS=	expect.o \
-	ipmilan.o
-
-CFLAGS += -I${incdir}
-
-LDFLAGS += -L${libdir}
-
-${TARGET}: ${OBJS}
-	$(CC) -o $@ $^ $(LDFLAGS)
-
-$(MANTARGET): $(TARGET) ${SRCDIR}/fence/agents/lib/fence2man.xsl
-	set -e && \
-	./$(TARGET) -o metadata > .$@.tmp && \
-	xsltproc ${SRCDIR}/fence/agents/lib/fence2man.xsl .$@.tmp > $@
-
-clean: generalclean
-	rm -f $(MANTARGET) .$(MANTARGET).tmp
-
--include $(OBJS:.o=.d)
diff --git a/fence/agents/ipmilan/expect.c b/fence/agents/ipmilan/expect.c
deleted file mode 100644
index 85ba487..0000000
--- a/fence/agents/ipmilan/expect.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/** @file
- * Simple expect module for the STONITH library.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <syslog.h>
-#include <libintl.h>
-#include <sys/wait.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <stdarg.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <errno.h>
-#include <time.h>
-#include <sys/time.h>
-#include <sys/times.h>
-#ifdef _POSIX_PRIORITY_SCHEDULING
-#	include <sched.h>
-#endif
-
-#include "expect.h"
-
-#ifndef EOS
-#	define	EOS '\0'
-#endif
-
-
-/* 
- * Just incase we are on an out of date system 
- */
-#ifndef CLOCKS_PER_SEC
-#  ifndef CLK_TCK
-#    error Neither CLOCKS_PER_SEC nor CLK_TCK (obsolete) are defined
-#  endif /* CLK_TCK */
-#  define CLOCKS_PER_SEC CLK_TCK
-#endif /* CLOCKS_PER_SEC */
-
-
-void close_all_files (void);
-
-/**
- * Look for ('expect') any of a series of tokens in the input
- * Return the token type for the given token or -1 on error.
- *
- * @param fd		The file descriptor to watch.
- * @param toklist	The series of tokens to look for.
- * @param to_secs	Timeout (in seconds).
- * @param buf		Receive buffer (preallocated).
- * @param maxline	Length of receive buffer.
- */
-int
-ExpectToken(int	fd, struct Etoken * toklist, int to_secs, char * buf
-,	int maxline)
-{
-	clock_t		starttime;
-	clock_t		endtime;
-	int		wraparound=0;
-	int		tickstousec = (1000000/CLOCKS_PER_SEC);
-	clock_t		now;
-	clock_t		ticks;
-	int		nchars = 1; /* reserve space for an EOS */
-	struct timeval	tv;
-	struct tms      tms_unused; /*This tms is unused, but cygwin doesn't like NULL in times*/
-	struct Etoken *	this;
-
-	/* Figure out when to give up.  Handle lbolt wraparound */
-	if (fd < 0) {
-		errno = EINVAL;
-		return -1;
-	}
-	
-	starttime = times(&tms_unused);
-	ticks = (to_secs*CLOCKS_PER_SEC);
-	endtime = starttime + ticks;
-
-	if (endtime < starttime) {
-		wraparound = 1;
-	}
-
-	if (buf) {
-		*buf = EOS;
-	}
-
-	for (this=toklist; this->string; ++this) {
-		this->matchto = 0;
-	}
-
-
-	while (now = times(&tms_unused),
-		(wraparound && (now > starttime || now <= endtime))
-		||	(!wraparound && now <= endtime)) {
-
-		fd_set infds;
-		char	ch;
-		clock_t		timeleft;
-		int		retval;
-
-		timeleft = endtime - now;
-
-		tv.tv_sec = timeleft / CLOCKS_PER_SEC;
-		tv.tv_usec = (timeleft % CLOCKS_PER_SEC) * tickstousec;
-
-		if (tv.tv_sec == 0 && tv.tv_usec < tickstousec) {
-			/* Give 'em a little chance */
-			tv.tv_usec = tickstousec;
-		}
-
-		/* Watch our FD to see when it has input. */
-           	FD_ZERO(&infds);
-           	FD_SET(fd, &infds);
-
-		retval = select(fd+1, &infds, NULL, NULL, &tv); 
-		if (retval <= 0) {
-			errno = ETIMEDOUT;
-			return(-1);
-		}
-		/* Whew!  All that work just to read one character! */
-		
-		if (read(fd, &ch, sizeof(ch)) <= 0) {
-			return(-1);
-		}
-		/* Save the text, if we can */
-		if (buf && nchars < maxline-1) {
-			*buf = ch;
-			++buf;
-			*buf = EOS;
-			++nchars;
-		}
-#if 0
-		fprintf(stderr, "%c", ch);
-#endif
-
-		/* See how this character matches our expect strings */
-
-		for (this=toklist; this->string; ++this) {
-
-			if (ch == this->string[this->matchto]) {
-
-				/* It matches the current token */
-
-			 	++this->matchto;
-				if (this->string[this->matchto] == EOS){
-					/* Hallelujah! We matched */
-					return(this->toktype);
-				}
-			}else{
-
-				/* It doesn't appear to match this token */
-
-				int	curlen;
-				int	nomatch=1;
-				/*
-				 * If we already had a match (matchto is
-				 * greater than zero), we look for a match
-				 * of the tail of the pattern matched so far
-				 * (with the current character) against the
-				 * head of the pattern.
-				 */
-
-				/*
-				 * This is to make the string "aab" match
-				 * the pattern "ab" correctly 
-				 * Painful, but nice to do it right.
-				 */
-
-				for (curlen = (this->matchto)
-				;	nomatch && curlen >= 0
-				;	--curlen) 			{
-					const char *	tail;
-					tail=(this->string)
-					+	this->matchto
-					-	curlen;
-
-					if (strncmp(this->string, tail
-					,	curlen) == 0
-					&&	this->string[curlen] == ch)  {
-						
-						if (this->string[curlen+1]==EOS){
-							/* We matched!  */
-							/* (can't happen?) */
-							return(this->toktype);
-						}
-						this->matchto = curlen+1;
-						nomatch=0;
-					}
-				}
-				if (nomatch) {
-					this->matchto = 0;
-				}
-			}
-		}
-	}
-	errno = ETIMEDOUT;
-	return(-1);
-}
-
-/**
- * Start a process with its stdin and stdout redirected to pipes
- * so the parent process can talk to it.
- *
- * @param cmd		Command line to run.
- * @param readfd	Filled with a pipe to the the output of the
- *			new child.
- * @param writefd	Filled with a pipe to the input of the new
- *			child.
- * @param redir_err	0, 1 = stderr, 2 = setsid, 3 = both
- * @return		-1 on failure (with errno set appropriately) or
- *			or the PID of the new child process.
- */
-int
-StartProcess(const char * cmd, int * readfd, int * writefd, int flags)
-{
-	pid_t	pid;
-	int	wrpipe[2];	/* The pipe the parent process writes to */
-				/* (which the child process reads from) */
-	int	rdpipe[2];	/* The pipe the parent process reads from */
-				/* (which the child process writes to) */
-
-	if (pipe(wrpipe) < 0) {
-		perror("cannot create pipe\n");
-		return(-1);
-	}
-	if (pipe(rdpipe) < 0) {
-		perror("cannot create pipe\n");
-		close(wrpipe[0]);
-		close(wrpipe[1]);
-		return(-1);
-	}
-	switch(pid=fork()) {
-	case -1:	
-		perror("cannot StartProcess cmd");
-		close(rdpipe[0]);
-		close(rdpipe[1]);
-		close(wrpipe[0]);
-		close(wrpipe[1]);
-		return(-1);
-
-	case 0:
-		/* We are the child */
-		/* Redirect stdin */
-		if (wrpipe[0] != 0) {
-			close(0);
-			if(dup2(wrpipe[0], 0) < 0) {
-			    syslog(LOG_CRIT,
-			    	   "StartProcess: dup2(%d,0) failed: %s\n",
-			    	   wrpipe[0],
-			    	   strerror(errno));
-			    exit(1);
-			}
-			close(wrpipe[0]);
-		}
-		close(wrpipe[1]);
-
-		/* Redirect stdout */
-		if (rdpipe[1] != 1) {
-			close(1);
-			if(dup2(rdpipe[1], 1) < 0) {
-			    syslog(LOG_CRIT,
-			    	   "StartProcess: dup2(%d,1) failed: %s\n",
-			    	   rdpipe[1],
-			    	   strerror(errno));
-			    exit(1);
-			}
-			close(rdpipe[1]);
-		}
-		close(rdpipe[0]);
-		
-		if (flags & EXP_STDERR) {
-			/* Redirect stderr */
-			close(2);
-			if(dup2(1, 2) < 0) {
-				syslog(LOG_CRIT,
-				       "StartProcess: dup2(1,2) failed: %s\n",
-				       strerror(errno));
-				exit(1);
-			}
-		}
-		
-		if (flags & EXP_NOCTTY)
-			setsid();
-		close_all_files(); /* Workaround telnet bugs */
-#if defined(SCHED_OTHER)
-		{
-			/*
-			 * Try and (re)set our scheduling to "normal"
-			 * Sometimes our callers run in soft
-			 * real-time mode.  The program we exec might
-			 * not be very well behaved - this is bad for
-			 * operation in high-priority (soft real-time)
-			 * mode.  In particular, telnet is prone to
-			 * going into infinite loops when killed.
-			 */
-			struct sched_param	sp;
-			memset(&sp, 0, sizeof(sp));
-			sp.sched_priority = 0;
-			sched_setscheduler(0, SCHED_OTHER, &sp);
-		}
-#endif
-		execlp("/bin/bash", "bash", "-c", cmd, NULL);
-		perror("cannot exec shell!");
-		exit(1);
-
-	default:	/* We are the parent */
-		*readfd = rdpipe[0];
-		close(rdpipe[1]);
-		*writefd = wrpipe[1];
-		close(wrpipe[0]);
-		return(pid);
-	}
-	/*NOTREACHED*/
-	return(-1);
-}
-
-/**
- * Close all file descriptors in a child process.
- *
- * Open fd's are inherited across exec unless they are
- * marked close on exec, which must be done explicitly
- * with fcntl().  While this should not affect the operation of
- * telnet, it was found that in some cases it did.  Its easier to
- * just fix it this way than to fix telnet.
- */
-void
-close_all_files (void)
-{
-	register int i, fd_table_size;
-
-	fd_table_size = getdtablesize ();
-	if (fd_table_size > 256)/* clamp to a reasonable value */
-		fd_table_size = 256;
-	
-	for (i = 3; i < fd_table_size; i++)
-		close (i);
-}
diff --git a/fence/agents/ipmilan/expect.h b/fence/agents/ipmilan/expect.h
deleted file mode 100644
index 41d398a..0000000
--- a/fence/agents/ipmilan/expect.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/** @file
- * Header for expect.c.
- *
- * Expect simple tokens.  Simple expect infrastructure for STONITH API
- *
- */
-
-#ifndef __EXPECT_H
-#	define __EXPECT_H
-/*
- *	If we find any of the given tokens in the input stream,
- *	we return it's "toktype", so we can tell which one was
- *	found.
- *
- */
-
-/**
- * A token we pass to ExpectToken()
- */
-struct Etoken {
-	const char *	string;		/**< The token to look for */
-	int		toktype;	/**< The type to return on match */
-	int		matchto;	/**< Modified during matches */
-};
-
-int ExpectToken(int fd
-,	struct Etoken * toklist	/* List of tokens to match against */
-				/* Final token has NULL string */
-,	int to_secs		/* Timeout value in seconds */
-,	char * buf		/* If non-NULL, then all the text
-				 * matched/skipped over by this match */
-,	int maxline);		/* Size of 'buf' area in bytes */
-
-
-/*
- *	A handy little routine.  It runs the given process
- *	with it's standard output redirected into our *readfd, and
- *	its standard input redirected from our *writefd
- *
- *	Doing this with all the pipes, etc. required for doing this
- *	is harder than it sounds :-)
- */
-
-int StartProcess(const char * cmd, int* readfd, int* writefd, int redir_err);
-
-#define EXP_STDERR 1
-#define EXP_NOCTTY 2
-
-#ifndef EOS
-#	define	EOS '\0'
-#endif
-#endif /*__EXPECT_H*/
diff --git a/fence/agents/ipmilan/ipmilan.c b/fence/agents/ipmilan/ipmilan.c
deleted file mode 100644
index 39c8fb1..0000000
--- a/fence/agents/ipmilan/ipmilan.c
+++ /dev/null
@@ -1,1147 +0,0 @@
-/** @file
- * clumanager 1.2.x linux-cluster fence and/or GFS fence
- * module for Intel/Bull/Dell Tiger4 machines via IPMI over lan.
- * (Probably works with anything ipmitool can control, though.)
- *
- * Note: REQUIRES ipmitool to operate.  On certain machines, the hardware
- * manufacturer provides this tool for you.  Otherwise, check:
- *
- *  http://ipmitool.sourceforge.net
- *
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <signal.h>
-#include <string.h>
-#include <errno.h>
-#include <limits.h>
-#include <sys/wait.h>
-#include <sys/stat.h>
-#include <libintl.h>
-
-/* fenced doesn't use the remote calls */
-#define ST_STATUS 0
-#define ST_POWERON 1
-#define ST_POWEROFF 2
-#define ST_GENERIC_RESET 3
-#define ST_CYCLE 4
-
-#define DEFAULT_TIMEOUT 20
-
-#define DEFAULT_METHOD "onoff"
-
-/* We should follow FenceAgentsAPI standard*/
-#define ERR_OFF_SUCCESSFUL 0
-#define ERR_OFF_FAIL       1
-
-#define ERR_ON_SUCCESSFUL 0
-#define ERR_ON_FAIL       1
-
-#define ERR_STATUS_ON     0
-#define ERR_STATUS_FAIL   1
-#define ERR_STATUS_OFF    2
-
-#define ERR_OK            0
-
-#define log(lvl, fmt, args...) fprintf(stderr, fmt, ##args)
-#include <libgen.h>
-#include "copyright.cf"
-
-#include "expect.h"
-
-#define IPMIID "IPMI over LAN driver"
-#define NOTIPMI "Destroyed IPMI over LAN driver"
-
-
-#define dbg_printf(i, lvl, fmt, args...) \
-do { \
-	if ( (i)->i_verbose >= lvl) { \
-		printf(fmt, ##args); \
-		fflush(stdout); \
-	} \
-} while (0)
-
-
-
-struct ipmi {
-	const char *i_id;
-	const char *i_ipmitool;
-	char *i_host;
-	char *i_user;
-	char *i_authtype;
-	char *i_password;
-	int i_rdfd;
-	int i_wrfd;
-	pid_t i_pid;
-	int i_config;
-	int i_verbose;
-	int i_lanplus;
-	int i_timeout;
-	int i_cipher;
-};
-
-
-/*
-   Supported installation paths
- */
-const char *ipmitool_paths[] = {
-	"/usr/local/bull/NSMasterHW/bin/ipmitool",
-	"/usr/bin/ipmitool",
-	"/usr/sbin/ipmitool",
-	"/bin/ipmitool",
-	"/sbin/ipmitool",
-	"/usr/local/bin/ipmitool",
-	"/usr/local/sbin/ipmitool",
-	NULL
-};
-
-
-#define ECIPHER 2048
-#define ESTATE (8192*2)
-static struct Etoken power_on_complete[] = {
-	{"Password:", EPERM, 0},
-	{"Unable to establish LAN", EAGAIN, 0},	/* Retry */
-	{"IPMI mutex", EFAULT, 0},	/* Death */
-	{"Unsupported cipher suite ID", ECIPHER,0},
-	{"read_rakp2_message: no support for", ECIPHER,0},
-	{"Up/On", 0, 0},
-	{NULL, 0, 0}
-};
-
-static struct Etoken power_off_complete[] = {
-	{"Password:", EPERM, 0},
-	{"Unable to establish LAN", EAGAIN, 0},	/* Retry */
-	{"IPMI mutex", EFAULT, 0},	/* Death */
-	{"Unsupported cipher suite ID", ECIPHER,0},
-	{"read_rakp2_message: no support for", ECIPHER,0},
-	{"Down/Off", 0, 0},
-	{NULL, 0, 0}
-};
-
-/** Powercycle operation */
-static struct Etoken power_cycle_complete[] = {
-	{"Password:", EPERM, 0},
-	{"Unable to establish LAN", EAGAIN, 0},	/* Retry */
-	{"IPMI mutex", EFAULT, 0},	/* Death */
-	{"Unsupported cipher suite ID", ECIPHER,0},
-	{"read_rakp2_message: no support for", ECIPHER,0},
-	{"Command not supported in present state", ESTATE, 0},
-	{": Cycle", 0, 0},
-	{NULL, 0, 0}
-};
-
-#define STATE_OFF 4096
-#define STATE_ON  8192
-static struct Etoken power_status[] = {
-	{"Password:", EPERM, 0},
-	{"Unable to establish LAN", EAGAIN, 0},	/* Retry */
-	{"IPMI mutex", EFAULT, 0},	/* Death */
-	{"Unsupported cipher suite ID", ECIPHER,0},
-	{"read_rakp2_message: no support for", ECIPHER,0},
-	{"Chassis Power is off", STATE_OFF, 0},
-	{"Chassis Power is on", STATE_ON, 0},
-	{NULL, 0, 0}
-};
-
-/* Structure describing one xml metadata value*/
-struct xml_parameter_s {
-  const char *name;
-  const char *getopt;
-  const int required;
-  const char *content_type;
-  const char *default_value;
-  const char *description;
-};
-
-/* Array of xml metadatas*/
-struct xml_parameter_s xml_parameters[]={
-  {"auth","-A",0,"string",NULL,"IPMI Lan Auth type (md5, password, or none)"},
-  {"ipaddr","-a",1,"string",NULL,"IPMI Lan IP to talk to"},
-  {"passwd","-p",0,"string",NULL,"Password (if required) to control power on IPMI device"},
-  {"passwd_script","-S",0,"string",NULL,"Script to retrieve password (if required)"},
-  {"lanplus","-P",0,"boolean",NULL,"Use Lanplus"},
-  {"login","-l",0,"string",NULL,"Username/Login (if required) to control power on IPMI device"},
-  {"action","-o",0,"string","reboot","Operation to perform. Valid operations: on, off, reboot, status, list, monitor or metadata"},
-  {"timeout","-t",0,"string",NULL,"Timeout (sec) for IPMI operation"},
-  {"cipher","-C",0,"string",NULL,"Ciphersuite to use (same as ipmitool -C parameter)"},
-  {"method","-M",0,"string",DEFAULT_METHOD,"Method to fence (onoff or cycle)"},
-  {"delay","-f",0,"string",NULL,"Wait X seconds before fencing is started"},
-  {"verbose","-v",0,"boolean",NULL,"Verbose mode"}};
-
-/*
-   Search for ipmitool
- */
-static const char *
-ipmitool_path(void)
-{
-	char *p;
-	int x = 0;
-	struct stat sb;
-
-	for (x = 0; ipmitool_paths[x]; x++) {
-		p = (char *)ipmitool_paths[x];
-		if (stat(p, &sb) != 0)
-			continue;
-
-		if (!S_ISREG(sb.st_mode))
-			continue;
-
-		/* executable? */
-		if ((sb.st_mode & S_IXUSR) == 0)
-			continue;
-
-		return (const char *)p;
-	}
-
-	return NULL;
-}
-
-
-/** Prepare string for use in sh style environment. This function take source
-  string and prepend/append quote (') to start/end of source string to dest
-  string. Any occurence of quote in source string is replaced by '\'' sequence.
-  Dest string must be preallocated.
-
-  @param dest Destination string
-  @param source Source string
-  @param max_len Maximum length of data written to dest string (including end 0)
-  @return Pointer to start of destination string.
-*/
-static char *str_prepare_for_sh(char *dest,char *source,int max_len) {
-  char *dest_p=dest;
-  char *max_dest=dest+max_len;
-
-  if (dest_p+1>=max_dest) {*dest_p=0;return dest;}
-  *dest_p++='\'';
-
-  while (*source) {
-    if (*source=='\'') {
-      if (dest_p+4>=max_dest) {*dest_p=0;return dest;}
-
-      memcpy(dest_p,"'\\''",4);dest_p+=4;
-    } else {
-      if (dest_p+1>=max_dest) {*dest_p=0;return dest;}
-
-      *dest_p++=*source;
-    }
-    source++;
-  }
-
-  if (dest_p+2>=max_dest) {*dest_p=0;return dest;}
-
-  *dest_p++='\'';*dest_p=0;
-
-  return dest;
-}
-
-static int
-build_cmd(char *command, size_t cmdlen, struct ipmi *ipmi, int op)
-{
-	char cmd[2048];
-	char arg[2048];
-	char tmp[2048];
-	int x;
-
-	/* Store path */
-	if (ipmi->i_lanplus) {
-		snprintf(cmd, sizeof(cmd), "%s -I lanplus -H %s",
-				ipmi->i_ipmitool,
-				str_prepare_for_sh(tmp,ipmi->i_host,sizeof(tmp)));
-	} else {
-		snprintf(cmd, sizeof(cmd), "%s -I lan -H %s", ipmi->i_ipmitool,
-				str_prepare_for_sh(tmp,ipmi->i_host,sizeof(tmp)));
-	}
-
-	if (ipmi->i_user) {
-		snprintf(arg, sizeof(arg), " -U %s", str_prepare_for_sh(tmp,ipmi->i_user,sizeof(tmp)));
-		strncat(cmd, arg, sizeof(cmd) - strlen(arg));
-	}
-
-	if (ipmi->i_authtype) {
-		snprintf(arg, sizeof(arg), " -A %s", str_prepare_for_sh(tmp,ipmi->i_authtype,sizeof(tmp)));
-		strncat(cmd, arg, sizeof(cmd) - strlen(arg));
-	}
-
-	if (ipmi->i_cipher>=0) {
-		snprintf(arg, sizeof(arg), " -C %d", ipmi->i_cipher);
-		strncat(cmd, arg, sizeof(cmd) - strlen(arg));
-	}
-
-	if (ipmi->i_password) {
-		snprintf(arg, sizeof(arg), " -P %s", str_prepare_for_sh(tmp,ipmi->i_password,sizeof(tmp)));
-		strncat(cmd, arg, sizeof(cmd) - strlen(arg));
-	} else {
-		snprintf(arg, sizeof(arg), " -P ''");
-		strncat(cmd, arg, sizeof(cmd) - strlen(arg));
-	}
-
-	/* Tack on the -v flags for ipmitool; in most cases, i_verbose
-	   will be 0 */
-	for (x = 0; x < ipmi->i_verbose; x++) {
-		snprintf(arg, sizeof(arg), " -v");
-		strncat(cmd, arg, sizeof(cmd) - strlen(arg));
-	}
-
-	switch(op) {
-	case ST_POWERON:
-		snprintf(arg, sizeof(arg),
-			 "%s chassis power on", cmd);
-		break;
-	case ST_POWEROFF:
-		snprintf(arg, sizeof(arg),
-			 "%s chassis power off", cmd);
-		break;
-	case ST_STATUS:
-		snprintf(arg, sizeof(arg),
-			 "%s chassis power status", cmd);
-		break;
-	case ST_CYCLE:
-		snprintf(arg, sizeof(arg),
-			 "%s chassis power cycle", cmd);
-		break;
-	}
-
-	strncpy(command, arg, cmdlen);
-	return 0;
-}
-
-
-static int
-ipmi_spawn(struct ipmi *ipmi, const char *cmd)
-{
-	dbg_printf(ipmi, 1, "Spawning: '%s'...\n", cmd);
-	if (!ipmi) {
-		errno = EINVAL;
-		return -1;
-	}
-
-	if (ipmi->i_pid != -1)  {
-		dbg_printf(ipmi, 1, "Can't spawn: PID %d running\n",
-			   (int)ipmi->i_pid);
-		errno = EINPROGRESS;
-		return -1;
-	}
-
-	if ((ipmi->i_pid = StartProcess(cmd, &ipmi->i_rdfd,
-					&ipmi->i_wrfd,
-					EXP_STDERR|EXP_NOCTTY)) >= 0) {
-		dbg_printf(ipmi, 2, "Spawned: '%s' - PID %d\n", cmd,
-			   (int)ipmi->i_pid);
-		return 0;
-	}
-	return -1;
-}
-
-
-static int
-ipmi_reap(struct ipmi *ipmi)
-{
-	if (ipmi->i_pid >= 0) {
-		dbg_printf(ipmi, 2, "Reaping pid %d\n", ipmi->i_pid);
-		kill(ipmi->i_pid, 9);
-		waitpid(ipmi->i_pid, NULL, 0);
-	}
-	ipmi->i_pid = -1;
-	if (ipmi->i_rdfd >= 0) {
-		close(ipmi->i_rdfd);
-		ipmi->i_rdfd = -1;
-	}
-	if (ipmi->i_wrfd >= 0) {
-		close(ipmi->i_wrfd);
-		ipmi->i_wrfd = -1;
-	}
-	return 0;
-}
-
-
-static int
-ipmi_expect(struct ipmi *ipmi, struct Etoken *toklist, int timeout)
-{
-	int ret;
-	char buf[32768]; /* XX hope this is enough */
-
-	dbg_printf(ipmi, 3, "Looking for: \n");
-	for (ret = 0; toklist[ret].string; ret++) {
-		dbg_printf(ipmi, 3, "    '%s', val = %d\n",
-			   toklist[ret].string,
-			   toklist[ret].toktype);
-	}
-
-	ret = ExpectToken(ipmi->i_rdfd, toklist, timeout, buf, sizeof(buf));
-	dbg_printf(ipmi, 3, "ExpectToken returned %d\n", ret);
-	if (ret == -1) {
-		ret = errno;
-		dbg_printf(ipmi, 3, "ExpectToken failed.  Info returned:\n");
-		dbg_printf(ipmi, 3, ">>>>>\n%s\n<<<<<\nError = %d (%s)\n",
-			   buf,
-			   ret,
-			   strerror(ret));
-	}
-
-	return ret;
-}
-
-
-static int
-ipmi_op(struct ipmi *ipmi, int op, struct Etoken *toklist)
-{
-	char cmd[2048];
-	int ret;
-
-	build_cmd(cmd, sizeof(cmd), ipmi, op);
-
-	if (ipmi_spawn(ipmi, cmd) != 0)
-		return -1;
-	ret = ipmi_expect(ipmi, toklist, ipmi->i_timeout);
-	ipmi_reap(ipmi);
-
-	if (ret == EFAULT) {
-		log(LOG_CRIT, "ipmilan: ipmitool failed to create "
-		    "mutex; unable to complete operation\n");
-		return ret;
-	}
-
-	if (ret == ECIPHER) {
-		log(LOG_CRIT, "ipmilan: ipmitool failed to operate "
-		    "with ciphersuite %d; unable to complete operation\n",ipmi->i_cipher);
-		return ret;
-	}
-
-	if (ret == ESTATE) {
-		log(LOG_CRIT, "ipmilan: ipmitool failed to complete "
-		    "command in current state\n");
-		return ret;
-	}
-
-	if (ret == ETIMEDOUT) {
-		/*!!! Still couldn't get through?! */
-		log(LOG_WARNING,
-		    "ipmilan: Failed to connect after %d seconds\n",ipmi->i_timeout);
-	}
-
-	return ret;
-}
-
-
-static int
-ipmi_off(struct ipmi *ipmi)
-{
-	int ret, retries = 7;
-
-	ret = ipmi_op(ipmi, ST_STATUS, power_status);
-	switch(ret) {
-	case STATE_ON:
-		break;
-	case STATE_OFF:
-		return 0;
-	default:
-		return ret;
-	}
-
-	while (retries>=0) {
-		ret = ipmi_op(ipmi, ST_POWEROFF, power_off_complete);
-		if (ret != 0)
-			return ret;
-
-		sleep(2);
-		--retries;
-		ret = ipmi_op(ipmi, ST_STATUS, power_status);
-
-		switch(ret) {
-		case STATE_OFF:
-			return 0;
-		case EFAULT:
-			/* We're done. */
-			retries = 0;
-			break;
-		case STATE_ON:
-		default:
-			continue;
-		}
-	}
-	log(LOG_WARNING, "ipmilan: Power still on\n");
-
-	return ret;
-}
-
-
-static int
-ipmi_on(struct ipmi *ipmi)
-{
-	int ret, retries = 7;
-
-	ret = ipmi_op(ipmi, ST_STATUS, power_status);
-	switch(ret) {
-	case STATE_ON:
-		return 0;
-	case STATE_OFF:
-		break;
-	default:
-		return ret;
-	}
-
-	while (retries>=0) {
-		ret = ipmi_op(ipmi, ST_POWERON, power_on_complete);
-		if (ret != 0)
-			return ret;
-
-		sleep(2);
-		--retries;
-		ret = ipmi_op(ipmi, ST_STATUS, power_status);
-
-		switch(ret) {
-		case STATE_ON:
-			return 0;
-		case EFAULT:
-			/* We're done. */
-			retries = 0;
-			break;
-		case STATE_OFF:
-		default:
-			continue;
-		}
-	}
-	log(LOG_WARNING, "ipmilan: Power still off\n");
-
-	return ret;
-}
-
-static int
-ipmi_cycle(struct ipmi *ipmi)
-{
-	int ret;
-
-	ret = ipmi_op(ipmi, ST_CYCLE, power_cycle_complete);
-
-	return ret;
-}
-
-
-/**
-  Squash all our private data
- */
-static void
-ipmi_destroy(struct ipmi *i)
-{
-	ipmi_reap(i);
-	if (i->i_user) {
-		free(i->i_user);
-		i->i_user = NULL;
-	}
-	if (i->i_password) {
-		free(i->i_password);
-		i->i_password= NULL;
-	}
-	if (i->i_host) {
-		free(i->i_host);
-		i->i_host = NULL;
-	}
-	i->i_config = 0;
-	i->i_id = NOTIPMI;
-}
-
-
-/**
-  Multipurpose initializer.  Used to either create a new, blank ipmi,
-  or update an existing one, or both.
- */
-static struct ipmi *
-ipmi_init(struct ipmi *i, char *host, char *authtype,
-	  char *user, char *password, int lanplus, int verbose,int timeout,
-	  int cipher)
-{
-	const char *p;
-
-	if (!i || !i->i_ipmitool)
-		p = ipmitool_path();
-	else
-		p = i->i_ipmitool;
-
-	if (!p) {
-		log(LOG_WARNING, "ipmilan: ipmitool not found!\n");
-		return NULL;
-	}
-
-	if (!i)
-		i = malloc (sizeof(*i));
-	if (!i)
-		return NULL;
-
-	if (host && strlen(host)) {
-		i->i_host = strdup(host);
-		if (!i->i_host) {
-			free(i);
-			return NULL;
-		}
-	} else
-		i->i_host = NULL;
-
-	if (password && strlen(password)) {
-		i->i_password = strdup(password);
-		if (!i->i_password) {
-			free(i->i_host);
-			free(i);
-			return NULL;
-		}
-	} else
-		i->i_password = NULL;
-
-	if (authtype && strlen(authtype)) {
-		i->i_authtype = strdup(authtype);
-		if (!i->i_authtype) {
-			free(i->i_host);
-			if (i->i_password)
-				free(i->i_password);
-			free(i);
-			return NULL;
-		}
-	} else
-		i->i_authtype = NULL;
-
-
-	if (user && strlen(user)) {
-		i->i_user= strdup(user);
-		if (!i->i_user) {
-			free(i->i_host);
-			if (i->i_authtype)
-				free(i->i_authtype);
-			if (i->i_password)
-				free(i->i_password);
-			free(i);
-			return NULL;
-		}
-	} else
-		i->i_user = NULL;
-	i->i_ipmitool = p;
-	i->i_rdfd = -1;
-	i->i_wrfd = -1;
-	i->i_pid = -1;
-	i->i_id = IPMIID;
-	i->i_verbose = verbose;
-	i->i_lanplus = lanplus;
-	i->i_timeout = timeout;
-	i->i_cipher = cipher;
-
-	return i;
-}
-
-
-/**
-   Remove leading and trailing whitespace from a line of text.
- */
-static int
-cleanup(char *line, size_t linelen)
-{
-	char *p;
-	size_t x;
-
-	/* Remove leading whitespace. */
-	p = line;
-	for (x = 0; x <= linelen; x++) {
-		switch (line[x]) {
-		case '\t':
-		case ' ':
-			break;
-		case '\n':
-		case '\r':
-			return -1;
-		default:
-			goto eol;
-		}
-	}
-eol:
-	/* Move the remainder down by as many whitespace chars as we
-	   chewed up */
-	if (x)
-		memmove(p, &line[x], linelen-x);
-
-	/* Remove trailing whitespace. */
-	for (x=0; x <= linelen; x++) {
-		switch(line[x]) {
-		case '\t':
-		case ' ':
-		case '\r':
-		case '\n':
-			line[x] = 0;
-		case 0:
-		/* End of line */
-			return 0;
-		}
-	}
-
-	return -1;
-}
-
-
-/**
-   Parse args from stdin.  Dev + devlen + op + oplen must be valid.
- */
-static int
-get_options_stdin(char *ip, size_t iplen,
-		  char *authtype, size_t atlen,
-		  char *passwd, size_t pwlen,
-		  char *pwd_script, size_t pwd_script_len,
-		  char *user, size_t userlen,
-		  char *op, size_t oplen,
-		  int *lanplus, int *verbose,int *timeout,
-	          int *cipher, char *method, int methodlen,
-	          char *delay, size_t delaylen)
-{
-	char in[256];
-	int line = 0;
-	char *name, *val;
-
-	op[0] = 0;
-	method[0] = 0;
-
-	while (fgets(in, sizeof(in), stdin)) {
-		++line;
-
-		if (in[0] == '#')
-			continue;
-
-		if (cleanup(in, sizeof(in)) == -1)
-			continue;
-
-		name = in;
-		if ((val = strchr(in, '='))) {
-			*val = 0;
-			++val;
-		}
-
-		if (!strcasecmp(name, "agent")) {
-			/* Used by fenced? */
-		} else if (!strcasecmp(name, "verbose")) {
-			*verbose = 1;
-		} else if (!strcasecmp(name, "ipaddr")) {
-			/* IP address to use.  E.g. 10.1.1.2 */
-			if (val)
-				strncpy(ip, val, iplen);
-			else
-				ip[0] = 0;
-
-		} else if (!strcasecmp(name, "auth")) {
-			/* Authtype to use */
-			if (val)
-				strncpy(authtype, val, atlen);
-			else
-				authtype[0] = 0;
-
-		} else if (!strcasecmp(name, "passwd")) {
-			/* password */
-			if (val)
-				strncpy(passwd, val, pwlen);
-			else
-				passwd[0] = 0;
-
-		} else if (!strcasecmp(name, "passwd_script")) {
-			if (val) {
-				strncpy(pwd_script, val, pwd_script_len);
-				pwd_script[pwd_script_len - 1] = '\0';
-			} else
-				pwd_script[0] = '\0';
-		} else if (!strcasecmp(name, "user") || !strcasecmp(name, "login")) {
-			/* username */
-			if (val)
-				strncpy(user, val, userlen);
-			else
-				user[0] = 0;
-		} else if (!strcasecmp(name, "lanplus")) {
-			(*lanplus) = 1;
-		} else if (!strcasecmp(name,"timeout")) {
-			if ((sscanf(val,"%d",timeout)!=1) || *timeout<1) {
-			    *timeout=DEFAULT_TIMEOUT;
-			}
-		} else if (!strcasecmp(name,"cipher")) {
-			if ((sscanf(val,"%d",cipher)!=1) || *cipher<0) {
-			    *cipher=-1;
-			}
-		} else if (!strcasecmp(name,"method")) {
-			strncpy (method, val, methodlen);
-		} else if (!strcasecmp(name, "option") ||
-			   !strcasecmp(name, "operation") ||
-			   !strcasecmp(name, "action")) {
-			if (val)
-				strncpy(op, val, oplen);
-			else
-				op[0] = 0;
-		} else if (!strcasecmp(name,"delay")) {
-			if (val)
-				strncpy(delay, val, delaylen);
-			else
-				delay[0] = 0;
-		}
-	}
-
-	return 0;
-}
-
-
-/**
-   Print a message to stderr and call exit(1).
- */
-static void
-fail_exit(const char *msg)
-{
-	fprintf(stderr, "failed: %s\n", msg);
-	exit(1);
-}
-
-static void
-usage_exit(char *pname)
-{
-printf("usage: %s <options>\n", pname);
-printf("   -A <authtype>  IPMI Lan Auth type (md5, password, or none)\n");
-printf("   -a <ipaddr>    IPMI Lan IP to talk to\n");
-printf("   -i <ipaddr>    IPMI Lan IP to talk to (deprecated, use -a)\n");
-printf("   -p <password>  Password (if required) to control power on\n"
-       "                  IPMI device\n");
-printf("   -P             Use Lanplus\n");
-printf("   -S <path>      Script to retrieve password (if required)\n");
-printf("   -l <login>     Username/Login (if required) to control power\n"
-       "                  on IPMI device\n");
-printf("   -o <op>        Operation to perform.\n");
-printf("                  Valid operations: on, off, reboot, status, list or monitor\n");
-printf("   -t <timeout>   Timeout (sec) for IPMI operation (default %d)\n",DEFAULT_TIMEOUT);
-printf("   -f <timeout>   Wait X seconds before fencing is started\n");
-printf("   -C <cipher>    Ciphersuite to use (same as ipmitool -C parameter)\n");
-printf("   -M <method>    Method to fence (onoff or cycle (default %s)\n", DEFAULT_METHOD);
-printf("   -V             Print version and exit\n");
-printf("   -v             Verbose mode\n\n");
-printf("If no options are specified, the following options will be read\n");
-printf("from standard input (one per line):\n\n");
-printf("   auth=<auth>           Same as -A\n");
-printf("   ipaddr=<#>            Same as -a\n");
-printf("   passwd=<pass>         Same as -p\n");
-printf("   passwd_script=<path>  Same as -S\n");
-printf("   lanplus               Same as -P\n");
-printf("   login=<login>         Same as -u\n");
-printf("   option=<op>           Same as -o\n");
-printf("   operation=<op>        Same as -o\n");
-printf("   action=<op>           Same as -o\n");
-printf("   delay=<seconds>       Same as -f\n");
-printf("   timeout=<timeout>     Same as -t\n");
-printf("   cipher=<cipher>       Same as -C\n");
-printf("   method=<method>       Same as -M\n");
-printf("   verbose               Same as -v\n\n");
-	exit(1);
-}
-
-
-/** Print XML metadata of fence agent*/
-static void print_xml_metadata(char *pname) {
-  int i;
-
-  printf("%s\n","<?xml version=\"1.0\" ?>");
-  printf("%s%s%s\n","<resource-agent name=\"",pname,"\" shortdesc=\"Fence agent for IPMI over LAN\">");
-  printf("<longdesc>\n");
-  printf("fence_ipmilan is an I/O Fencing agent which can be used with "
-         "machines controlled by IPMI. This agent calls support software "
-         "using ipmitool (http://ipmitool.sf.net/).");
-  printf("</longdesc>\n");
-  printf("%s\n","<parameters>");
-
-  for (i=0;i<(sizeof(xml_parameters)/sizeof(struct xml_parameter_s));i++) {
-    printf("\t<parameter name=\"%s\" unique=\"1\">\n",xml_parameters[i].name);
-
-    printf("\t\t<getopt mixed=\"%s\" />\n",xml_parameters[i].getopt);
-    if (xml_parameters[i].default_value == NULL) {
-      printf("\t\t<content type=\"%s\" />\n",xml_parameters[i].content_type);
-    } else {
-      printf("\t\t<content type=\"%s\" default=\"%s\"/>\n", \
-          xml_parameters[i].content_type, \
-          xml_parameters[i].default_value );
-    }
-
-    printf("\t\t<shortdesc lang=\"en\">");
-    printf("%s",xml_parameters[i].description);
-    printf("</shortdesc>\n");
-    printf("\t</parameter>\n");
-  }
-  printf("%s\n","</parameters>");
-  printf("%s\n","<actions>");
-  printf("\t<action name=\"%s\" />\n", "on");
-  printf("\t<action name=\"%s\" />\n", "off");
-  printf("\t<action name=\"%s\" />\n", "reboot");
-  printf("\t<action name=\"%s\" />\n", "status");
-  printf("\t<action name=\"%s\" />\n", "list");
-  printf("\t<action name=\"%s\" />\n", "monitor");
-  printf("\t<action name=\"%s\" />\n", "metadata");
-  printf("%s\n","</actions>");
-  printf("%s\n","</resource-agent>");
-}
-
-int
-main(int argc, char **argv)
-{
-	extern char *optarg;
-	int opt, ret = -1;
-	char authtype[64];
-	char ip[64];
-	char passwd[64];
-	char user[64];
-	char op[64];
-	char method[64];
-	char delay[64];
-	char pwd_script[PATH_MAX] = { 0, };
-	int lanplus=0;
-	int verbose=0;
-	char *pname = basename(argv[0]);
-	struct ipmi *i;
-	int timeout=DEFAULT_TIMEOUT;
-	int cipher=-1;
-	int print_final_status=1;
-	int translated_ret = -1;
-
-	memset(ip, 0, sizeof(ip));
-	memset(authtype, 0, sizeof(authtype));
-	memset(passwd, 0, sizeof(passwd));
-	memset(user, 0, sizeof(user));
-	memset(op, 0, sizeof(op));
-	memset(method, 0, sizeof(method));
-	memset(delay, 0, sizeof(delay));
-
-	if (argc > 1) {
-		/*
-		   Parse command line options if any were specified
-		 */
-		while ((opt = getopt(argc, argv, "A:a:i:l:p:S:Po:vV?hHt:C:M:f:")) != EOF) {
-			switch(opt) {
-			case 'A':
-				/* Auth type */
-				strncpy(authtype, optarg, sizeof(authtype));
-				break;
-			case 'a':
-			case 'i':
-				/* IP address */
-				strncpy(ip, optarg, sizeof(ip));
-				break;
-			case 'l':
-				/* user / login */
-				strncpy(user, optarg, sizeof(user));
-				break;
-			case 'p':
-				/* password */
-				strncpy(passwd, optarg, sizeof(passwd));
-				break;
-			case 'P':
-				lanplus = 1;
-				break;
-			case 'S':
-				strncpy(pwd_script, optarg, sizeof(pwd_script));
-				pwd_script[sizeof(pwd_script) - 1] = '\0';
-				break;
-			case 'o':
-				/* Operation */
-				strncpy(op, optarg, sizeof(op));
-				break;
-			case 'f':
-				/* Delay */
-				strncpy(delay, optarg, sizeof(delay));
-				break;
-			case 't':
-				/* Timeout */
-				if ((sscanf(optarg,"%d",&timeout)!=1) || timeout<1) {
-				    fail_exit("Timeout option expects positive number parameter");
-				}
-				break;
-			case 'C':
-				/* Ciphersuite */
-				if ((sscanf(optarg,"%d",&cipher)!=1) || cipher<0) {
-				    fail_exit("Ciphersuite option expects positive number parameter");
-				}
-				break;
-			case 'M':
-				/* Reboot method */
-				strncpy(method, optarg, sizeof(method));
-				break;
-			case 'v':
-				verbose++;
-				break;
-			case 'V':
-        			printf("%s %s (built %s %s)\n", pname,
-				       RELEASE_VERSION,
-               				__DATE__, __TIME__);
-        			printf("%s\n",
-				       REDHAT_COPYRIGHT);
-				return 0;
-			default:
-				usage_exit(pname);
-			}
-		}
-	} else {
-		/*
-		   No command line args?  Get stuff from stdin
-		 */
-		if (get_options_stdin(ip, sizeof(ip),
-				      authtype, sizeof(authtype),
-				      passwd, sizeof(passwd),
-					  pwd_script, sizeof(pwd_script),
-				      user, sizeof(user),
-				      op, sizeof(op), &lanplus, &verbose,&timeout,
-				      &cipher, method, sizeof(method),
-				      delay, sizeof(delay)) != 0)
-			return 1;
-	}
-
-	if (pwd_script[0] != '\0') {
-		char pwd_buf[1024];
-		FILE *fp;
-		fp = popen(pwd_script, "r");
-		if (fp != NULL) {
-			ssize_t len = fread(pwd_buf, 1, sizeof(pwd_buf), fp);
-			if (len > 0) {
-				char *p;
-				p = strchr(pwd_buf, '\n');
-				if (p != NULL)
-					*p = '\0';
-				p = strchr(pwd_buf, '\r');
-				if (p != NULL)
-					*p = '\0';
-				strncpy(passwd, pwd_buf, sizeof(passwd));
-				passwd[sizeof(passwd) - 1] = '\0';
-			}
-			pclose(fp);
-		}
-	}
-
-	if (!strcasecmp(op, "metadata")) {
-	  print_xml_metadata(pname);
-	  translated_ret = ERR_OK;
-	  ret=0;
-	  print_final_status=0;
-	  goto metaout;
-	}
-
-	/*
-	   Validate the operating parameters
-	 */
-	if (strlen(ip) == 0)
-		fail_exit("no IP address specified");
-
-	if (!strlen(op))
-		snprintf(op,sizeof(op), "reboot");
-
-	if (!strlen(method))
-		snprintf(method, sizeof(method), "onoff");
-
-	if (strcasecmp(op, "off") && strcasecmp(op, "on") &&
-	    strcasecmp(op, "status") && strcasecmp(op, "reboot") &&
-	    strcasecmp(op, "monitor") && strcasecmp(op, "list") &&
-	    strcasecmp(op, "metadata")) {
-		fail_exit("operation must be 'on', 'off', 'status', "
-			  "'reboot', 'list', 'monitor' or 'metadata'");
-	}
-
-	if (strlen(authtype) &&
-	    strcasecmp(authtype, "md5") &&
-	    strcasecmp(authtype, "password") &&
-	    strcasecmp(authtype, "none")) {
-		fail_exit("authtype, if included, must be 'md5', 'password',"
-			  " 'none'.");
-	}
-
-	if (strcasecmp(method, "onoff") &&
-	    strcasecmp(method, "cycle")) {
-		fail_exit("method, if included, muse be 'onoff', 'cycle'.");
-	}
-
-	if (!strcasecmp(method, "cycle") &&
-	    (!strcasecmp(op, "on") || !strcasecmp(op, "off"))) {
-		fail_exit("cycle method supports only 'reboot' operation (not 'on' or 'off').");
-	}
-
-	/* Delay fencing if requested */
-	if (delay) {
-		if (!strcasecmp(op, "reboot") || !strcasecmp(op, "off")) {
-			sleep(atoi(delay));
-		}
-	}
-
-	/* Ok, set up the IPMI struct */
-	i = ipmi_init(NULL, ip, authtype, user, passwd, lanplus, verbose, timeout, cipher);
-	if (!i)
-		fail_exit("Failed to initialize\n");
-
-	/*
-	   Perform the requested operation
-	 */
-	if (!strcasecmp(op, "reboot")) {
-		printf("Rebooting machine @ IPMI:%s...", ip);
-		fflush(stdout);
-		if (!strcasecmp(method, "cycle")) {
-			ret = ipmi_op(i, ST_STATUS, power_status);
-
-			if (ret == STATE_OFF) {
-				/* State is off -> use onoff method because cycle is not able to turn on*/
-				snprintf(method, sizeof(method), "onoff");
-			}
-		}
-
-		if (!strcasecmp(method, "cycle")) {
-			ret = ipmi_cycle(i);
-		} else {
-			/* Original onoff method */
-			ret = ipmi_off(i);
-			translated_ret = (ret==0?ERR_OFF_SUCCESSFUL:ERR_OFF_FAIL);
-			if (ret != 0) {
-				goto out;
-			}
-			ret = ipmi_on(i);
-		}
-	} else if (!strcasecmp(op, "on")) {
-		printf("Powering on machine @ IPMI:%s...", ip);
-		fflush(stdout);
-		ret = ipmi_on(i);
-		translated_ret = (ret==0?ERR_ON_SUCCESSFUL:ERR_ON_FAIL);
-	} else if (!strcasecmp(op, "off")) {
-		printf("Powering off machine @ IPMI:%s...", ip);
-		fflush(stdout);
-		ret = ipmi_off(i);
-		translated_ret = (ret==0?ERR_ON_SUCCESSFUL:ERR_ON_FAIL);
-	} else if (!strcasecmp(op, "status") || !strcasecmp(op, "monitor")) {
-		printf("Getting status of IPMI:%s...",ip);
-		fflush(stdout);
-		ret = ipmi_op(i, ST_STATUS, power_status);
-		switch(ret) {
-		case STATE_ON:
-		  if (!strcasecmp(op, "status"))
-			    printf("Chassis power = On\n");
-			translated_ret = ERR_STATUS_ON;
-			ret = 0;
-			break;
-		case STATE_OFF:
-		  if (!strcasecmp(op, "status"))
-			    printf("Chassis power = Off\n");
-			translated_ret = ERR_STATUS_OFF;
-			ret = 0;
-			break;
-		default:
-		  if (!strcasecmp(op, "status"))
-			    printf("Chassis power = Unknown\n");
-			translated_ret = ERR_STATUS_FAIL;
-			ret = 1;
-			break;
-		}
-	} else if (!strcasecmp(op, "list")) {
-	  printf("%s\n","N/A");
-	  ret=0;
-	  translated_ret = ERR_OK;
-	  print_final_status=0;
-	}
-
-
-out:
-	ipmi_destroy(i);
-	free(i);
-
-metaout:
-	if (print_final_status) {
-	  if (ret == 0)
-	    printf("Done\n");
-	  else
-	    printf("Failed\n");
-	}
-	return translated_ret;
-}
diff --git a/fence/agents/ldom/Makefile b/fence/agents/ldom/Makefile
deleted file mode 100644
index fb9de6c..0000000
--- a/fence/agents/ldom/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_ldom
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/ldom/fence_ldom.py b/fence/agents/ldom/fence_ldom.py
deleted file mode 100644
index 507a97a..0000000
--- a/fence/agents/ldom/fence_ldom.py
+++ /dev/null
@@ -1,139 +0,0 @@
-#!/usr/bin/python
-
-##
-## The Following Agent Has Been Tested On - LDOM 1.0.3
-## The interface is backward compatible so it will work 
-## with 1.0, 1.0.1 and .2 too.
-## 
-#####
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Logical Domains (LDoms) fence Agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-COMMAND_PROMPT_REG="\[PEXPECT\]$"
-COMMAND_PROMPT_NEW="[PEXPECT]"
-
-# Start comunicating after login. Prepare good environment.
-def start_communication(conn, options):
-	conn.sendline ("PS1='"+COMMAND_PROMPT_NEW+"'")
-	res=conn.expect([pexpect.TIMEOUT, COMMAND_PROMPT_REG],int(options["-Y"]))
-	if res==0:
-		#CSH stuff
-		conn.sendline("set prompt='"+COMMAND_PROMPT_NEW+"'")
-		conn.log_expect(options, COMMAND_PROMPT_REG,int(options["-Y"]))
-	
-
-def get_power_status(conn, options):
-	try:
-		start_communication(conn,options)
-		
-		conn.sendline("ldm ls")
-		    
-		conn.log_expect(options,COMMAND_PROMPT_REG,int(options["-Y"]))
-
-		result={}
-
-		#This is status of mini finite automata. 0 = we didn't found NAME and STATE, 1 = we did
-		fa_status=0
-		
-		for line in conn.before.splitlines():
-			domain=re.search("^(\S+)\s+(\S+)\s+.*$",line)
-
-			if (domain!=None):
-				if ((fa_status==0) and (domain.group(1)=="NAME") and (domain.group(2)=="STATE")):
-					fa_status=1
-				elif (fa_status==1):
-					result[domain.group(1)]=("",(domain.group(2).lower()=="bound" and "off" or "on"))
-
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	if (not (options["-o"] in ['monitor','list'])):
-		if (not (options["-n"] in result)):
-			fail_usage("Failed: You have to enter existing logical domain!")
-		else:
-			return result[options["-n"]][1]
-	else:
-		return result
-
-def set_power_status(conn, options):
-	try:
-		start_communication(conn,options)
-         	
-		cmd_line="ldm "+(options["-o"]=="on" and "start" or "stop -f")+" \""+options["-n"]+"\""
-            	
-		conn.sendline(cmd_line)
-		    
-		conn.log_expect(options,COMMAND_PROMPT_REG,int(options["-g"]))
-		
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-		
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"secure",  "identity_file", "test" , "port", "cmd_prompt",
-			"separator", "inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	pinput = process_input(device_opt)
-	pinput["-x"] = 1
-	options = check_input(device_opt, pinput)
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if (not options.has_key("-c")):
-		options["-c"] = "\ $"
-	
-	docs = { }
-	docs["shortdesc"] = "Fence agent for Sun LDOM"
-	docs["longdesc"] = "fence_ldom is an I/O Fencing agent \
-which can be used with LDoms virtual machines. This agent works \
-so, that run ldm command on host machine. So ldm must be directly \
-runnable.\
-\n.P\n\
-Very useful parameter is -c (or cmd_prompt in stdin mode). This \
-must be set to something, what is displayed after successful login \
-to host machine. Default string is space on end of string (default \
-for root in bash). But (for example) csh use ], so in that case you \
-must use parameter -c with argument ]. Very similar situation is, \
-if you use bash and login to host machine with other user than \
-root. Than prompt is $, so again, you must use parameter -c."
-	docs["vendorurl"] = "http://www.sun.com"
-	show_docs(options, docs)
-
-	##
-	## Operate the fencing device
-	####
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status,get_power_status)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.sendline("logout")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-
-	sys.exit(result)		
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/lib/Makefile b/fence/agents/lib/Makefile
deleted file mode 100644
index 2cccd98..0000000
--- a/fence/agents/lib/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fencing.py fencing_snmp.py
-
-FENCEAGENTSLIB= $(TARGET)
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/lib/fence2man.xsl b/fence/agents/lib/fence2man.xsl
deleted file mode 100644
index 563b3a4..0000000
--- a/fence/agents/lib/fence2man.xsl
+++ /dev/null
@@ -1,53 +0,0 @@
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:output method="text" indent="no"/>
-<xsl:template match="parameter">
-<xsl:param name="show" />
-.TP
-<xsl:if test="$show = 'getopt'">.B <xsl:value-of select="getopt/@mixed" /></xsl:if>
-<xsl:if test="$show = 'stdin'">.B <xsl:value-of select="@name"/></xsl:if>
-. 
-<xsl:value-of select="normalize-space(shortdesc)"/>
-<xsl:if test="not(content/@default)"><xsl:if test="@required = 1"> This parameter is always required.</xsl:if></xsl:if>
-<xsl:if test="content/@default"> (Default Value: <xsl:value-of select="content/@default"/>)</xsl:if>
-</xsl:template>
-
-<xsl:template match="action">
-.TP
-\fB<xsl:value-of select="@name"/> \fP
-<xsl:choose>
-<xsl:when test="@name = 'on'">Power on machine.</xsl:when>
-<xsl:when test="@name = 'off'">Power off machine.</xsl:when>
-<xsl:when test="@name = 'reboot'">Reboot machine.</xsl:when>
-<xsl:when test="@name = 'monitor'">Check if fencing device is running. List available plugs/virtual machines or get status of machine (if it does not support more).</xsl:when>
-<xsl:when test="@name = 'meta-data'">Display the XML metadata describing this resource.</xsl:when>
-<xsl:when test="@name = 'list'">List available plugs with aliases/virtual machines if there is support for more then one device. Returns N/A otherwise.</xsl:when>
-<xsl:when test="@name = 'status'">This returns the status of the plug/virtual machine.</xsl:when>
-<!-- Ehhh -->
-<xsl:otherwise> The operational behavior of this is not known.</xsl:otherwise>
-</xsl:choose>
-</xsl:template>
-
-<xsl:template match="/resource-agent">
-.TH FENCE_AGENT 8 2009-10-20 "<xsl:value-of select="@name"/> (Fence Agent)"
-.SH NAME
-<xsl:value-of select="@name" /> - <xsl:value-of select="@shortdesc" />
-.SH DESCRIPTION
-.P
-<xsl:value-of select="longdesc"/>
-.P
-<xsl:value-of select="@name" /> accepts options on the command line as well
-as from stdin. Fenced sends parameters through stdin when it execs the
-agent. <xsl:value-of select="@name" /> can be run by itself with command
-line options.  This is useful for testing and for turning outlets on or off
-from scripts.
-<xsl:if test="vendor-url">
-Vendor URL: <xsl:value-of select="vendor-url" />
-</xsl:if>
-.SH PARAMETERS
-<xsl:apply-templates select="parameters"><xsl:with-param name="show">getopt</xsl:with-param></xsl:apply-templates>
-.SH ACTIONS
-<xsl:apply-templates select="actions"/>
-.SH STDIN PARAMETERS
-<xsl:apply-templates select="parameters"><xsl:with-param name="show">stdin</xsl:with-param></xsl:apply-templates>
-</xsl:template>
-</xsl:stylesheet>
diff --git a/fence/agents/lib/fence2rng.xsl b/fence/agents/lib/fence2rng.xsl
deleted file mode 100644
index e132258..0000000
--- a/fence/agents/lib/fence2rng.xsl
+++ /dev/null
@@ -1,19 +0,0 @@
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-<xsl:output method="text" indent="yes"/>
-<xsl:template name="capitalize">
-	<xsl:param name="value"/>
-	<xsl:variable name="normalized" select="translate($value, '_abcdefghijklmnopqrstuvwrxyz', '-ABCDEFGHIJKLMNOPQRSTUVWRXYZ')"/>
-	<xsl:value-of select="$normalized"/>
-</xsl:template>
-<xsl:template match="/resource-agent">
-      &lt;group rha:fence_agent="<xsl:value-of select="@name"/>"&gt;
-        &lt;optional&gt;
-          &lt;attribute name="option"/&gt; &lt;!-- deprecated; for compatibility.  use "action" --&gt;
-        &lt;/optional&gt;<xsl:for-each select="parameters/parameter">
-        &lt;optional&gt;
-          &lt;attribute name="<xsl:value-of select="@name"/>" rha:description="<xsl:value-of select="normalize-space(shortdesc)"/>" /&gt;
-        &lt;/optional&gt;</xsl:for-each>
-      &lt;/group&gt;
-
-</xsl:template>
-</xsl:stylesheet>
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
deleted file mode 100644
index da4b222..0000000
--- a/fence/agents/lib/fencing.py.py
+++ /dev/null
@@ -1,928 +0,0 @@
-#!/usr/bin/python
-
-import sys, getopt, time, os
-import pexpect, re
-import telnetlib
-import atexit
-import __main__
-
-## do not add code here.
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = "New fence lib agent - test release on steroids"
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = "March, 2008"
-#END_VERSION_GENERATION
-
-LOG_MODE_VERBOSE = 100
-LOG_MODE_QUIET = 0
-
-EC_GENERIC_ERROR   = 1
-EC_BAD_ARGS        = 2
-EC_LOGIN_DENIED    = 3
-EC_CONNECTION_LOST = 4
-EC_TIMED_OUT       = 5
-EC_WAITING_ON      = 6
-EC_WAITING_OFF     = 7
-EC_STATUS          = 8
-EC_STATUS_HMC      = 9
-
-TELNET_PATH = "/usr/bin/telnet"
-SSH_PATH    = "/usr/bin/ssh"
-SSL_PATH    = "@SBINDIR@/fence_nss_wrapper"
-
-all_opt = {
-	"help"    : {
-		"getopt" : "h",
-		"longopt" : "help",
-		"help" : "-h, --help                     Display this help and exit",
-		"required" : "0",
-		"shortdesc" : "Display help and exit",
-		"order" : 54 },
-	"version" : { 
-		"getopt" : "V",
-		"longopt" : "version",
-		"help" : "-V, --version                  Output version information and exit",
-		"required" : "0",
-		"shortdesc" : "Display version information and exit",
-		"order" : 53 },
-	"quiet"   : {
-		"getopt" : "q",
-		"help" : "",
-		"order" : 50 },
-	"verbose" : {
-		"getopt" : "v",
-		"longopt" : "verbose",
-		"help" : "-v, --verbose                  Verbose mode",
-		"required" : "0",
-		"shortdesc" : "Verbose mode",
-		"order" : 51 },
-	"debug" : {
-		"getopt" : "D:",
-		"longopt" : "debug-file", 
-		"help" : "-D, --debug-file=<debugfile>   Debugging to output file",
-		"required" : "0",
-		"shortdesc" : "Write debug information to given file",
-		"order" : 52 },
-	"delay" : {
-		"getopt" : "f:",
-		"longopt" : "delay",
-		"help" : "--delay <seconds>              Wait X seconds before fencing is started",
-		"required" : "0",
-		"shortdesc" : "Wait X seconds before fencing is started",
-		"default" : "0",
-		"order" : 200 },
-	"agent"   : {
-		"getopt" : "",
-		"help" : "",
-		"order" : 1 },
-	"web"    : {
-		"getopt" : "",
-		"help" : "",
-		"order" : 1 },
-	"action" : {
-		"getopt" : "o:",
-		"longopt" : "action",
-		"help" : "-o, --action=<action>          Action: status, reboot (default), off or on",
-		"required" : "1",
-		"shortdesc" : "Fencing Action",
-		"default" : "reboot",
-		"order" : 1 },
-	"io_fencing" : {
-		"getopt" : "o:",
-		"longopt" : "action",
-		"help" : "-o, --action=<action>          Action: status, enable or disable",
-		"required" : "1",
-		"shortdesc" : "Fencing Action",
-		"default" : "disable",
-		"order" : 1 },
-	"ipaddr" : {
-		"getopt" : "a:",
-		"longopt" : "ip",
-		"help" : "-a, --ip=<ip>                  IP address or hostname of fencing device",
-		"required" : "1",
-		"shortdesc" : "IP Address or Hostname",
-		"order" : 1 },
-	"ipport" : {
-		"getopt" : "u:",
-		"longopt" : "ipport",
-		"help" : "-u, --ipport=<port>            TCP port to use",
-		"required" : "0",
-		"shortdesc" : "TCP port to use for connection with device",
-		"order" : 1 },		
-	"login" : {
-		"getopt" : "l:",
-		"longopt" : "username",
-		"help" : "-l, --username=<name>          Login name",
-		"required" : "?",
-		"shortdesc" : "Login Name",
-		"order" : 1 },
-	"no_login" : {
-		"getopt" : "",
-		"help" : "",
-		"order" : 1 },
-	"no_password" : {
-		"getopt" : "",
-		"help" : "",
-		"order" : 1 },
-	"passwd" : {
-		"getopt" : "p:",
-		"longopt" : "password",
-		"help" : "-p, --password=<password>      Login password or passphrase",
-		"required" : "0",
-		"shortdesc" : "Login password or passphrase",
-		"order" : 1 },
-	"passwd_script" : {
-		"getopt" : "S:",
-		"longopt" : "password-script=",
-		"help" : "-S, --password-script=<script> Script to run to retrieve password",
-		"required" : "0",
-		"shortdesc" : "Script to retrieve password",
-		"order" : 1 },
-	"identity_file" : {
-		"getopt" : "k:",
-		"longopt" : "identity-file",
-		"help" : "-k, --identity-file=<filename> Identity file (private key) for ssh ",
-		"required" : "0",
-		"shortdesc" : "Identity file for ssh",
-		"order" : 1 },
-	"module_name" : {
-		"getopt" : "m:",
-		"longopt" : "module-name",
-		"help" : "-m, --module-name=<module>     DRAC/MC module name",
-		"required" : "0",
-		"shortdesc" : "DRAC/MC module name",
-		"order" : 1 },
-	"drac_version" : {
-		"getopt" : "d:",
-		"longopt" : "drac-version",
-		"help" : "-d, --drac-version=<version>   Force DRAC version to use",
-		"required" : "0",
-		"shortdesc" : "Force DRAC version to use",
-		"order" : 1 },
-	"hmc_version" : {
-		"getopt" : "H:",
-		"longopt" : "hmc-version",
-		"help" : "-H, --hmc-version=<version>    Force HMC version to use: 3, 4 (default)",
-		"required" : "0",
-		"shortdesc" : "Force HMC version to use (3 or 4)",
-		"default" : "4", 
-		"order" : 1 },
-	"ribcl" : {
-		"getopt" : "r:",
-		"longopt" : "ribcl-version",
-		"help" : "-r, --ribcl-version=<version>  Force ribcl version to use",
-		"required" : "0",
-		"shortdesc" : "Force ribcl version to use",
-		"order" : 1 },
-	"login_eol_lf" : {
-		"getopt" : "",
-		"help" : "",
-		"order" : 1
-		},
-	"cmd_prompt" : {
-		"getopt" : "c:",
-		"longopt" : "command-prompt",
-		"help" : "-c, --command-prompt=<prompt>  Force command prompt",
-		"shortdesc" : "Force command prompt",
-		"required" : "0",
-		"order" : 1 },
-	"secure" : {
-		"getopt" : "x",
-		"longopt" : "ssh",
-		"help" : "-x, --ssh                      Use ssh connection",
-		"shortdesc" : "SSH connection",
-		"required" : "0",
-		"order" : 1 },
-	"ssl" : {
-		"getopt" : "z",
-		"longopt" : "ssl",
-		"help" : "-z, --ssl                      Use ssl connection",
-		"required" : "0",
-		"shortdesc" : "SSL connection",
-		"order" : 1 },
-	"port" : {
-		"getopt" : "n:",
-		"longopt" : "plug",
-		"help" : "-n, --plug=<id>                Physical plug number on device or\n" + 
-        "                                        name of virtual machine",
-		"required" : "1",
-		"shortdesc" : "Physical plug number or name of virtual machine",
-		"order" : 1 },
-	"switch" : {
-		"getopt" : "s:",
-		"longopt" : "switch",
-		"help" : "-s, --switch=<id>              Physical switch number on device",
-		"required" : "0",
-		"shortdesc" : "Physical switch number on device",
-		"order" : 1 },
-	"partition" : {
-		"getopt" : "n:",
-		"help" : "-n <id>                        Name of the partition",
-		"required" : "0",
-		"shortdesc" : "Partition name",
-		"order" : 1 },
-	"managed" : {
-		"getopt" : "s:",
-		"help" : "-s <id>                        Name of the managed system",
-		"required" : "0",
-		"shortdesc" : "Managed system name",
-		"order" : 1 },
-	"test" : {
-		"getopt" : "T",
-		"help" : "",
-		"order" : 1,
-		"obsolete" : "use -o status instead" },
-	"exec" : {
-		"getopt" : "e:",
-		"longopt" : "exec",
-		"help" : "-e, --exec=<command>           Command to execute",
-		"required" : "0",
-		"shortdesc" : "Command to execute",
-		"order" : 1 },
-	"vmware_type" : {
-		"getopt" : "d:",
-		"longopt" : "vmware_type",
-		"help" : "-d, --vmware_type=<type>       Type of VMware to connect",
-		"required" : "0",
-		"shortdesc" : "Type of VMware to connect",
-		"order" : 1 },
-	"vmware_datacenter" : {
-		"getopt" : "s:",
-		"longopt" : "vmware-datacenter",
-		"help" : "-s, --vmware-datacenter=<dc>   VMWare datacenter filter",
-		"required" : "0",
-		"shortdesc" : "Show only machines in specified datacenter",
-		"order" : 2 },
-	"snmp_version" : {
-		"getopt" : "d:",
-		"longopt" : "snmp-version",
-		"help" : "-d, --snmp-version=<ver>       Specifies SNMP version to use",
-		"required" : "0",
-		"shortdesc" : "Specifies SNMP version to use (1,2c,3)",
-		"order" : 1 },
-	"community" : {
-		"getopt" : "c:",
-		"longopt" : "community",
-		"help" : "-c, --community=<community>    Set the community string",
-		"required" : "0",
-		"shortdesc" : "Set the community string",
-		"order" : 1},
-	"snmp_auth_prot" : {
-		"getopt" : "b:",
-		"longopt" : "snmp-auth-prot",
-		"help" : "-b, --snmp-auth-prot=<prot>    Set authentication protocol (MD5|SHA)",
-		"required" : "0",
-		"shortdesc" : "Set authentication protocol (MD5|SHA)",
-		"order" : 1},
-	"snmp_sec_level" : {
-		"getopt" : "E:",
-		"longopt" : "snmp-sec-level",
-		"help" : "-E, --snmp-sec-level=<level>   Set security level\n"+
-		"                                  (noAuthNoPriv|authNoPriv|authPriv)",
-		"required" : "0",
-		"shortdesc" : "Set security level (noAuthNoPriv|authNoPriv|authPriv)",
-		"order" : 1},
-	"snmp_priv_prot" : {
-		"getopt" : "B:",
-		"longopt" : "snmp-priv-prot",
-		"help" : "-B, --snmp-priv-prot=<prot>    Set privacy protocol (DES|AES)",
-		"required" : "0",
-		"shortdesc" : "Set privacy protocol (DES|AES)",
-		"order" : 1},
-	"snmp_priv_passwd" : {
-		"getopt" : "P:",
-		"longopt" : "snmp-priv-passwd",
-		"help" : "-P, --snmp-priv-passwd=<pass>  Set privacy protocol password",
-		"required" : "0",
-		"shortdesc" : "Set privacy protocol password",
-		"order" : 1},
-	"snmp_priv_passwd_script" : {
-		"getopt" : "R:",
-		"longopt" : "snmp-priv-passwd-script",
-		"help" : "-R, --snmp-priv-passwd-script  Script to run to retrieve privacy password",
-		"required" : "0",
-		"shortdesc" : "Script to run to retrieve privacy password",
-		"order" : 1},
-	"inet4_only" : {
-		"getopt" : "4",
-		"longopt" : "inet4-only",
-		"help" : "-4, --inet4-only               Forces agent to use IPv4 addresses only",
-		"required" : "0",
-		"shortdesc" : "Forces agent to use IPv4 addresses only",
-		"order" : 1 },
-	"inet6_only" : {
-		"getopt" : "6",
-		"longopt" : "inet6-only",
-		"help" : "-6, --inet6-only               Forces agent to use IPv6 addresses only",
-		"required" : "0",
-		"shortdesc" : "Forces agent to use IPv6 addresses only",
-		"order" : 1 },
-	"udpport" : {
-		"getopt" : "u:",
-		"longopt" : "udpport",
-		"help" : "-u, --udpport                  UDP/TCP port to use",
-		"required" : "0",
-		"shortdesc" : "UDP/TCP port to use for connection with device",
-		"order" : 1},
-	"separator" : {
-		"getopt" : "C:",
-		"longopt" : "separator",
-		"help" : "-C, --separator=<char>         Separator for CSV created by 'list' operation",
-		"default" : ",", 
-		"required" : "0",
-		"shortdesc" : "Separator for CSV created by operation list",
-		"order" : 100 },
-	"login_timeout" : {
-		"getopt" : "y:",
-		"longopt" : "login-timeout",
-		"help" : "--login-timeout <seconds>      Wait X seconds for cmd prompt after login",
-		"default" : "5", 
-		"required" : "0",
-		"shortdesc" : "Wait X seconds for cmd prompt after login",
-		"order" : 200 },
-	"shell_timeout" : {
-		"getopt" : "Y:",
-		"longopt" : "shell-timeout",
-		"help" : "--shell-timeout <seconds>      Wait X seconds for cmd prompt after issuing command",
-		"default" : "3", 
-		"required" : "0",
-		"shortdesc" : "Wait X seconds for cmd prompt after issuing command",
-		"order" : 200 },
-	"power_timeout" : {
-		"getopt" : "g:",
-		"longopt" : "power-timeout",
-		"help" : "--power-timeout <seconds>      Test X seconds for status change after ON/OFF",
-		"default" : "20", 
-		"required" : "0",
-		"shortdesc" : "Test X seconds for status change after ON/OFF",
-		"order" : 200 },
-	"power_wait" : {
-		"getopt" : "G:",
-		"longopt" : "power-wait",
-		"help" : "--power-wait <seconds>         Wait X seconds after issuing ON/OFF",
-		"default" : "0", 
-		"required" : "0",
-		"shortdesc" : "Wait X seconds after issuing ON/OFF",
-		"order" : 200 },
-	"missing_as_off" : {
-		"getopt" : "M",
-		"longopt" : "missing-as-off",
-		"help" : "--missing-as-off               Missing port returns OFF instead of failure",
-		"required" : "0",
-		"shortdesc" : "Missing port returns OFF instead of failure",
-		"order" : 200 },
-	"retry_on" : {
-		"getopt" : "F:",
-		"longopt" : "retry-on",
-		"help" : "--retry-on <attempts>          Count of attempts to retry power on",
-		"default" : "1",
-		"required" : "0",
-		"shortdesc" : "Count of attempts to retry power on",
-		"order" : 200 }
-}
-
-common_opt = [ "retry_on", "delay" ]
-
-class fspawn(pexpect.spawn):
-	def log_expect(self, options, pattern, timeout):
-		result = self.expect(pattern, timeout)
-		if options["log"] >= LOG_MODE_VERBOSE:
-			options["debug_fh"].write(self.before + self.after)
-		return result
-
-def atexit_handler():
-	try:
-		sys.stdout.close()
-		os.close(1)
-	except IOError:
-		sys.stderr.write("%s failed to close standard output\n"%(sys.argv[0]))
-		sys.exit(EC_GENERIC_ERROR)
-
-def version(command, release, build_date, copyright_notice):
-	print command, " ", release, " ", build_date
-	if len(copyright_notice) > 0:
-		print copyright_notice
-
-def fail_usage(message = ""):
-	if len(message) > 0:
-		sys.stderr.write(message+"\n")
-	sys.stderr.write("Please use '-h' for usage\n")
-	sys.exit(EC_GENERIC_ERROR)
-
-def fail(error_code):
-	message = {
-		EC_LOGIN_DENIED : "Unable to connect/login to fencing device",
-		EC_CONNECTION_LOST : "Connection lost",
-		EC_TIMED_OUT : "Connection timed out",
-		EC_WAITING_ON : "Failed: Timed out waiting to power ON",
-		EC_WAITING_OFF : "Failed: Timed out waiting to power OFF",
-		EC_STATUS : "Failed: Unable to obtain correct plug status or plug is not available",
-		EC_STATUS_HMC : "Failed: Either unable to obtaion correct plug status, partition is not available or incorrect HMC version used"
-	}[error_code] + "\n"
-	sys.stderr.write(message)
-	sys.exit(EC_GENERIC_ERROR)
-
-def usage(avail_opt):
-	global all_opt
-
-	print "Usage:"
-	print "\t" + os.path.basename(sys.argv[0]) + " [options]"
-	print "Options:"
-
-	sorted_list = [ (key, all_opt[key]) for key in avail_opt ]
-	sorted_list.sort(lambda x, y: cmp(x[1]["order"], y[1]["order"]))
-
-	for key, value in sorted_list:
-		if len(value["help"]) != 0:
-			print "   " + value["help"]
-
-def metadata(avail_opt, options, docs):
-	global all_opt
-
-	sorted_list = [ (key, all_opt[key]) for key in avail_opt ]
-	sorted_list.sort(lambda x, y: cmp(x[1]["order"], y[1]["order"]))
-
-	print "<?xml version=\"1.0\" ?>"
-	print "<resource-agent name=\"" + os.path.basename(sys.argv[0]) + "\" shortdesc=\"" + docs["shortdesc"] + "\" >"
-	print "<longdesc>" + docs["longdesc"] + "</longdesc>"
-	if docs.has_key("vendorurl"):
-		print "<vendor-url>" + docs["vendorurl"] + "</vendor-url>"
-	print "<parameters>"
-	for option, value in sorted_list:
-		if all_opt[option].has_key("shortdesc"):
-			print "\t<parameter name=\"" + option + "\" unique=\"1\" required=\"" + all_opt[option]["required"] + "\">"
-
-			default = ""
-			if all_opt[option].has_key("default"):
-				default = "default=\""+str(all_opt[option]["default"])+"\""
-			elif options.has_key("-" + all_opt[option]["getopt"][:-1]):
-				if options["-" + all_opt[option]["getopt"][:-1]]:
-					try:
-						default = "default=\"" + options["-" + all_opt[option]["getopt"][:-1]] + "\""
-					except TypeError:
-						## @todo/@note: Currently there is no clean way how to handle lists
-						## we can create a string from it but we can't set it on command line
-						default = "default=\"" + str(options["-" + all_opt[option]["getopt"][:-1]]) +"\""
-			elif options.has_key("-" + all_opt[option]["getopt"]):
-				default = "default=\"true\" "
-
-			mixed = all_opt[option]["help"]
-			## split it between option and help text
-			res = re.compile("^(.*--\S+)\s+", re.IGNORECASE | re.S).search(mixed)
-			if (None != res):
-				mixed = res.group(1)
-			mixed = mixed.replace("<", "&lt;").replace(">", "&gt;")
-			print "\t\t<getopt mixed=\"" + mixed + "\" />"
-
-			if all_opt[option]["getopt"].count(":") > 0:
-				print "\t\t<content type=\"string\" "+default+" />"
-			else:
-				print "\t\t<content type=\"boolean\" "+default+" />"
-				
-			print "\t\t<shortdesc lang=\"en\">" + all_opt[option]["shortdesc"] + "</shortdesc>"
-			print "\t</parameter>"
-	print "</parameters>"
-	print "<actions>"
-	print "\t<action name=\"on\" />"
-	print "\t<action name=\"off\" />"
-	print "\t<action name=\"reboot\" />"
-	print "\t<action name=\"status\" />"
-	print "\t<action name=\"list\" />"
-	print "\t<action name=\"monitor\" />"
-	print "\t<action name=\"metadata\" />"	
-	print "</actions>"
-	print "</resource-agent>"
-
-def process_input(avail_opt):
-	global all_opt
-	global common_opt
-
-	##
-	## Add options which are available for every fence agent
-	#####
-	avail_opt.extend(common_opt)
-
-	##
-	## Set standard environment
-	#####
-	os.putenv("LANG", "C")
-	os.putenv("LC_ALL", "C")
-
-	##
-	## Prepare list of options for getopt
-	#####
-	getopt_string = ""
-	longopt_list = [ ]
-	for k in avail_opt:
-		if all_opt.has_key(k):
-			getopt_string += all_opt[k]["getopt"]
-		else:
-			fail_usage("Parse error: unknown option '"+k+"'")
-
-		if all_opt.has_key(k) and all_opt[k].has_key("longopt"):
-			if all_opt[k]["getopt"].endswith(":"):
-				longopt_list.append(all_opt[k]["longopt"] + "=")
-			else:
-				longopt_list.append(all_opt[k]["longopt"])
-
-	## Compatibility layer
-	if avail_opt.count("module_name") == 1:
-		getopt_string += "n:"
-		longopt_list.append("plug=")
-	
-	##
-	## Read options from command line or standard input
-	#####
-	if len(sys.argv) > 1:
-		try:
-			opt, args = getopt.gnu_getopt(sys.argv[1:], getopt_string, longopt_list)
-		except getopt.GetoptError, error:
-			fail_usage("Parse error: " + error.msg)
-
-		## Transform longopt to short one which are used in fencing agents
-		#####
-		old_opt = opt
-		opt = { }
-		for o in dict(old_opt).keys():
-			if o.startswith("--"):
-				for x in all_opt.keys():
-					if all_opt[x].has_key("longopt") and "--" + all_opt[x]["longopt"] == o:
-						opt["-" + all_opt[x]["getopt"].rstrip(":")] = dict(old_opt)[o]
-			else:
-				opt[o] = dict(old_opt)[o]
-
-		## Compatibility Layer
-		#####
-		z = dict(opt)
-		if z.has_key("-T") == 1:
-			z["-o"] = "status"
-		if z.has_key("-n") == 1:
-			z["-m"] = z["-n"]
-
-		opt = z
-		##
-		#####
-	else:
-		opt = { }
-		name = ""
-		for line in sys.stdin.readlines():
-			line = line.strip()
-			if ((line.startswith("#")) or (len(line) == 0)):
-				continue
-
-			(name, value) = (line + "=").split("=", 1)
-			value = value[:-1]
-
-			## Compatibility Layer
-			######
-			if name == "blade":
-				name = "port"
-			elif name == "option":
-				name = "action"
-			elif name == "fm":
-				name = "port"
-			elif name == "hostname":
-				name = "ipaddr"
-			elif name == "modulename":
-				name = "module_name"
-			elif name == "action" and 1 == avail_opt.count("io_fencing"):
-				name = "io_fencing"
-			elif name == "port" and 1 == avail_opt.count("drac_version"):
-				name = "module_name"
-
-			##
-			######
-			if avail_opt.count(name) == 0:
-				sys.stderr.write("Parse error: Ignoring unknown option '"+line+"'\n")
-				continue
-
-			if all_opt[name]["getopt"].endswith(":"):
-				opt["-"+all_opt[name]["getopt"].rstrip(":")] = value
-			elif ((value == "1") or (value.lower() == "yes")):
-				opt["-"+all_opt[name]["getopt"]] = "1"
-	return opt
-
-##
-## This function checks input and answers if we want to have same answers 
-## in each of the fencing agents. It looks for possible errors and run
-## password script to set a correct password
-######
-def check_input(device_opt, opt):
-	global all_opt
-	global common_opt
-
-	##
-	## Add options which are available for every fence agent
-	#####
-	device_opt.extend([x for x in common_opt if device_opt.count(x) == 0])
-	
-	options = dict(opt)
-	options["device_opt"] = device_opt
-
-	## Set requirements that should be included in metadata
-	#####
-	if device_opt.count("login") and device_opt.count("no_login") == 0:
-		all_opt["login"]["required"] = "1"
-	else:
-		all_opt["login"]["required"] = "0"
-
-	## In special cases (show help, metadata or version) we don't need to check anything
-	#####
-	if options.has_key("-h") or options.has_key("-V") or (options.has_key("-o") and options["-o"].lower() == "metadata"):
-		return options;
-
-	## Set default values
-	#####
-	for opt in device_opt:
-		if all_opt[opt].has_key("default"):
-			getopt = "-" + all_opt[opt]["getopt"].rstrip(":")
-			if 0 == options.has_key(getopt):
-				options[getopt] = all_opt[opt]["default"]
-
-	options["-o"]=options["-o"].lower()
-
-	if options.has_key("-v"):
-		options["log"] = LOG_MODE_VERBOSE
-	else:
-		options["log"] = LOG_MODE_QUIET
-
-	if 0 == device_opt.count("io_fencing"):
-		if 0 == ["on", "off", "reboot", "status", "list", "monitor"].count(options["-o"].lower()):
-			fail_usage("Failed: Unrecognised action '" + options["-o"] + "'")
-	else:
-		if 0 == ["enable", "disable", "status", "list", "monitor"].count(options["-o"].lower()):
-			fail_usage("Failed: Unrecognised action '" + options["-o"] + "'")
-		
-	if (0 == options.has_key("-l")) and device_opt.count("login") and (device_opt.count("no_login") == 0):
-		fail_usage("Failed: You have to set login name")
-
-	if 0 == options.has_key("-a"):
-		fail_usage("Failed: You have to enter fence address")
-
-	if (device_opt.count("no_password") == 0):
-		if 0 == device_opt.count("identity_file"):
-			if 0 == (options.has_key("-p") or options.has_key("-S")):
-				fail_usage("Failed: You have to enter password or password script")
-			else: 
-				if 0 == (options.has_key("-p") or options.has_key("-S") or options.has_key("-k")):
-					fail_usage("Failed: You have to enter password, password script or identity file")
-
-	if 0 == options.has_key("-x") and 1 == options.has_key("-k"):
-		fail_usage("Failed: You have to use identity file together with ssh connection (-x)")
-
-	if 1 == options.has_key("-k"):
-		if 0 == os.path.isfile(options["-k"]):
-			fail_usage("Failed: Identity file " + options["-k"] + " does not exist")
-
-	if (0 == ["list", "monitor"].count(options["-o"].lower())) and (0 == options.has_key("-n")) and (device_opt.count("port")):
-		fail_usage("Failed: You have to enter plug number")
-
-	if options.has_key("-S"):
-		options["-p"] = os.popen(options["-S"]).read().rstrip()
-
-	if options.has_key("-D"):
-		try:
-			options["debug_fh"] = file (options["-D"], "w")
-		except IOError:
-			fail_usage("Failed: Unable to create file "+options["-D"])
-
-	if options.has_key("-v") and options.has_key("debug_fh") == 0:
-		options["debug_fh"] = sys.stderr
-
-	if options.has_key("-R"):
-		options["-P"] = os.popen(options["-R"]).read().rstrip()
-
-	if options.has_key("-u") == False:
-		if options.has_key("-x"):
-			options["-u"] = 22
-		elif options.has_key("-z"):
-			options["-u"] = 443
-		elif device_opt.count("web"):
-			options["-u"] = 80
-		else:
-			options["-u"] = 23
-
-	return options
-	
-def wait_power_status(tn, options, get_power_fn):
-	for dummy in xrange(int(options["-g"])):
-		if get_power_fn(tn, options) != options["-o"]:
-			time.sleep(1)
-		else:
-			return 1
-	return 0
-
-def show_docs(options, docs = None):
-	device_opt = options["device_opt"]
-
-	if docs == None:
-		docs = { }
-		docs["shortdesc"] = "Fence agent"
-		docs["longdesc"] = ""
-	
-	## Process special options (and exit)
-	#####
-	if options.has_key("-h"): 
-		usage(device_opt)
-		sys.exit(0)
-
-	if options.has_key("-o") and options["-o"].lower() == "metadata":
-		metadata(device_opt, options, docs)
-		sys.exit(0)
-
-	if options.has_key("-V"):
-		print __main__.RELEASE_VERSION, __main__.BUILD_DATE
-		print __main__.REDHAT_COPYRIGHT
-		sys.exit(0)
-
-def fence_action(tn, options, set_power_fn, get_power_fn, get_outlet_list = None):
-	result = 0
-	
-	## Process options that manipulate fencing device
-	#####
-	if (options["-o"] == "list") and (0 == options["device_opt"].count("port")) and (0 == options["device_opt"].count("partition")):
-		print "N/A"
-		return
-	elif (options["-o"] == "list" and get_outlet_list == None):
-		## @todo: exception?
-		## This is just temporal solution, we will remove default value
-		## None as soon as all existing agent will support this operation 
-		print "NOTICE: List option is not working on this device yet"
-		return
-	elif (options["-o"] == "list") or ((options["-o"] == "monitor") and 1 == options["device_opt"].count("port")):
-		outlets = get_outlet_list(tn, options)
-		## keys can be numbers (port numbers) or strings (names of VM)
-		for o in outlets.keys():
-			(alias, status) = outlets[o]
-			if options["-o"] != "monitor":
-				print o + options["-C"] + alias	
-		return
-
-	if options["-o"] in ["off", "reboot"]:
-		time.sleep(int(options["-f"]))
-	status = get_power_fn(tn, options)
-
-	if status != "on" and status != "off":  
-		fail(EC_STATUS)
-
-	
-	if options["-o"] == "enable":
-		options["-o"] = "on"
-	if options["-o"] == "disable":
-		options["-o"] = "off"
-
-	if options["-o"] == "on":
-		if status == "on":
-			print "Success: Already ON"
-		else:
-			power_on = False
-			for i in range(1,1 + int(options["-F"])):
-				set_power_fn(tn, options)
-				time.sleep(int(options["-G"]))
-				if wait_power_status(tn, options, get_power_fn):
-					power_on = True
-					break
-
-			if power_on:
-				print "Success: Powered ON"
-			else:
-				fail(EC_WAITING_ON)
-	elif options["-o"] == "off":
-		if status == "off":
-			print "Success: Already OFF"
-		else:
-			set_power_fn(tn, options)
-			time.sleep(int(options["-G"]))
-			if wait_power_status(tn, options, get_power_fn):
-				print "Success: Powered OFF"
-			else:
-				fail(EC_WAITING_OFF)
-	elif options["-o"] == "reboot":
-		if status != "off":
-			options["-o"] = "off"
-			set_power_fn(tn, options)
-			time.sleep(int(options["-G"]))
-			if wait_power_status(tn, options, get_power_fn) == 0:
-				fail(EC_WAITING_OFF)
-		options["-o"] = "on"
-
-		power_on = False
-		for i in range(1,1 + int(options["-F"])):
-			set_power_fn(tn, options)
-			time.sleep(int(options["-G"]))
-			if wait_power_status(tn, options, get_power_fn) == 1:
-				power_on = True
-				break
-
-		if power_on == False:
-			# this should not fail as not was fenced succesfully
-			sys.stderr.write('Timed out waiting to power ON\n')
-
-		print "Success: Rebooted"
-	elif options["-o"] == "status":
-		print "Status: " + status.upper()
-		if status.upper() == "OFF":
-			result = 2
-	elif options["-o"] == "monitor":
-		1
-	
-	return result
-
-def fence_login(options):
-	force_ipvx=""
-
-	if (options.has_key("-6")):
-		force_ipvx="-6 "
-
-	if (options.has_key("-4")):
-		force_ipvx="-4 "
-
-	if (options["device_opt"].count("login_eol_lf")):
-		login_eol = "\n"
-	else:
-		login_eol = "\r\n"
-
-	try:
-		re_login = re.compile("(login\s*: )|(Login Name:  )|(username: )|(User Name :)", re.IGNORECASE)
-		re_pass  = re.compile("password", re.IGNORECASE)
-
-		if options.has_key("-z"):
-			command = '%s %s %s %s' % (SSL_PATH, force_ipvx, options["-a"], options["-u"])
-			try:
-				conn = fspawn(command)
-			except pexpect.ExceptionPexpect, ex:
-			 	## SSL telnet is part of the fencing package
-			 	sys.stderr.write(str(ex) + "\n")
-			 	sys.exit(EC_GENERIC_ERROR)
-		elif options.has_key("-x") and 0 == options.has_key("-k"):
-			command = '%s %s %s@%s -p %s' % (SSH_PATH, force_ipvx, options["-l"], options["-a"], options["-u"])
-			if options.has_key("ssh_options"):
-				command += ' ' + options["ssh_options"]
-			try:
-				conn = fspawn(command)
-			except pexpect.ExceptionPexpect, ex:
-				sys.stderr.write(str(ex) + "\n")
-				sys.stderr.write("Due to limitations, binary dependencies on fence agents "
-				"are not in the spec file and must be installed separately." + "\n")
-				sys.exit(EC_GENERIC_ERROR)
-				
-			if options.has_key("telnet_over_ssh"):
-				#This is for stupid ssh servers (like ALOM) which behave more like telnet (ignore name and display login prompt)
-				result = conn.log_expect(options, [ re_login, "Are you sure you want to continue connecting (yes/no)?" ], int(options["-y"]))
-				if result == 1:
-					conn.sendline("yes") # Host identity confirm
-					conn.log_expect(options, re_login, int(options["-y"]))
-
-				conn.sendline(options["-l"])
-				conn.log_expect(options, re_pass, int(options["-y"]))
-			else:
-				result = conn.log_expect(options, [ "ssword:", "Are you sure you want to continue connecting (yes/no)?" ], int(options["-y"]))
-				if result == 1:
-					conn.sendline("yes")
-					conn.log_expect(options, "ssword:", int(options["-y"]))
-
-			conn.sendline(options["-p"])
-			conn.log_expect(options, options["-c"], int(options["-y"]))
-		elif options.has_key("-x") and 1 == options.has_key("-k"):
-			command = '%s %s %s@%s -i %s -p %s' % (SSH_PATH, force_ipvx, options["-l"], options["-a"], options["-k"], options["-u"])
-			if options.has_key("ssh_options"):
-				command += ' ' + options["ssh_options"]
-			try:
-				conn = fspawn(command)
-			except pexpect.ExceptionPexpect, ex:
-				sys.stderr.write(str(ex) + "\n")
-				sys.stderr.write("Due to limitations, binary dependencies on fence agents "
-				"are not in the spec file and must be installed separately." + "\n")
-				sys.exit(EC_GENERIC_ERROR)
-
-			result = conn.log_expect(options, [ options["-c"], "Are you sure you want to continue connecting (yes/no)?", "Enter passphrase for key '"+options["-k"]+"':" ], int(options["-y"]))
-			if result == 1:
-				conn.sendline("yes")
-				conn.log_expect(options, [ options["-c"], "Enter passphrase for key '"+options["-k"]+"':"] , int(options["-y"]))
-			if result != 0:
-				if options.has_key("-p"):
-					conn.sendline(options["-p"])
-					conn.log_expect(options, options["-c"], int(options["-y"]))
-				else:
-					fail_usage("Failed: You have to enter passphrase (-p) for identity file")
-		else:
-			try:
-				conn = fspawn(TELNET_PATH)
-				conn.send("set binary\n")
-				conn.send("open %s -%s\n"%(options["-a"], options["-u"]))
-			except pexpect.ExceptionPexpect, ex:
-				sys.stderr.write(str(ex) + "\n")
-				sys.stderr.write("Due to limitations, binary dependencies on fence agents "
-				"are not in the spec file and must be installed separately." + "\n")
-				sys.exit(EC_GENERIC_ERROR)
-
-			conn.log_expect(options, re_login, int(options["-y"]))
-			conn.send(options["-l"] + login_eol)
-			conn.log_expect(options, re_pass, int(options["-Y"]))
-			conn.send(options["-p"] + login_eol)
-			conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_LOGIN_DENIED) 
-	except pexpect.TIMEOUT:
-		fail(EC_LOGIN_DENIED)
-	return conn
diff --git a/fence/agents/lib/fencing_snmp.py.py b/fence/agents/lib/fencing_snmp.py.py
deleted file mode 100644
index 4f55795..0000000
--- a/fence/agents/lib/fencing_snmp.py.py
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/usr/bin/python
-
-# For example of use please see fence_cisco_mds
-
-import re,pexpect
-from fencing import *
-
-## do not add code here.
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION = ""
-REDHAT_COPYRIGHT = ""
-BUILD_DATE = ""
-#END_VERSION_GENERATION
-
-# Fix for RHBZ#527844
-def snmp_define_defaults ():
-	all_opt["udpport"]["default"]="161"
-	all_opt["ipport"]["default"]="161"
-
-class FencingSnmp:
-	def __init__(self,options):
-		self.options=options
-
-	# Log message if user set verbose option
-	def log_command(self, message):
-		if self.options["log"] >= LOG_MODE_VERBOSE:
-			self.options["debug_fh"].write(message+"\n")
-
-	def quote_for_run(self,str):
-		return ''.join(map(lambda x:x==r"'" and "'\\''" or x,str))
-
-	def complete_missed_params(self):
-		mapping=[
-			[['P','p','!E'],'self.options["-E"]="authPriv"'],
-			[['!d','c','!l','!P','!p'],'self.options["-d"]="2c"']
-			]
-
-		for val in mapping:
-			e=val[0]
-
-			res=True
-
-			for item in e:
-				if ((item[0]=='!') and (self.options.has_key("-"+item[1]))):
-					res=False
-					break
-
-				if ((item[0]!='!') and (not self.options.has_key("-"+item[0]))):
-					res=False
-					break
-
-			if res:
-				exec(val[1])
-
-	def prepare_cmd(self,command):
-		cmd="@SNMPBIN@/%s -m '' -Oeqn "%(command)
-
-		self.complete_missed_params()
-
-		#mapping from our option to snmpcmd option
-		mapping=(('d','v'),('c','c'))
-
-		for item in mapping:
-			if (self.options.has_key("-"+item[0])):
-				cmd+=" -%s '%s'"%(item[1],self.quote_for_run(self.options["-"+item[0]]))
-
-		# Some options make sense only for v3 (and for v1/2c can cause "problems")
-		if (self.options.has_key("-d")) and (self.options["-d"] == "3"):
-			# Mapping from our options to snmpcmd options for v3
-			mapping_v3=(('b','a'),('E','l'),('B','x'),('P','X'),('p','A'),('l','u'))
-			for item in mapping_v3:
-				if (self.options.has_key("-"+item[0])):
-					cmd+=" -%s '%s'"%(item[1],self.quote_for_run(self.options["-"+item[0]]))
-
-		force_ipvx=""
-
-		if (self.options.has_key("-6")):
-			force_ipvx="udp6:"
-
-		if (self.options.has_key("-4")):
-			force_ipvx="udp:"
-
-		cmd+=" '%s%s%s'"%(force_ipvx, self.quote_for_run(self.options["-a"]),
-				self.options.has_key("-u") and self.quote_for_run(":" + str (self.options["-u"])) or "")
-		return cmd
-
-	def run_command(self,command,additional_timemout=0):
-		try:
-			self.log_command(command)
-
-			(res_output,res_code)=pexpect.run(command,int(self.options["-Y"])+int(self.options["-y"])+additional_timemout,True)
-
-			if (res_code==None):
-				fail(EC_TIMED_OUT)
-
-			self.log_command(res_output)
-
-			if (res_code!=0) or (re.search("^Error ", res_output, re.MULTILINE) != None):
-				fail_usage("Returned %d: %s"%(res_code,res_output))
-		except pexpect.ExceptionPexpect:
-			fail_usage("Cannot run command %s"%(command))
-
-		return res_output
-
-	def get(self,oid,additional_timemout=0):
-		cmd="%s '%s'"%(self.prepare_cmd("snmpget"),self.quote_for_run(oid))
-
-		output=self.run_command(cmd,additional_timemout).splitlines()
-
-		return output[len(output)-1].split(None,1)
-
-	def set(self,oid,value,additional_timemout=0):
-		mapping=((int,'i'),(str,'s'))
-
-		type=''
-
-		for item in mapping:
-			if (isinstance(value,item[0])):
-				type=item[1]
-				break
-
-		cmd="%s '%s' %s '%s'"%(self.prepare_cmd("snmpset"),self.quote_for_run(oid),type,self.quote_for_run(str(value)))
-
-		self.run_command(cmd,additional_timemout)
-
-	def walk(self,oid,additional_timemout=0):
-		cmd="%s '%s'"%(self.prepare_cmd("snmpwalk"),self.quote_for_run(oid))
-
-		output=self.run_command(cmd,additional_timemout).splitlines()
-
-		return map(lambda x:x.split(None,1),filter(lambda y:len(y)>0 and y[0]=='.',output))
diff --git a/fence/agents/lpar/Makefile b/fence/agents/lpar/Makefile
deleted file mode 100644
index 2ee6491..0000000
--- a/fence/agents/lpar/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_lpar
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/lpar/fence_lpar.py b/fence/agents/lpar/fence_lpar.py
deleted file mode 100644
index 00ea66c..0000000
--- a/fence/agents/lpar/fence_lpar.py
+++ /dev/null
@@ -1,185 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  Version       
-## +---------------------------------------------+
-##  Tested on HMC
-##
-#####
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	if options["-H"] == "3":
-		try:
-			conn.send("lssyscfg -r lpar -m " + options["-s"] + " -n " + options["-n"] + " -F name,state\n")
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-		except pexpect.EOF:
-			fail(EC_CONNECTION_LOST)
-		except pexpect.TIMEOUT:
-			fail(EC_TIMED_OUT)
-
-		try:
-			status = re.compile("^" + options["-n"] + ",(.*?),.*$", re.IGNORECASE | re.MULTILINE).search(conn.before).group(1)
-		except AttributeError:
-			fail(EC_STATUS_HMC)
-	elif options["-H"] == "4":
-		try:
-			conn.send("lssyscfg -r lpar -m "+ options["-s"] +" --filter 'lpar_names=" + options["-n"] + "'\n")
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-		except pexpect.EOF:
-			fail(EC_CONNECTION_LOST)
-		except pexpect.TIMEOUT:
-			fail(EC_TIMED_OUT)
-
-		try:				
-			status = re.compile(",state=(.*?),", re.IGNORECASE).search(conn.before).group(1)
-		except AttributeError:
-			fail(EC_STATUS_HMC)
-
-	##
-	## Transformation to standard ON/OFF status if possible
-	if status in ["Running", "Open Firmware", "Shutting Down", "Starting"]:
-		status = "on"
-	else:
-		status = "off"
-
-	return status
-
-def set_power_status(conn, options):
-	if options["-H"] == "3":
-		try:
-			conn.send("chsysstate -o " + options["-o"] + " -r lpar -m " + options["-s"]
-				+ " -n " + options["-n"] + "\n")
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-		except pexpect.EOF:
-			fail(EC_CONNECTION_LOST)
-		except pexpect.TIMEOUT:
-			fail(EC_TIMED_OUT)		
-	elif options["-H"] == "4":
-		try:
-			if options["-o"] == "on":
-				conn.send("chsysstate -o on -r lpar -m " + options["-s"] + 
-					" -n " + options["-n"] + 
-					" -f `lssyscfg -r lpar -F curr_profile " +
-					" -m " + options["-s"] +
-					" --filter \"lpar_names="+ options["-n"] +"\"`\n" )
-			else:
-				conn.send("chsysstate -o shutdown -r lpar --immed" +
-					" -m " + options["-s"] + " -n " + options["-n"] + "\n")		
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-		except pexpect.EOF:
-			fail(EC_CONNECTION_LOST)
-		except pexpect.TIMEOUT:
-			fail(EC_TIMED_OUT)
-
-def get_lpar_list(conn, options):
-	outlets = { }
-	if options["-H"] == "3":
-		try:
-			conn.send("query_partition_names -m " + options["-s"] + "\n")
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-
-			## We have to remove first 3 lines (command + header) and last line (part of new prompt)
-			####
-			res = re.search("^.+?\n(.+?\n){2}(.*)\n.*$", conn.before, re.S)
-
-			if res == None:
-				fail_usage("Unable to parse output of list command")
-		
-			lines = res.group(2).split("\n")
-			for x in lines:
-				outlets[x.rstrip()] = ("", "")
-		except pexpect.EOF:
-			fail(EC_CONNECTION_LOST)
-		except pexpect.TIMEOUT:
-			fail(EC_TIMED_OUT)		
-	elif options["-H"] == "4":
-		try:
-			conn.send("lssyscfg -r lpar -m " + options["-s"] + 
-				" -F name:state\n")
-			conn.log_expect(options, options["-c"], int(options["-g"]))
-
-			## We have to remove first line (command) and last line (part of new prompt)
-			####
-			res = re.search("^.+?\n(.*)\n.*$", conn.before, re.S)
-
-			if res == None:
-				fail_usage("Unable to parse output of list command")
-		
-			lines = res.group(1).split("\n")
-			for x in lines:
-				s = x.split(":")
-				outlets[s[0]] = ("", s[1])
-		except pexpect.EOF:
-			fail(EC_CONNECTION_LOST)
-		except pexpect.TIMEOUT:
-			fail(EC_TIMED_OUT)
-
-	return outlets
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"secure", "identity_file", "partition", "managed", "hmc_version", "cmd_prompt",
-			"separator", "inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	all_opt["login_timeout"]["default"] = "15"
-	all_opt["secure"]["default"] = "1"
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific settings and default values
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = [ ":~>", "]\$", "\$ " ]
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for IBM LPAR"
-	docs["longdesc"] = ""
-	show_docs(options, docs)
-
-	if 0 == options.has_key("-s"):
-		fail_usage("Failed: You have to enter name of managed system")
-
-        if (0 == ["list", "monitor"].count(options["-o"].lower())) and (0 == options.has_key("-n")):
-                fail_usage("Failed: You have to enter name of the partition")
-
-	if 1 == options.has_key("-H") and (options["-H"] != "3" and options["-H"] != "4"):
-		fail_usage("Failed: You have to enter valid version number: 3 or 4")
-
-	##
-	## Operate the fencing device
-	####
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status, get_lpar_list)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.send("quit\r\n")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass	                                         
-
-	sys.exit(result)
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/manual/Makefile b/fence/agents/manual/Makefile
deleted file mode 100644
index ff4bde2..0000000
--- a/fence/agents/manual/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-TARGET= fence_ack_manual
-
-MANTARGET=$(TARGET).8
-
-SBINDIRT=$(TARGET)
-
-all: ${TARGET}
-
-include ../../../make/defines.mk
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-
-# Using manual override instead of the binary version.
-# (this version does not require any configuration params
-# in cluster.conf, but fencing must fail first)
-${TARGET}: 
-	cp $(S)/$@.sh $@
-
-clean: generalclean
diff --git a/fence/agents/manual/fence_ack_manual.8 b/fence/agents/manual/fence_ack_manual.8
deleted file mode 100644
index 6b4cd14..0000000
--- a/fence/agents/manual/fence_ack_manual.8
+++ /dev/null
@@ -1,39 +0,0 @@
-.TH FENCE_ACK_MANUAL 8 2009-12-21 cluster cluster
-
-.SH NAME
-fence_ack_manual \- a program to override fenced fencing operations
-
-.SH SYNOPSIS
-.B fence_ack_manual
-[OPTIONS]
-.I nodename
-
-.SH DESCRIPTION
-When
-.BR fenced (8)
-fails to fence a node, it retries indefinately.
-.BR fence_ack_manual (8)
-tells fenced to stop retrying and consider the node fenced.
-
-.P
-It is important that this only be done after the node has been manually
-turned off or prevented from writing to shared storage.
-Without this manual action and verification, the storage that fencing
-protects may become corrupted.
-
-.P
-When fenced fences a node that has no fence devices defined in the cluster
-configuration, the fencing operation fails.  This failure will be repeated
-indefinately until fence_ack_manual is run by an operator to indicate
-the node is in a safe state to proceed.
-(Defining no fencing devices for node is the equivalent of using the
-fence_manual agent in previous versions.)
-
-.SH OPTIONS
-.TP
-.B \-h
-Print a help message describing available options, then exit.
-
-.SH SEE ALSO
-.BR fenced (8)
-
diff --git a/fence/agents/manual/fence_ack_manual.sh b/fence/agents/manual/fence_ack_manual.sh
deleted file mode 100644
index 83102aa..0000000
--- a/fence/agents/manual/fence_ack_manual.sh
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/bash
-#
-# Manual override after fencing has failed.
-#
-
-if [ "$1" = "-n" ]; then
-	shift
-fi
-
-if [ -z "$1" ] || [ "$1" = "-h" ]; then
-	echo "usage:"
-        echo " 	$0 <nodename>"
-        echo " 	$0 -n <nodename>"
-	echo 
-	echo "The -n flag exists to preserve compatibility with previous "
-	echo "releases of $0, and is no longer required."
-	exit 1
-fi
-
-declare answer
-
-echo "About to override fencing for $1."
-echo "Improper use of this command can cause severe file system damage."
-echo
-read -p "Continue [NO/absolutely]? " answer
-
-if [ "$answer" != "absolutely" ]; then
-	echo "Aborted."
-	exit 1
-fi
-
-while ! [ -e /var/run/cluster/fenced_override ]; do
-	sleep 1
-done
-
-echo $1>/var/run/cluster/fenced_override
-echo Done
diff --git a/fence/agents/mcdata/Makefile b/fence/agents/mcdata/Makefile
deleted file mode 100644
index 437ae80..0000000
--- a/fence/agents/mcdata/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_mcdata
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/mcdata/fence_mcdata.8 b/fence/agents/mcdata/fence_mcdata.8
deleted file mode 100644
index c52ffd6..0000000
--- a/fence/agents/mcdata/fence_mcdata.8
+++ /dev/null
@@ -1,84 +0,0 @@
-.TH fence_mcdata 8
-
-.SH NAME
-fence_mcdata - I/O Fencing agent for McData FC switches
-
-.SH SYNOPSIS
-.B
-fence_mcdata
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_mcdata is an I/O Fencing agent which can be used with McData FC 
-switches.  It logs into a McData switch via telnet and disables a specified 
-port.  Disabling the port which a machine is connected to effectively fences 
-that machine.  Lengthy telnet connections to the switch should be avoided 
-while a GFS cluster is running because the connection will block any necessary 
-fencing actions.
-
-fence_mcdata accepts options on the command line as well as from stdin.
-fenced sends parameters through stdin when it execs the agent.  fence_mcdata 
-can be run by itself with command line options which is useful for testing.
-
-After a fence operation has taken place the fenced machine can no longer connect
-to the McData FC switch.  When the fenced machine is ready to be brought back 
-into the GFS cluster (after reboot) the port on the McData FC switch needs to 
-be enabled. This can be done by running fence_mcdata and specifying the 
-enable action.
-
-Vendor URL: http://www.brocade.com
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fP
-IP address of the switch.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlogin\fP
-Username name for the switch.
-.TP
-\fB-n\fP \fIport\fP
-The port number to disable on the switch.
-.TP
-\fB-o\fP \fIaction\fP
-The action required.  disable (default) or enable.
-.TP
-\fB-p\fP \fIpassword\fP
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-q\fP
-Quiet mode: print only error messages.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_mcdata.
-.TP
-\fIipaddr = < hostname | ip >\fR
-IP address or hostname of the switch.
-.TP
-\fIlogin = < param >\fR
-Login name.
-.TP
-\fIoption = < param >\fR
-The action required.  disable (default) or enable.
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-.TP
-\fIport = < param >\fR
-The port number to disable on the switch.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/mcdata/fence_mcdata.pl b/fence/agents/mcdata/fence_mcdata.pl
deleted file mode 100644
index 7a01d1d..0000000
--- a/fence/agents/mcdata/fence_mcdata.pl
+++ /dev/null
@@ -1,293 +0,0 @@
-#!/usr/bin/perl
-
-# This works on the following firmware versions:
-#   01.03.00
-#   02.00.00
-#   04.01.00
-#   04.01.02
-
-use Getopt::Std;
-use Net::Telnet ();
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-$opt_o = 'disable';        # Default fence action
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-sub usage
-{
-    print "Usage:\n";
-    print "\n";
-    print "$pname [options]\n";
-    print "\n";
-    print "Options:\n";
-    print "  -a <ip>          IP address or hostname of switch\n";
-    print "  -h               usage\n";
-    print "  -l <name>        Login name\n";
-    print "  -n <num>         Port number to disable\n";
-    print "  -o <string>      Action:  disable (default) or enable\n";
-    print "  -p <string>      Password for login\n";
-    print "  -S <path>        Script to run to retrieve login password\n";
-    print "  -q               quiet mode\n";
-    print "  -V               version\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg) = @_;
-  print $msg."\n" unless defined $opt_q;
-  $t->close if defined $t;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg)=@_;
-  print STDERR $msg."\n" if $msg;
-  print STDERR "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-sub get_options_stdin
-{
-    my $opt;
-    my $line = 0;
-    while( defined($in = <>) )
-    {
-        $_ = $in;
-        chomp;
-
-	# strip leading and trailing whitespace
-        s/^\s*//;
-        s/\s*$//;
-
-	# skip comments
-        next if /^#/;
-
-        $line+=1;
-        $opt=$_;
-        next unless $opt;
-
-        ($name,$val)=split /\s*=\s*/, $opt;
-
-        if ( $name eq "" )
-        {  
-           print STDERR "parse error: illegal name in option $line\n";
-           exit 2;
-	}
-	
-        # DO NOTHING -- this field is used by fenced
-	elsif ($name eq "agent" ) { } 
-
-        elsif ($name eq "ipaddr" ) 
-	{
-            $opt_a = $val;
-        } 
-	elsif ($name eq "login" ) 
-	{
-            $opt_l = $val;
-        } 
-        elsif ($name eq "option" )
-        {
-            $opt_o = $val;
-        }
-	elsif ($name eq "passwd" ) 
-	{
-            $opt_p = $val;
-        }
-	elsif ($name eq "passwd_script" )
-	{
-		$opt_S = $val;
-	}
-	elsif ($name eq "port" ) 
-	{
-            $opt_n = $val;
-        } 
-    }
-}
-
-sub telnet_error
-{ 
-  fail "failed: telnet returned: ".$t->errmsg;
-}
-
-######################################################################33
-# MAIN
-
-if (@ARGV > 0) {
-   getopts("a:hl:n:o:p:S:qV") || fail_usage ;
-
-   usage if defined $opt_h;
-   version if defined $opt_V;
-
-   fail_usage "Unknown parameter." if (@ARGV > 0);
-
-   fail_usage "No '-a' flag specified." unless defined $opt_a;
-   fail_usage "No '-n' flag specified." unless defined $opt_n;
-   fail_usage "No '-l' flag specified." unless defined $opt_l;
-
-   if (defined $opt_S) {
-     $pwd_script_out = `$opt_S`;
-     chomp($pwd_script_out);
-     if ($pwd_script_out) {
-        $opt_p = $pwd_script_out;
-     }
-   }
-
-   fail_usage "No '-p' or '-S' flag specified." unless defined $opt_p;
-   fail_usage "Unrecognised action '$opt_o' for '-o' flag"
-      unless $opt_o =~ /^(disable|enable)$/i;
-
-} else {
-   get_options_stdin();
-
-   fail "failed: no IP address" unless defined $opt_a;
-   fail "failed: no plug number" unless defined $opt_n;
-   fail "failed: no login name" unless defined $opt_l;
-
-   if (defined $opt_S) {
-     $pwd_script_out = `$opt_S`;
-     chomp($pwd_script_out);
-     if ($pwd_script_out) {
-        $opt_p = $pwd_script_out;
-     }
-   }
-
-   fail "failed: no password" unless defined $opt_p;
-   fail "failed: unrecognised action: $opt_o"
-      unless $opt_o =~ /^(disable|enable)$/i;
-}
-
-
-my $block=1;
-$_=$opt_o;
-if(/disable/)
-{
-    $block=1
-}
-elsif(/enable/)
-{
-    $block=0
-}
-else
-{
-    fail "failed: unrecognised action: $opt_o"
-}
-
-#
-# Set up and log in
-#
-
-$t = new Net::Telnet;
-
-$t->errmode(\&telnet_error);
-$t->open($opt_a);
-
-$t->waitfor('/sername:/');
-
-# Send Username
-$t->print($opt_l);
-
-# Send Password
-$t->waitfor('/assword:/');
-$t->print($opt_p);
-$t->waitfor('/\>/');
-
-#> # Set switch to comma delimited output
-#> $t->print("commadelim 1");
-#> $t->waitfor('/\>/');
-
-# Block/Unblock the desired port
-$t->print("config port blocked $opt_n $block");
-($text, $match) = $t->waitfor('/\>/');
-
-# Verfiy that the port has been blocked/unblocked
-$t->print("config port show $opt_n");
-($text, $match) = $t->waitfor('/\>/');
-
-# scan the port configurations to make sure that
-# the port is in the state we told it to be in
-#
-# Output from the prvious command will look like:
-# 
-# Root> config port show 0
-#
-# Port Information
-# Port Number:          0
-# Name:                 name
-# Blocked:              true
-# Extended Distance:    false
-# Type:                 gPort
-# 
-my $fail=1;
-
- at lines = split /\n/,$text;
-foreach my $line (@lines)
-{
-   my $field = "";
-   my $b_state = "";
-
-   if ( $line =~ /^(.*):\s*(\S*)/ )
-   {
-      $field = $1;
-      $b_state = $2;
-   }
-   next unless ( $field eq "Blocked" );
-   if ( ($block && $b_state eq "true") ||
-        (!$block && $b_state eq "false") ||
-        ($block && $b_state eq "Blocked") ||
-        (!$block && $b_state eq "Unblocked") )
-   {
-      $fail = 0;
-   }
-   last;
-}
-
-# log out of the switch
-$t->print("logout");
-$t->close();
-
-if($fail)
-{
-   print "failed: unexpected port state\n" unless $opt_q;
-}
-else
-{
-   print "success: port $opt_n ".($block?"disabled":"enabled")."\n" 
-      unless defined $opt_q;
-}
-
-exit $fail;
-
-
diff --git a/fence/agents/node_assassin/Makefile b/fence/agents/node_assassin/Makefile
deleted file mode 100644
index ce0a095..0000000
--- a/fence/agents/node_assassin/Makefile
+++ /dev/null
@@ -1,50 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET		= fence_na
-
-MANTARGET	= $(TARGET).8
-
-FENCEAGENTSLIB	= $(TARGET).lib
-
-NACONFFILE	= $(TARGET).conf
-
-PODFILE		= $(TARGET).pod
-
-EXTRACONFFILE	= $(NACONFFILE)
-
-SBINDIRT	= $(TARGET)
-
-all: $(TARGET) $(PODFILE) $(MANTARGET) $(FENCEAGENTSLIB) $(NACONFFILE)
-
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-$(NACONFFILE): $(S)/$(NACONFFILE).in
-	cat $^ | sed \
-		-e 's#@LOGDIR@#${logdir}#g' \
-		-e 's#@CONFDIR@#${CONFDIR}#g' \
-		-e 's#@CONFFILE@#${CONFFILE}#g' \
-	> $@
-
-$(PODFILE): $(S)/$(PODFILE).in
-	cat $^ | sed \
-		-e 's#@NACONFFILE@#${CONFDIR}/$(NACONFFILE)#g' \
-	> $@
-
-$(MANTARGET): $(PODFILE)
-	pod2man --section=8 $< $@
-
-$(FENCEAGENTSLIB): $(S)/$(FENCEAGENTSLIB).in
-	cat $^ | sed \
-		-e 's#@NACONFFILE@#${CONFDIR}/$(NACONFFILE)#g' \
-	> $@
-
-$(TARGET): $(S)/$(TARGET).pl
-	cat $^ | sed \
-		-e 's#@NACONFFILE@#${CONFDIR}/$(NACONFFILE)#g' \
-		-e 's#@FENCEAGENTSLIBDIR@#${fenceagentslibdir}#g' \
-	> $@
-
-clean: generalclean
-	rm -rf $(MANTARGET) $(FENCEAGENTSLIB) $(PODFILE) $(NACONFFILE)
diff --git a/fence/agents/node_assassin/fence_na.conf.in b/fence/agents/node_assassin/fence_na.conf.in
deleted file mode 100644
index 3ae6866..0000000
--- a/fence/agents/node_assassin/fence_na.conf.in
+++ /dev/null
@@ -1,84 +0,0 @@
-# This is the main configuration file for the Node Assassin fence device.
-# 
-# This can support one or more fence devices.
-#
-# Node Assassin - Fence Agent
-# Digimer; digimer at alteeve.com
-# Jun. 27, 2010
-# Version: 1.1.5
-
-
-###############################################################################
-# System:                                                                     #
-# - Here you setup general values for the fence agent and any/all nodes.      #
-###############################################################################
-
-# This must be set to the number of Node Assassin devices you are using. It
-# must be a positive integer. 
-#system::na_num		=	1
-system::na_num		=	1
-
-# Version of the fence_na fence agent.
-system::agent_version	=	1.1.5.1
-
-# This is the log file. If unset, no logging will occur. If using '@LOGDIR@',
-# be sure that this agent is able to create or edit the file. The default is to
-# write to '/tmp' to prevent accidental failure of the agent due to
-# misconfiguration.
-#system::log		=	@LOGDIR@/fence_na.log
-system::log		=	@LOGDIR@/fence_na.log
-
-# If set to '1', messages to STDOUT will be surpressed except in the event of
-# errors. This can be overridden at the command line with the '-q' switch.
-system::quiet		=	0
-
-# Set this to '1' to enable extra debug information. Ignored if 'system::quiet'
-# is set.
-system::debug		=	0
-
-# This is the authentication information... It is currently a simple plain text
-# compare, but this will change prior to first release.
-system::username	=	motoko
-system::password	=	secret
-
-
-###############################################################################
-# Devices:                                                                    #
-# - Here you setup each fence device. There must be a corresponding           #
-#   'node::X::var' for each node where 'X' is between 1 and 'system::na_num'. #
-###############################################################################
-
-### Define values for Node 1.
-
-# The nodes name. This must match exactly with the name set in the given node.
-na::1::na_name		=	Motoko
-
-# This is the IP address and port where I will connect to this node at.
-# NOTE: THIS MUST MATCH THE VALUE USED IN '@CONFDIR@/@CONFFILE@'! If you used a
-# resolvable name there, use the same name here. Vice versa for IP addresses.
-# If this doesn't match the 'ipaddr' argument sent by the 'fenced' daemon the
-# fence will not work properly!
-na::1::ipaddr		=	motoko.alteeve.com
-na::1::tcp_port		=	238
-
-# This is the number of nodes supported by this Node Assassin
-# (1 node = 2 ports; odd # = reset, even # = power)
-na::1::max_nodes	=	4
-
-# These values are set when the node assassin program switch is run.
-# NOT YET IMPLEMENTED.
-na::1::mac		=	02:00:00:FF:F0:AA
-na::1::netmask		=	255.255.255.0
-na::1::gateway		=	192.168.1.1
-
-# These are aliases for each Node Assassin port. They should match the name or
-# URI of the node connected to the given port. This is optional but will make
-# the fenced 'list' argument more accurate and sane. If a port is listed here,
-# then the 'list' action will return '<node_id>,<value>'. If a port is not
-# defined, 'list' will return '<node_id>,<node::X::name-node_id>'. If a port is
-# set to 'unused', it will be skipped when replying to a 'list'.
-na::1::alias::1		=	an_node01.alteeve.com
-na::1::alias::2		=	an_node02.alteeve.com
-na::1::alias::3		=	unused
-na::1::alias::4		=	unused
-
diff --git a/fence/agents/node_assassin/fence_na.lib.in b/fence/agents/node_assassin/fence_na.lib.in
deleted file mode 100644
index aa7300e..0000000
--- a/fence/agents/node_assassin/fence_na.lib.in
+++ /dev/null
@@ -1,919 +0,0 @@
-#!/usr/bin/perl
-#
-# This is the function library for the Node Assassin fence agent.
-# 
-# Node Assassin - Fence Agent
-# Digimer; digimer at alteeve.com
-# Jun. 27, 2010.
-# Version: 1.1.5
-#
-
-
-# This connects to a Node Assassin and puts the handle in
-# $conf->{'system'}{handle}.
-sub connect_to_na
-{
-	my ($conf, $log)=@_;
-	$conf->{na}{handle}=new Net::Telnet(
-		Timeout	=>	10,
-		Errmode	=>	'die',
-		Port	=>	$conf->{na}{tcp_port},
-		Prompt	=>	'/EOM$/',
-		Errmode	=>	'return'
-	) or do_exit($conf, $log, 1);
-	$conf->{na}{handle}->open($conf->{na}{ipaddr});
-	if ($conf->{na}{handle}->errmsg)
-	{
-		record($conf, $log, "Connection to Node Assassin: [$conf->{na}{ipaddr}] failed.\nError was: [".$conf->{na}{handle}->errmsg."]\n", 1);
-		$conf->{na}{handle}="";
-	};
-	record($conf, $log, "na::handle: [$conf->{na}{handle}]\n") if $conf->{'system'}{debug};
-	
-	return ($conf->{na}{handle});
-}
-
-# This handles the actual execution of an action plan.
-sub do_actions
-{
-	my ($conf, $log)=@_;
-	
-	# In the next step, when a 'check' is seen, the node's power feed is
-	# checked and an exit status is stored here. Exits 0, 1 and 2 have
-	# special meaning, so I default to 9 as it has no meaning to the
-	# FenceAgentAPI.
-	my $exit_code=9;
-	
-	# Process the orders.
-	print "Processing: [$conf->{'system'}{call_order}]\n";
-	foreach my $order (split/,/, $conf->{'system'}{call_order})
-	{
-		record($conf, $log, "Calling: [$order]\n") if $conf->{'system'}{debug};
-		
-		# Handle a 'release_all' call.
-		if ($order eq "release_all")
-		{
-			set_all_state($conf, $log, 0);
-			next;
-		}
-		
-		# Handle a 'fence_all' call.
-		if ($order eq "fence_all")
-		{
-			set_all_state($conf, $log, 1);
-			next;
-		}
-		
-		# handle a sleep request. This defaults to one second when no
-		# integer was included.
-		if ($order=~/^sleep/)
-		{
-			my $time=$order=~/sleep (\d+)/ ? $1 : 1;
-			record ($conf, $log, "Sleeping: $time, ");
-			if ($time == 1)
-			{
-				sleep 1;
-				record ($conf, $log, "Done.\n");
-			}
-			else
-			{
-				while ($time)
-				{
-					$time--;
-					sleep 1;
-					record ($conf, $log, "$time, ") if $time > 1;
-					record ($conf, $log, "$time. Done.\n") if $time == 1;
-				}
-			}
-			next;
-		}
-		
-		# Handle a status check via Node Assassin.
-		record($conf, $log, "order: [$order]\n") if $conf->{'system'}{debug};
-		if ($order=~/(\d\d):(\D+)/)
-		{
-			my $node=$1;
-			my $check=$2;
-			
-			# Verify the state of the port.
-			record($conf, $log, "Status check on node: [$node] -> [$check]\n") if $conf->{'system'}{debug};
-			
-			# Get the state.
-			my $states=get_states($conf, $log);
-			if ($states == 1)
-			{
-				# I had a connection problem. Exit with error
-				# code '1' as per:
-				# http://sources.redhat.com/cluster/wiki/FenceAgentAPI
-				do_exit($conf, $log, 1);
-			}
-			
-			# Make the states a bit easier to type.
-			my $power_state=$states->{$node}{power_state};
-			my $reset_state=$states->{$node}{reset_state};
-			my $feed_state=$states->{$node}{feed_state};
-			
-			# Return the status of the requested node.
-			record($conf, $log, "Node Assassin: [#$conf->{'system'}{na_id}/$conf->{na}{na_name}], Node: [$node] Power/Reset/Feed states: [$power_state/$reset_state/$feed_state]\n") if $conf->{'system'}{debug};
-			if ($check eq "check")
-			{
-				# Return '2' if the node is off and '0' if it
-				# is on.
-				$exit_code=$feed_state ? 0 : 2;
-			}
-			elsif ($check eq "off")
-			{
-				# 'off' was called, make sure the node is now
-				# off. This may be called by 'reboot' in which
-				# case 'exit_code' will simply be over-written
-				# when the final 'reboot' state check is called.
-				$exit_code=$feed_state ? 1 : 0;
-			}
-			elsif ($check eq "on")
-			{
-				# 'on' was called, make sure the node is now
-				# off.
-				$exit_code=$feed_state ? 0 : 1;
-			}
-			elsif ($check eq "reboot")
-			{
-				# Make sure that 'exit_code' was set to '0' by
-				# the earlier call. We checked again to make
-				# sure the node came back up, and will log an
-				# error if it didn't, but we return '0' just
-				# the same, as per the API.
-				if (not $exit_code)
-				{
-					# The power off portion worked. Check if the
-					# node booted properly and record an error if
-					# not.
-					if (not $feed_state)
-					{
-						record($conf, $log, "\nWARNING: Node: [$node] failed to boot after a successful power off during a\n", 1);
-						record($conf, $log, "WARNING: reboot action. This is a non-critical error as the node was fenced\n", 1);
-						record($conf, $log, "WARNING: successfully but may indicate a hardware failure with the node or\n", 1);
-						record($conf, $log, "WARNING: with Node Assassin itself.\n\n", 1);
-					}
-				}
-				else
-				{
-					# The power off portion failed, exit with '1'.
-					$exit_code=1;
-				}
-				$exit_code=$feed_state ? 0 : 1;
-			}
-			next;
-		}
-		
-		# Handle a fence call.
-		my @set_state=$conf->{na}{handle}->cmd("$order");
-		foreach my $line (@set_state)
-		{
-			chomp $line;
-			next if not $line;
-			record($conf, $log, "$line\n");
-		}
-		record($conf, $log, "Call complete.\n") if $conf->{'system'}{debug};
-	}
-	
-	return ($exit_code);
-}
-
-# This cleanly exits the agent.
-sub do_exit
-{
-	($conf, $log, $exit_status)=@_;
-	$exit_status=9 if not defined $exit_status;
-	
-	# Close the Node Assassin and log file handle, if they exist.
-	$conf->{na}{handle}->close() if $conf->{na}{handle};
-	$log->close() if $log;
-	
-	exit ($exit_status);
-}
-
-# This gets the states for the active node and returns the states in a hash
-# reference.
-sub get_states
-{
-	my ($conf, $log)=@_;
-	
-	# Create the hash reference to store the states in.
-	my $states={};
-	
-	# Call '00:0' to get the states. If it fails, return 1 as per
-	# FenceAgentAPI requirements.
-	my @check_state=$conf->{na}{handle}->cmd("00:0") or return(1);
-	
-	# Loop through the output.
-	foreach my $line (@check_state)
-	{
-		# Chomp the newline off and then pull the port and state out.
-		chomp $line;
-		my ($this_node, $power_state, $reset_state, $feed_state)=($line=~/^- Node (\d+): P(\d+), R(\d+), F(\d+)$/);
-		# Skip if this isn't a status line.
-		next if not $this_node;
-		# Convert the state to a simple on/off.
-		# Store the state.
-		$states->{$this_node}{power_state}=$power_state;
-		$states->{$this_node}{reset_state}=$reset_state;
-		$states->{$this_node}{feed_state}=$feed_state;
-		record($conf, $log, "Node: [$this_node], Power State: [$states->{$this_node}{power_state}], Reset State: [$states->{$this_node}{reset_state}], Feed State: [$states->{$this_node}{feed_state}].\n") if $conf->{'system'}{debug};
-	}
-	
-	# Return the hash reference.
-	return ($states);
-}
-
-# This returns the 'help' message.
-sub help
-{
-	my ($conf, $log)=@_;
-	
-	# Point the user at the man page.
-	print "See 'man fence_na' for instructions on using the Node Assassin Fence Agent.\n";
-	
-	do_exit($conf, $log, 0);
-}
-
-# This error message is printed when there was a connection problem with a
-# given Node Assassin.
-sub no_connection_error
-{
-	my ($conf, $log, $na_id)=@_;
-	record ($conf, $log, "\nERROR: Unable to query Node Assassin: [$conf->{na}{$na_id}{na_name}]!\n", 1);
-	record ($conf, $log, "ERROR: Please check that it is connected, that the information in\n", 1);
-	record ($conf, $log, "ERROR: '@NACONFFILE@' is accurate and that the proper configuration\n", 1);
-	record ($conf, $log, "ERROR: has be uploaded to the device.\n\n", 1);
-	return (0);
-}
-
-# This handles the actual actions.
-sub process_action
-{
-	my ($conf, $log)=@_;
-	record($conf, $log, "In the 'process_action' function.\n") if $conf->{'system'}{debug};
-	
-	# Make this more readable.
-	my $na_id=$conf->{'system'}{na_id};
-	my $action=$conf->{na}{action};
-	my $node=$conf->{na}{port};
-	record($conf, $log, "na_id: [$na_id], action: [$action], port: [$node]\n") if $conf->{'system'}{debug};
-	
-	# The following actions require a port. Error if I don't have one.
-	if ($node eq "00")
-	{
-		# These are the incompatible calls.
-		if (($action eq "on") || ($action eq "off") || ($action eq "reboot") || ($action eq "status"))
-		{
-			record($conf, $log, "\nERROR! Action request: [$action] requires a port number!\n", 1) if $conf->{'system'}{debug};
-			record($conf, $log, "ERROR: I got: [$node] which does not seem to be valid.\n\n", 1);
-			do_exit($conf, $log, 9);
-		}
-	}
-	
-	# Make sure my call order is clear.
-	$conf->{'system'}{call_order}="";
-	if ($action eq "on")
-	{
-		# Release the fence, if fenced, and boot the node.
-		$states=get_states($conf, $log);
-		my $power_state=$states->{$node}{power_state};
-		my $reset_state=$states->{$node}{reset_state};
-		my $feed_state=$states->{$node}{feed_state};
-		if ($feed_state)
-		{
-			# Node is already running.
-			record($conf, $log, "Asked to turn on node: [$node], but it's already running.\n");
-			do_exit($conf, $log, 0);
-		}
-		elsif (($power_state) || ($reset_state))
-		{
-			# Node was fenced, release it first.
-			$conf->{'system'}{call_order}="$node:0,sleep,";
-		}
-		$conf->{'system'}{call_order}.="$node:2,sleep,$node:on";
-	}
-	elsif ($action eq "off")
-	{
-		# Fence the node.
-		$conf->{'system'}{call_order}="$node:1,sleep,$node:off";
-	}
-	elsif ($action eq "reboot")
-	{
-		# I don't do this gracefully because the API says this should
-		# be an 'off' -> 'on' process, and 'off' is fence...
-		$conf->{'system'}{call_order}="$node:1,sleep,$node:0,sleep,$node:off,$node:2,sleep,$node:on";
-	}
-	elsif ($action eq "status")
-	{
-		# This checks the node's power feed.
-		$conf->{'system'}{call_order}="$node:check";
-	}
-	### ALL ACTIONS BELOW HERE ARE OUTSIDE OF THE FenceAgentAPI!
-	elsif ($action eq "release")
-	{
-		# Release the given node without booting it.
-		$conf->{'system'}{call_order}="$node:0";
-	}
-	elsif ($action eq "release_all")
-	{
-		# Release all ports.
-		$conf->{'system'}{call_order}="release_all";
-	}
-	elsif ($action eq "fence_all")
-	{
-		# Fence all ports.
-		$conf->{'system'}{call_order}="fence_all";
-	}
-	elsif ($action eq "boot")
-	{
-		# Boot the specific node if it is off.
-		$states=get_states($conf, $log);
-		
-		# Decide how, or if, to proceed based on the current state of
-		# each node.
-		$node=sprintf("%02d", $node);
-		my $power_state=$states->{$node}{power_state};
-		my $reset_state=$states->{$node}{reset_state};
-		my $feed_state=$states->{$node}{feed_state};
-		if (($power_state) || ($reset_state))
-		{
-			# Node was fenced, release first.
-			$conf->{'system'}{call_order}.="$node:0,sleep,";
-		}
-		if (not $feed_state)
-		{
-			# Boot the node.
-			$conf->{'system'}{call_order}.="$node:2,sleep,";
-		}
-		else
-		{
-			record($conf, $log, "WARNING: Node: [$node] seems to be already on, taking no action.\n", 1);
-		}
-		$conf->{'system'}{call_order}=~s/,$//;
-	}
-	elsif ($action eq "boot_all")
-	{
-		# Boot all nodes that are off.
-		$states=get_states($conf, $log);
-		
-		# Decide how, or if, to proceed based on the current state of
-		# each node.
-		foreach my $node (1..$conf->{na}{max_nodes})
-		{
-			$node=sprintf("%02d", $node);
-			my $power_state=$states->{$node}{power_state};
-			my $reset_state=$states->{$node}{reset_state};
-			my $feed_state=$states->{$node}{feed_state};
-			if (($power_state) || ($reset_state))
-			{
-				# Node was fenced, release first.
-				$conf->{'system'}{call_order}.="$node:0,sleep,";
-			}
-			if (not $feed_state)
-			{
-				# Boot the node.
-				$conf->{'system'}{call_order}.="$node:2,sleep,";
-			}
-		}
-		$conf->{'system'}{call_order}=~s/,$//;
-	}
-	elsif ($action eq "shutdown")
-	{
-		# Shutdown a specific node that is on cleanly via ACPI.
-		$states=get_states($conf, $log);
-		$node=sprintf("%02d", $node);
-		my $feed_state=$states->{$node}{feed_state};
-		if ($feed_state)
-		{
-			# shutdown the node.
-			$conf->{'system'}{call_order}.="$node:2";
-		}
-		else
-		{
-			record($conf, $log, "WARNING: Node: [$node] seems to be already off, taking no action. Is the cable connected?\n", 1);
-		}
-		$conf->{'system'}{call_order}=~s/,$//;
-	}
-	elsif ($action eq "shutdown_all")
-	{
-		# Shutdown all nodes that are on cleanly via ACPI.
-		$states=get_states($conf, $log);
-		
-		# Decide how, or if, to proceed based on the current state of
-		# each node.
-		foreach my $node (1..$conf->{na}{max_nodes})
-		{
-			$node=sprintf("%02d", $node);
-			my $power_state=$states->{$node}{power_state};
-			my $reset_state=$states->{$node}{reset_state};
-			my $feed_state=$states->{$node}{feed_state};
-			if ($feed_state)
-			{
-				# Shutdown the node.
-				$conf->{'system'}{call_order}.="$node:2,sleep,";
-			}
-		}
-		$conf->{'system'}{call_order}=~s/,$//;
-	}
-	elsif ($action eq "forcedown_all")
-	{
-		# Shutdown all nodes that are on by holding the power button
-		# until they go down.
-		$states=get_states($conf, $log);
-		
-		# Decide how, or if, to proceed based on the current state of
-		# each node.
-		foreach my $node (1..$conf->{na}{max_nodes})
-		{
-			$node=sprintf("%02d", $node);
-			my $power_state=$states->{$node}{power_state};
-			my $reset_state=$states->{$node}{reset_state};
-			my $feed_state=$states->{$node}{feed_state};
-			if ($feed_state)
-			{
-				# Boot the node.
-				$conf->{'system'}{call_order}.="$node:3,sleep,";
-			}
-		}
-		$conf->{'system'}{call_order}=~s/,$//;
-	}
-	else
-	{
-		record($conf, $log, "\nERROR: Unknown action request: [$action]!\n\n", 1);
-		do_exit($conf, $log, 9);
-	}
-}
-
-# Read in the config file.
-sub read_conf
-{
-	my ($conf)=@_;
-	$conf={} if not $conf;
-	
-	# I can't call the 'record' method here because I've not read in the
-	# log file and thus don't know where to write the log to yet. Comment
-	# out or delete 'print' statements before release.
-	my $read=IO::Handle->new();
-	my $shell_call="$conf->{'system'}{conf_file}";
-	record($conf, $log, "Shell call: [$shell_call]\n") if $conf->{'system'}{debug};
-	open ($read, "<$shell_call") or die "Failed to read: [$shell_call], error was: $!\n";
-	while (<$read>)
-	{
-		chomp;
-		my $line=$_;
-		next if not $line;
-		next if $line !~ /=/;
-		$line=~s/^\s+//;
-		$line=~s/\s+$//;
-		next if $line =~ /^#/;
-		next if not $line;
-		my ($var, $val)=(split/=/, $line, 2);
-		$var=~s/^\s+//;
-		$var=~s/\s+$//;
-		$val=~s/^\s+//;
-		$val=~s/\s+$//;
-		next if (not $var);
-		record($conf, $log, "Storing: [$var] = [$val]\n") if $conf->{'system'}{debug};
-		_make_hash_reference($conf, $var, $val);
-	}
-	$read->close();
-	
-	return (0);
-}
-
-# Read in command line arguments
-sub read_cla
-{
-	my ($conf, $log, $bad)=@_;
-	
-	# Loop through the passed arguments, if any.
-	record($conf, $log, "Got args:\n") if $conf->{'system'}{debug};
-	my $set_next="";
-	foreach my $arg (@ARGV)
-	{
-		record($conf, $log, "[$arg]\n") if $conf->{'system'}{debug};
-		$conf->{'system'}{got_cla}=1;
-		
-		# If 'set_next' has a value, push this argument into the 'conf'
-		# hash.
-		if ($set_next)
-		{
-			# It's set, use it's contents as the hash key.
-			$conf->{na}{$set_next}=$arg;
-			record($conf, $log, "Setting: 'na::$set_next': [$conf->{na}{$set_next}]\n") if $conf->{'system'}{debug};
-			
-			# Clear it now for the next go-round.
-			$set_next="";
-			next;
-		}
-		if ($arg=~/-h/)
-		{
-			# Print the help message and then exit.
-			help($conf, $log);
-		}
-		elsif ($arg=~/-v/)
-		{
-			# Print the version information and then exit.
-			$conf->{'system'}{version}=1;
-			record($conf,$log,"Setting version\n") if $conf->{'system'}{debug};
-		}
-		elsif ($arg=~/-q/)
-		{
-			# Suppress all non-critical messages from STDOUT.
-			$conf->{'system'}{quiet}=1;
-		}
-		elsif ($arg=~/-d/)
-		{
-			# Enable debug mode.
-			$conf->{'system'}{debug}=1;
-		}
-		elsif ($arg=~/^-/)
-		{
-			$arg=~s/^-//;
-			
-			### These are the switches set by Red Hat.
-			if ($arg eq "a")
-			{
-				# This is the IP address or hostname of the
-				# Node Assassin to call.
-				$set_next="ipaddr";
-				record ($conf, $log, "Next argument will be stored in: [$set_next]\n") if $conf->{'system'}{debug};
-			}
-			elsif ($arg eq "l")
-			{
-				# This is the login name.
-				$set_next="login";
-				record ($conf, $log, "Next argument will be stored in: [$set_next]\n") if $conf->{'system'}{debug};
-			}
-			elsif ($arg eq "p")
-			{
-				# This is the password. If it starts with '/'
-				# it is interpreted to be a file containing the
-				# password which will be read in and it's
-				# contents will replace# this value.
-				$set_next="passwd";
-				record ($conf, $log, "Next argument will be stored in: [$set_next]\n") if $conf->{'system'}{debug};
-			}
-			elsif ($arg eq "n")
-			{
-				# This is the node to work on.
-				$set_next="port";
-				record ($conf, $log, "Next argument will be stored in: [$set_next]\n") if $conf->{'system'}{debug};
-			}
-			elsif ($arg eq "o")
-			{
-				# This is the action to take.
-				$set_next="action";
-				record ($conf, $log, "Next argument will be stored in: [$set_next]\n") if $conf->{'system'}{debug};
-			}
-			elsif ($arg eq "S")
-			{
-				# This is the script to run to retrieve the
-				# password when it is not stored in
-				# 'cluster.conf'. This script should echo/print
-				# the password to STDOUT.
-				$set_next="passwd_script";
-				record ($conf, $log, "Next argument will be stored in: [$set_next]\n") if $conf->{'system'}{debug};
-			}
-		}
-		else
-		{
-			### MADI: I might want to pick up arguments via multiple lines.
-			# Bad argument.
-			record($conf, $log, "\nERROR: Argument: [$arg] is not valid!\n");
-			record($conf, $log, "ERROR: Please run: [man fence_na] to see a list of valid arguments.\n\n");
-			$bad=1;
-		}
-	}
-}
-
-# Read arguments from STDIN. This is adapted from the 'fence_brocade' agent.
-sub read_stdin
-{
-	my ($conf, $log, $bad)=@_;
-	
-	return (0) if $conf->{'system'}{got_cla};
-	
-	my $option;
-	my $line_count=0;
-	while(defined (my $option=<>))
-	{
-		# Get rid of newlines.
-		chomp $option;
-		
-		# Record the line for now, but comment this out before release.
-		record ($conf, $log, "Processing option line: [$option]\n") if $conf->{'system'}{debug};
-		
-		# strip leading and trailing whitespace
-		$option=~s/^\s*//;
-		$option=~s/\s*$//;
-		
-		# skip comments
-		next if ($option=~ /^#/);
-		
-		# Increment my option line count.
-		$line_count++;
-		
-		# Go to the next line if the option line is empty.
-		next if not $option;
-		
-		# Split the option up into the name and the value.
-		($name,$value)=split /\s*=\s*/, $option;
-		
-		# Record the line for now, but comment this out before release.
-		record ($conf, $log, "Name: [$name], value: [$value].\n") if $conf->{'system'}{debug};
-		
-		# Set my variables depending on the veriable name.
-		if ($name eq "agent")
-		{
-			# This is only used by 'fenced', but I record it for
-			# potential debugging.
-			$conf->{na}{agent}=$value;
-		}
-		elsif ($name eq "fm")
-		{
-			# This is a deprecated argument that should no longer
-			# be used. Now 'port' should be used.
-			if (not $conf->{na}{port})
-			{
-				# Port isn't set yet, use this value which may
-				# be replaced if 'port' is set later.
-				(undef, $value) = split /\s+/,$value;
-				$conf->{na}{port}=$value;
-				record($conf, $log, "Warning! The argument 'fm' is deprecated, use 'port' instead.\n", 1);
-				record($conf, $log, "Warning! Value: [$value] set for 'port'\n", 1);
-			}
-			else
-			{
-				# Port was already set, so simply ignore this.
-				record($conf, $log, "Warning! The argument 'fm' is deprecated, use 'port' instead.\n", 1);
-				record($conf, $log, "Warning! Value: [$value] ignored.\n", 1);
-			}
-		}
-		elsif ($name eq "ipaddr") 
-		{
-			# Record the IP Address or name of the Node Assassin to
-			# use.
-			$conf->{na}{ipaddr}=$value;
-		} 
-		elsif ($name eq "login")
-		{
-			# Record the login name that was passed.
-			$conf->{na}{login}=$value;
-		} 
-		elsif ($name eq "name")
-		{
-			# Depricated argument used formerly for login name.
-			if (not $conf->{na}{login})
-			{
-				# Login isn't set yet, use this value which may
-				# be replaced if 'login' is seen later.
-				$conf->{na}{login}=$value;
-				record($conf, $log, "Warning! The argument 'name' is deprecated, use 'login' instead.\n", 1);
-				record($conf, $log, "Warning! Value: [$value] set for 'login'.\n", 1);
-			}
-			else
-			{
-				# I've already seen the 'login' value so I will
-				# ignore this value.
-				record($conf, $log, "Warning! The argument 'name' is deprecated, use 'login' instead.\n", 1);
-				record($conf, $log, "Warning! Value: [$value] ignored.\n", 1);
-			}
-		}
-		elsif (($name eq "action") or ($name eq "option"))
-		{
-			# 'option' is deprecated.
-			record($conf, $log, "Please use 'action', not 'option', as the later is deprecated.\n", 1) if $name eq "option";
-			$conf->{na}{action}=$value;
-		}
-		elsif ($name eq "passwd")
-		{
-			# This is the login password.
-			$conf->{na}{passwd}=$value;
-		} 
-		elsif ($name eq "passwd_script")
-		{
-			# This is the path to the script that will return the
-			# password to the agent. At this time, this is not
-			# implemented.
-			$conf->{na}{passwd_script}=$value;
-		}
-		elsif ($name eq "port")
-		{
-			# This sets the port number to act on.
-			$conf->{na}{port}=$value;
-		}
-		elsif ($name eq "nodename")
-		{
-			# This is passed by 'fenced' via 'cluster.conf' as of
-			# cluster version 3, but it's not yet documented.
-			$conf->{'system'}{nodename}=$value;
-		}
-		elsif ($name eq "quiet")
-		{
-			# This is passed by 'fenced' via 'cluster.conf' as a
-			# custom argument to supress output to STDOUT.
-			$conf->{'system'}{quiet}=1;
-		}
-		else
-		{
-			record($conf, $log, "\nERROR: Illegal name in option: [$option] at line: [$line_count]\n\n", 1);
-			# 'rohara' from #linux-cluster suggested it's better to
-			# simply ignore unknown input, as that is the behaviour
-			# the fenced authors expect.
-			#$bad=1;
-		}
-	}
-	return ($bad);
-}
-
-# This function simply prints messages to both the log and to stdout.
-sub record
-{
-	my ($conf, $log, $msg, $critical)=@_;
-	$critical=0 if not $critical;
-	
-	# The log file gets everything.
-	print $log $msg;
-	print $msg if not $conf->{'system'}{quiet};
-	
-	# Critical messages have to print, so this ensure that it gets out
-	# when 'quiet' is in use.
-	print $msg if (($critical) && ($conf->{'system'}{quiet}));
-	
-	return(0);
-}
-
-# This sets all ports of a given Node Assassin to the requested state.
-sub set_all_state
-{
-	my ($conf, $log, $state)=@_;
-	$state=0 if not defined $state;
-
-	my $max_port=$conf->{na}{max_nodes};
-	foreach my $node (1..$max_port)
-	{
-		$node=sprintf("%02d", $node).":$state";
-		record ($conf, $log, "Calling: [$node]\n") if $conf->{'system'}{debug};
-		my @set_state=$conf->{na}{handle}->cmd("$node");
-		foreach my $line (@set_state)
-		{
-			chomp $line;
-			next if not $line;
-			record($conf, $log, "$line\n");
-		}
-	}
-	
-	return (9);
-}
-
-# When asked to 'monitor' or 'list', show a CSV of all nodes and their aliases,
-# when found in the config file.
-sub show_list
-{
-	my ($conf, $log)=@_;
-	record($conf, $log, "In 'show_list' function.\n") if $conf->{'system'}{debug};
-	
-	# Get an up to date list of the ports.
-	my $na_id=$conf->{'system'}{na_id};
-	record($conf, $log, "na_id: [$na_id], max_node: [$conf->{na}{max_nodes}]\n") if $conf->{'system'}{debug};
-	
-	for (1..$conf->{na}{max_nodes})
-	{
-		my $node=$_;
-		my $alias=$conf->{na}{$na_id}{alias}{$node} ? $conf->{na}{$na_id}{alias}{$node} : "--";
-		record ($conf, $log, "$node,$alias\n", 1);
-	}
-	
-	do_exit($conf, $log, 0);
-}
-
-# This prints the version information of this fence agent and of any configured
-# fence devices.
-sub version
-{
-	my ($conf, $log)=@_;
-	
-	# Print the Fence Agent version first.
-	record ($conf, $log, "Fence Agent: ..... Node Assassin ver. $conf->{'system'}{agent_version}\n", 1);
-	record ($conf, $log, "Node Assassins: .. $conf->{'system'}{na_num}\n", 1);
-	for my $na_id (1..$conf->{'system'}{na_num})
-	{
-		$conf->{'system'}{na_id}=$na_id;
-		$conf->{na}{ipaddr}=     $conf->{na}{$na_id}{ipaddr};
-		$conf->{na}{tcp_port}=   $conf->{na}{$na_id}{tcp_port};
-		$conf->{na}{na_name}=    $conf->{na}{$na_id}{na_name};
-		my $build_date="";
-		my $serial_number="";
-		my $firmware_ver="";
-		connect_to_na($conf, $log);
-		if ($conf->{na}{handle})
-		{
-			# Get the NAOS version and serial numbers.
-			my @details=$conf->{na}{handle}->cmd("00:1");
-			foreach my $line (sort {$a cmp $b} @details)
-			{
-				chomp $line;
-				($build_date)=($line=~/\s(\S+)$/) if ($line =~ /Build Date/i );
-				($serial_number)=($line=~/\s(\S+)$/) if ($line =~ /Serial Number/i );
-				($firmware_ver)=($line=~/\s(\S+)$/) if ($line =~ /NAOS Version/i );
-				record($conf, $log, "line: [$line]\n") if $conf->{'system'}{debug};
-			}
-		}
-		else
-		{
-			$build_date="??";
-			$serial_number="??";
-			$firmware_ver="??";
-		}
-		record ($conf, $log, " - Node Assassin:  #$na_id\n", 1);
-		record ($conf, $log, "   - Name: ....... $conf->{na}{$na_id}{na_name}\n", 1);
-		record ($conf, $log, "   - IP Address: . $conf->{na}{$na_id}{ipaddr}\n", 1);
-		record ($conf, $log, "   - TCP Port: ... $conf->{na}{$na_id}{tcp_port}\n", 1);
-		record ($conf, $log, "   - MAC Address:  $conf->{na}{$na_id}{mac}\n", 1);
-		record ($conf, $log, "   - Netmask: .... $conf->{na}{$na_id}{netmask}\n", 1);
-		record ($conf, $log, "   - Gateway: .... $conf->{na}{$na_id}{gateway}\n", 1);
-		record ($conf, $log, "   - Serial #: ... $serial_number\n", 1);
-		record ($conf, $log, "   - Firmware: ... $firmware_ver\n", 1);
-		record ($conf, $log, "   - Build Date: . $build_date (yyyy-mm-dd)\n", 1);
-		record ($conf, $log, "   - Max Nodes: .. $conf->{na}{$na_id}{max_nodes}\n", 1);
-		
-		# Get the node states.
-		$states=get_states($conf, $log);
-		for (1..$conf->{na}{$na_id}{max_nodes})
-		{
-			my $node=sprintf("%02d", $_);
-			my $power_state=$states->{$node}{power_state};
-			my $reset_state=$states->{$node}{reset_state};
-			my $feed_state=$states->{$node}{feed_state};
-			record ($conf, $log, "     - Node $node: .. p[$power_state], r[$reset_state], f[$feed_state]\n", 1);
-		}
-		
-		# Close the handle for the next loop.
-		if ($conf->{na}{handle})
-		{
-			show_list($conf, $log, "version", 1);
-			$conf->{na}{tcp_port}->close();
-		}
-		else
-		{
-			no_connection_error($conf, $log, $na_id);
-		}
-	}
-	do_exit($conf, $log, 0);
-}
-
-
-###############################################################################
-# Private functions below here.                                               #
-###############################################################################
-
-### Contributed by Shaun Fryer and Viktor Pavlenko by way of TPM.
-# This is a helper to the above '_add_href' method. It is called each time a
-# new string is to be created as a new hash key in the passed hash reference.
-sub _add_hash_reference
-{
-	my $href1=shift;
-	my $href2=shift;
-	
-	for my $key (keys %$href2)
-	{
-		if (ref $href1->{$key} eq 'HASH')
-		{
-			_add_hash_reference($href1->{$key}, $href2->{$key});
-		}
-		else
-		{
-			$href1->{$key}=$href2->{$key};
-		}
-	}
-}
-
-### Contributed by Shaun Fryer and Viktor Pavlenko by way of TPM.
-# This takes a string with double-colon seperators and divides on those
-# double-colons to create a hash reference where each element is a hash key.
-sub _make_hash_reference
-{
-	my $href=shift;
-	my $key_string=shift;
-	my $value=shift;
-# 	print "variable: [$key_string], value: [$value]\n";
-	
-	my $chomp_root=0;
-	if ($chomp_root) { $key_string=~s/\w+:://; }
-	
-	my @keys = split /::/, $key_string;
-	my $last_key = pop @keys;
-	my $_href = {};
-	$_href->{$last_key}=$value;
-	while (my $key = pop @keys)
-	{
-		my $elem = {};
-		$elem->{$key} = $_href;
-		$_href = $elem;
-	}
-	_add_hash_reference($href, $_href);
-}
-
-1;
diff --git a/fence/agents/node_assassin/fence_na.pl b/fence/agents/node_assassin/fence_na.pl
deleted file mode 100644
index 0d272b3..0000000
--- a/fence/agents/node_assassin/fence_na.pl
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/usr/bin/perl
-#
-# Node Assassin - Fence Agent
-# Digimer; digimer at alteeve.com
-# Jun. 27, 2010
-# Version: 1.1.5
-#
-# Bugs;
-# - None known, many expected
-# 
-
-# Play safe!
-use strict;
-use warnings;
-
-# Load our library.
-require '@FENCEAGENTSLIBDIR@/fence_na.lib';
-
-# IO::Handle is used for logging and Net::Telnet is used for communicating with
-# the Node Assassin(s).
-use IO::Handle;
-use Net::Telnet;
-
-# These are the default values and will be over-written by the config file's
-# variables which in turn can, in some cases, be over-written by command line
-# arguments.
-# Please see '@NACONFFILE@' for details on each option.
-my $conf={
-	'system'	=>	{
-		max_valid_state	=>	3,
-		conf_file	=>	"@NACONFFILE@",
-		quiet		=>	"",
-		version		=>	0,
-		list		=>	"",
-		monitor		=>	"",
-		na_id		=>	0,
-		got_cla		=>	0,	# This is set if command line arguments are read.
-		debug		=>	0,
-	},
-	na		=>	{
-		ipaddr		=>	"",
-		tcp_port	=>	"238",
-		port		=>	"",
-		login		=>	"",
-		passwd		=>	"",
-		port		=>	"",
-		set_state	=>	"",
-		passwd_script	=>	"",
-		action		=>	"",
-		agent		=>	"",	# This is only used by 'fenced'
-		na_name		=>	"",	# This is used for the 'list' function.
-		handle		=>	"",
-		max_node	=>	0,
-		set_state	=>	[],	# This array will store the states to set based on the action passed for the proper ports.
-	}
-};
-
-# This method can't pass in the '$log' handle, obviously, as it does not yet
-# exist.
-read_conf($conf);
-
-# Log file for output.
-my $log=IO::Handle->new();
-print "Opening: [$conf->{'system'}{'log'}] for logging.\n"  if $conf->{'system'}{debug};
-open ($log, ">$conf->{'system'}{'log'}") || die "Failed to open: [$conf->{'system'}{'log'}] for writing; Error: $!\n";
-
-# Set STDOUT and $log to hot (unbuffered) output.
-if (1)
-{
-	select $log;
-	$|=1;
-	select STDOUT;
-	$|=1;
-}
-
-# If this gets set in the next two function, the agent will exit.
-my $bad=0;
-
-# Read in arguments from the command line.
-($bad)=read_cla($conf, $log, $bad);
-
-# Now read in arguments from STDIN, which is how 'fenced' passes arguments.
-($bad)=read_stdin($conf, $log, $bad);
-
-# This makes sure the node ID is either zero-padded or '00'.
-$conf->{na}{port}=$conf->{na}{port} ? $conf->{na}{port}=sprintf("%02d", $conf->{na}{port}) : "00";
-record($conf, $log, "Will use port: [$conf->{na}{port}]\n") if $conf->{'system'}{debug};
-
-# Find the TCP port from the config file.
-foreach my $i (1..$conf->{'system'}{na_num})
-{
-	if ((lc($conf->{na}{$i}{ipaddr}) eq lc($conf->{na}{ipaddr})))
-	{
-		$conf->{'system'}{na_id}=$i;
-		record($conf, $log, __LINE__."; system::na_id: [$conf->{'system'}{na_id}]\n") if $conf->{'system'}{debug};
-		$conf->{na}{tcp_port}=$conf->{na}{$i}{tcp_port};
-		record($conf, $log, __LINE__."; na::tcp_port: [$conf->{na}{tcp_port}]\n") if $conf->{'system'}{debug};
-		$conf->{na}{na_name}=$conf->{na}{$i}{na_name} ? $conf->{na}{$i}{na_name} : "Node Assassin #$i";
-		record($conf, $log, __LINE__."; na::na_name: [$conf->{na}{na_name}]\n") if $conf->{'system'}{debug};
-		$conf->{na}{max_nodes}=$conf->{na}{$i}{max_nodes};
-		record($conf, $log, __LINE__."; na::max_nodes: [$conf->{na}{max_nodes}]\n") if $conf->{'system'}{debug};
-	}
-}
-
-die "Exiting on errors.\n" if $bad;
-my @ny=("no", "yes");
-record($conf, $log, "Node Assassin: . [$conf->{na}{ipaddr}].\n");
-record($conf, $log, "TCP Port: ...... [$conf->{na}{tcp_port}].\n");
-record($conf, $log, "Node: .......... [$conf->{na}{port}].\n");
-record($conf, $log, "Login: ......... [$conf->{na}{login}].\n");
-record($conf, $log, "Password: ...... [$conf->{na}{passwd}].\n");
-record($conf, $log, "Action: ........ [$conf->{na}{action}].\n");
-record($conf, $log, "Version Request: [".$ny[$conf->{'system'}{version}]."].\n");
-record($conf, $log, "Done reading args.\n");
-
-# If I've been asked to show the version information, do so and then exit.
-record($conf, $log, "Version: ..... [$conf->{'system'}{version}].\n") if $conf->{'system'}{debug};
-if ($conf->{'system'}{version})
-{
-	version($conf, $log);
-	do_exit($conf, $log, 0);
-}
-
-# Connect to the Node Assassin.
-connect_to_na($conf, $log);
-
-# Validate credentials.
-# NOTE: Checking before the telnet fails on the exit. Also, this will be moved
-# into the Node Assassin soon anyway.
-if (($conf->{na}{login} ne $conf->{'system'}{username}) or ($conf->{na}{passwd} ne $conf->{'system'}{password}))
-{
-	record($conf, $log, "Username and/or password invalid. Did you use the command line switches properly?\n");
-	do_exit($conf, $log, 8);
-}
-
-###############################################################################
-# What do?                                                                    #
-###############################################################################
-
-# When asked to 'monitor' or 'list'. being multi-port, this will return a CSV
-# of nodes and their aliases where found in the config file.
-record($conf, $log, "Action: ........ [$conf->{na}{action}].\n") if $conf->{'system'}{debug};
-if (($conf->{na}{action} eq "monitor") or ($conf->{na}{action} eq "list"))
-{
-	record($conf, $log, "Calling the 'show_list' function.\n") if $conf->{'system'}{debug};
-	show_list($conf, $log);
-	do_exit($conf, $log, 0);
-}
-
-# If I made it this far, I am setting a state. Sort out what state from the
-# values in my conf->{na} hash.
-record($conf, $log, "Setting node: [$conf->{na}{port}] to action: [$conf->{na}{action}] using the Node Assassin: [$conf->{na}{ipaddr}] using the login: [$conf->{na}{login}]\n") if $conf->{'system'}{debug};
-
-# Convert the action into Node Assassin protocol arguments.
-process_action($conf, $log);
-
-# Now execute the action plan.
-my $exit_code=do_actions($conf, $log);
-record($conf, $log, "All calls complete, exiting.\n") if $conf->{'system'}{debug};
-
-# Cleanup and exit.
-do_exit($conf, $log, $exit_code);
diff --git a/fence/agents/node_assassin/fence_na.pod.in b/fence/agents/node_assassin/fence_na.pod.in
deleted file mode 100644
index c3ec4e4..0000000
--- a/fence/agents/node_assassin/fence_na.pod.in
+++ /dev/null
@@ -1,188 +0,0 @@
-=pod
- 
-=encoding utf8
- 
-=head1 NAME
- 
-B<fence_na>
- 
-This is the fence agent for the Node Assassin fence device.
- 
-=head1 SYNOPSIS
- 
-  fence_na -a motoko.alteeve.com -n 2 -l motoko -p secret -o off
-
-=head1 DESCRIPTION
- 
-This fence agent takes argument from the command line or from the 'fenced' program and interprets them into calls to send to the Node Assassin fence device. It analyzes the returned information and exits with an appropriate exit code as dictated by the FenceAgentAPI.
- 
-=head1 USAGE
-
-Arguments are read from STDIN as 'variable=value' pairs, one pair per new line. This is the method used by 'fenced'.
-
-For testing or manual control, arguments may be passed as command line arguments.
-
-=head1 OVERVIEW
-
-This takes arguments that defined which Node Assassin to call, what node to work on and what action should be taken. These arguments are defined by the FenceAgentAPI. These actions are then translated into a set of Node Assassin states which then get passed to the device.
-
-=head1 NODE ASSASSIN "PORTS"
-
-The FenceAgentAPI refers to "ports" while the Node Assassin refers to "nodes". These two terms are thus used interchangably. The reason for the difference is that, internally, Node Assassin maps each node to three "ports"; The node's power and reset buttons plus the node's power feed.
-
-Each node in the Node Assassin can be set to one of four states described in the next section. 
-
-=head1 NODE ASSASSIN STATES
-
-Each Node Assassin port can be set to one of four states. They are:
-
-=head2 C<0>
-
-This will release the fence on the specified NA node's power and reset ports.
-
-=head2 C<1>
-
-This state will fence the node specified by the "port" argument. The fence will remain active until released. Further, the fence will "lock out" the node's front-panel buttons until the fence is released.
-
-=head2 C<2>
-
-This will fence the node for one second. This is meant to provide a mechanism to boot or initiate a clean shut down of a node.
-
-=head2 C<3>
-
-This state will fence the node for five seconds to 30 seconds, depending on how long it takes for the power feed to drop low. This is meant to provide a way to force crashed nodes to power off without the front-panel lock.
-
-=head1 OPTIONS
-
-Which options are valid depends on how the arguments are passed in. The "main" method of passing arguments is via STDIN as a series of 'varible=value' pairs, one per line. All arguments accepted this way have command-line arguments passed in via single-dashes switches. Each option below shows either calling method's arguments, where available.
-
-=head2 C<-h>
-
-Prints this help message.
-
-=head2 C<-v>, C<-V>
-
-Prints the version of this fence agent and then the version of any configured, reachable Node Assassins.
-
-=head2 C<-q>
-
-Tells this fence agent to only print critical messages.
-
-=head2 C<-d>
-
-Tells this fence agent to print debug messages.
-
-=head2 C<-a address>, C<ipaddr=address>
-
-Tells the fence agent which Node Assassin to use. 
-
-I<NOTE!> The name or IP addresses *MUST* match a name or IP address defined in C<@NACONFFILE@>! Specifically, it must match one of the C<node::X::ipaddr> entries where C<X> is the ID of the Node Assassin.
-
-=head2 C<-l name>, C<login=name>
-
-This is the login name used to connect to this fence agent. It must match the value C<system::username> in C<@NACONFFILE@>.
-
-=head2 C<-p secret>, C<passwd=secret>
-
-This is the login password used to connect to this fence agent. It must match the value C<system::password> in C<@NACONFFILE@>.
-
-=head2 C<-n #>, C<port=#>
-
-This tells the fence agent which node to act on. 
-
-I<NOTE!> Please do not confuse this with the Node Assassin's internal concept of a port.
-
-=head2 C<-o val>, C<action=val>
-
-This is the C<action> (formerly C<option>) to perform on the selected node. Valid actions and how Node Assassin implements them are:
-
-=head3 C<off>
-
-This set's the node to state 1; Fenced. Internally, it will hit the reset switch for one second to immediately disable the node. Then it will release the reset switch for another second before pressing and holding the power switch. After five seconds, Node Assassin will check the node's power feed. If it is still on, it will wait another 25 seconds and check again. If the node is still on, an error will be generated. If the node turns off successfully, the fence is declared a success. reboot
-
-=head3 C<on>
-
-This sets the node to state '0'; Unfenced. Both the power and reset switches are opened, the Node Assassin will pause for one second and then the power switch will be closed for one second to boot the node (that is, the node is set to "state 2").
-
-=head3 C<reboot>
-
-I<Note>: This will do a hard reboot! Do not use when a normal restart would suffice.
-
-This essetially just calls an C<off> and then an C<on>. However, the B<fence_na> agent will return a success (exit C<0>) even if the C<on> stage succeeded. As per the FenceAgentAPI, a reboot does not need to successfully boot the node to be concidered a success, it only needs to shut it down.
-
-=head3 C<status>
-
-This checks the power feed for the requested node is checked. If the node is on, the agent will exit with code C<0>. If the node is off (or disconnected), it will exit with code C<1>. If an error occurred calling the Node Assassin, this will exit with code C<2>.
-
-Note that this argument is designed to be used by the fence agent and will not print any output to C<STDOUT>.
-
-=head3 C<monitor>, C<list>
-
-=head2 Node Assassin Specific Actions
-
-I<NOTE>: The following states are supported by Node Assassin only. These states are not used by the C<fenced> daemon and are provided here as a convenience for the user.
-
-Any commands named C<*_all> ignore the node value, if set.
-
-=head2 C<release>
-
-If the node is fenced, the fence will be released. The difference from C<on> being that this will not boot the node after the fence is released.
-
-=head2 C<release_all>
-
-This does a C<release> on all fenced nodes.
-
-=head2 C<fence_all>
-
-All nodes are fenced. See the C<off> state above.
-
-=head2 C<boot>
-
-The power feed of the specific node on the Node Assassin is checked. If it is found to be off, it will be set to state C<2> to initiate boot.
-
-=head2 C<boot_all>
-
-The power feeds of all nodes on the Node Assassin are checked. Any found to be off are set to state C<2> to initiate boot.
-
-=head2 C<shutdown>
-
-The power feed of the specific node on the Node Assassin is checked. If it is found to be on, it will be set to state C<2> to initiate an ACPI-induced soft shutdown.
-
-=head2 C<shutdown_all>
-
-The power feeds of all nodes on the Node Assassin are checked. Any found to be on are set to state C<2> to initiate an ACPI-induced soft shutdown.
-
-=head2 C<forcedown_all>
-
-The power feeds of all nodes on the Node Assassin are checked. Any found to be on are set to state C<3>. This state is similar to state C<1> (see "C<off>" above), except that the node's front-panel switches are not disabled after the fence completes.
-
-=head1 EXAMPLES
-
-To simulate how 'fenced' calls the script, create a text file called C<args.txt> containing:
-
-  # Test file used as input for the NA fence agent.
-  ipaddr=ariel.alteeve.com
-  port=02
-  login=motoko
-  passwd=secret
-  action=off
-
-Now use C<cat> to pipe the contents into the fence agent:
-
-  cat args.txt | fence_na
-
-This will call the C<off> function against node #02 connected to the Node Assassin at C<motoko.alteeve.com>, fencing it. Change the C<action> line to C<action=on> and re-run the script to release the fence and boot the node.
-
-To duplicate the same call using command line arguments:
-
-  fence_na -a motoko.alteeve.com -n 2 -l motoko -p secret -o off
-
-=head1 SEE ALSO
-
-http://nodeassassin.org
-
-=head1 UPDATED
-
-Jun. 26, 2010
-
-Digimer (digimer at alteeve.com)
diff --git a/fence/agents/nss_wrapper/Makefile b/fence/agents/nss_wrapper/Makefile
deleted file mode 100644
index bf30a22..0000000
--- a/fence/agents/nss_wrapper/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-TARGET= fence_nss_wrapper
-
-SBINDIRT=$(TARGET)
-
-all: ${TARGET}
-
-include ../../../make/defines.mk
-include $(OBJDIR)/make/cobj.mk
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-OBJS=	$(TARGET).o
-
-CFLAGS += -I${nsprincdir} -I${nssincdir}
-CFLAGS += -I${incdir}
-
-LDFLAGS += -L${nsslibdir} -lnss3 -lssl3 -lnspr4
-LDFLAGS += -L${libdir}
-
-${TARGET}: ${OBJS}
-	$(CC) -o $@ $^ $(LDFLAGS)
-
-clean: generalclean
-
--include $(OBJS:.o=.d)
diff --git a/fence/agents/nss_wrapper/fence_nss_wrapper.c b/fence/agents/nss_wrapper/fence_nss_wrapper.c
deleted file mode 100644
index 9571573..0000000
--- a/fence/agents/nss_wrapper/fence_nss_wrapper.c
+++ /dev/null
@@ -1,482 +0,0 @@
-/** @file fence_nss_wrapper.c - Main source code of hobbit like tool with
-  support for NSS (SSL) connection.
-*/
-#include <stdio.h>
-#include <nss.h>
-#include <ssl.h>
-#include <prio.h>
-#include <prnetdb.h>
-#include <prerror.h>
-#include <prinit.h>
-#include <getopt.h>
-#include <libgen.h>
-
-/*---- CONSTANTS -------------*/
-
-/** Default operation = connect and telnet*/
-#define OPERATION_DEFAULT 0
-/** Operation display help*/
-#define OPERATION_HELP 1
-
-/** Default mode of connection. Try first found working address*/
-#define MODE_DEFAULT 3
-/** Use only IPv4*/
-#define MODE_IP4MODE 1
-/** Use only IPv6*/
-#define MODE_IP6MODE 2
-/** Use RAW mode - no change of \r and \n to \r\n*/
-#define MODE_RAW     4
-/** Use non-secure mode (without SSL, only pure socket)*/
-#define MODE_NO_SSL  8
-
-/*------ Functions ---------------*/
-
-/** Return port inserted in string. Fuction tests, if port is integer, and than return
-  integer value of string. Otherwise, it will use /etc/services.  On fail, it returns
-  port -1.
-  @param port_s Input port or service name
-  @return port number (converted with ntohs) on success, otherwise -1.
-*/
-static int return_port(char *port_s) {
-  char *end_c;
-  int res;
-  struct servent *serv;
-
-  res=strtol(port_s,&end_c,10);
-
-  if (*end_c=='\0') return res;
-
-  /*It's not number, so try service name*/
-  serv=getservbyname(port_s,NULL);
-
-  if (serv==NULL) return -1;
-
-  return ntohs(serv->s_port);
-}
-
-/** Hook handler for bad certificate (because we have no DB, EVERY certificate is bad).
-  Returned value is always SECSuccess = it's ok certificate.
-  @param arg NULL value
-  @param fd socket cased error
-  @return SECSuccess.
-*/
-static SECStatus nss_bad_cert_hook(void *arg,PRFileDesc *fd) {
-  return SECSuccess;
-}
-
-/** Display last NSPR/NSS error code and user readable message.
-*/
-static void print_nspr_error(void) {
-  fprintf(stderr,"Error (%d): %s\n",PR_GetError(),PR_ErrorToString(PR_GetError(),PR_LANGUAGE_I_DEFAULT));
-}
-
-/** Initialize NSS. NSS is initialized without DB and with
-  domnestic policy.
-  @return 1 on success, otherwise 0.
-*/
-static int init_nss(void) {
-  if ((NSS_NoDB_Init(NULL)!=SECSuccess) ||
-      (NSS_SetDomesticPolicy()!=SECSuccess)) {
-    print_nspr_error();
-
-    return 0;
-  }
-
-  SSL_ClearSessionCache();
-
-  return 1;
-}
-
-/** Create socket. If ssl is >0, socket is ssl enabled.
-  @param ssl Enable ssl (Client, SSL2+3, no TLS, compatible hello) if PR_TRUE, otherwise no.
-  @param ipv6 New socket will be IPv4 if this value is 0, otherwise it will be ipv6
-  @return NULL on error, otherwise socket.
-*/
-static PRFileDesc *create_socket(int ssl,int ipv6) {
-  PRFileDesc *res_socket;
-
-  res_socket=PR_OpenTCPSocket((ipv6?PR_AF_INET6:PR_AF_INET));
-  if (res_socket==NULL) {
-    print_nspr_error();
-
-    return NULL;
-  }
-
-  if (!ssl) return res_socket;
-
-  if (!(res_socket=SSL_ImportFD(NULL,res_socket))) {
-    print_nspr_error();
-
-    return NULL;
-  }
-
-  if ((SSL_OptionSet(res_socket,SSL_SECURITY,ssl)!=SECSuccess) ||
-      (SSL_OptionSet(res_socket,SSL_HANDSHAKE_AS_SERVER,PR_FALSE)!=SECSuccess) ||
-      (SSL_OptionSet(res_socket,SSL_HANDSHAKE_AS_CLIENT,PR_TRUE)!=SECSuccess) ||
-      (SSL_OptionSet(res_socket,SSL_ENABLE_SSL2,ssl)!=SECSuccess) ||
-      (SSL_OptionSet(res_socket,SSL_ENABLE_SSL3,ssl)!=SECSuccess) ||
-      (SSL_OptionSet(res_socket,SSL_ENABLE_TLS,PR_FALSE)!=SECSuccess) ||
-      (SSL_OptionSet(res_socket,SSL_V2_COMPATIBLE_HELLO,ssl)!=SECSuccess) ||
-      (SSL_SetPKCS11PinArg(res_socket,NULL)==-1) ||
-      (SSL_AuthCertificateHook(res_socket,SSL_AuthCertificate,CERT_GetDefaultCertDB())!=SECSuccess) ||
-      (SSL_BadCertHook(res_socket,nss_bad_cert_hook,NULL)!=SECSuccess)) {
-    print_nspr_error();
-
-    if (PR_Close(res_socket)!=PR_SUCCESS) {
-      print_nspr_error();
-    }
-
-    return NULL;
-  }
-
-  return res_socket;
-}
-
-/** Create socket and connect to it.
-  @param hostname Hostname to connect
-  @param port Port name/number to connect
-  @param mode Connection mode. Bit-array of MODE_NO_SSL, MODE_IP6MODE, MODE_IP4MODE.
-  @return NULL on error, otherwise connected socket.
-*/
-static PRFileDesc *create_connected_socket(char *hostname,int port,int mode) {
-  PRAddrInfo *addr_info;
-  void *addr_iter;
-  PRNetAddr addr;
-  PRFileDesc *localsocket;
-  int can_exit,valid_socket;
-  PRUint16 af_spec;
-
-  localsocket=NULL;
-
-  addr_info=NULL;
-
-  af_spec=PR_AF_UNSPEC;
-
-  if (!(mode&MODE_IP6MODE)) af_spec=PR_AF_INET;
-
-  addr_info=PR_GetAddrInfoByName(hostname,af_spec,PR_AI_ADDRCONFIG);
-
-  if (addr_info == NULL) {
-    print_nspr_error();
-    return NULL;
-  }
-
-  /*We have socket -> enumerate and try to connect*/
-  addr_iter=NULL;
-  can_exit=0;
-  valid_socket=0;
-
-  while (!can_exit) {
-    addr_iter=PR_EnumerateAddrInfo(addr_iter,addr_info,port,&addr);
-
-    if (addr_iter==NULL) {
-      can_exit=1;
-    } else {
-      if ((PR_NetAddrFamily(&addr)==PR_AF_INET && (mode&MODE_IP4MODE)) ||
-          (PR_NetAddrFamily(&addr)==PR_AF_INET6 && (mode&MODE_IP6MODE))) {
-        /*Type of address is what user want, try to create socket and make connection*/
-
-        /*Create socket*/
-        localsocket=create_socket(!(mode&MODE_NO_SSL),(PR_NetAddrFamily(&addr)==PR_AF_INET6));
-
-        if (localsocket) {
-          /*Try to connect*/
-          if (PR_Connect(localsocket,&addr,PR_INTERVAL_NO_TIMEOUT)==PR_SUCCESS) {
-            /*Force handshake*/
-            if ((!(mode&MODE_NO_SSL)) && SSL_ForceHandshake(localsocket)!=SECSuccess) {
-              /*Handhake failure -> fail*/
-              print_nspr_error();
-              if (PR_Close(localsocket)!=PR_SUCCESS) {
-                print_nspr_error();
-                can_exit=1;
-              }
-              localsocket=NULL;
-            }
-
-            /*Socket is connected -> we can return it*/
-            can_exit=1;
-          } else {
-            /*Try another address*/
-            if (PR_Close(localsocket)!=PR_SUCCESS) {
-              print_nspr_error();
-              can_exit=1;
-            }
-            localsocket=NULL;
-          }
-        }
-      }
-    }
-  }
-
-  if (!localsocket) {
-    /*Socket is unvalid -> we don't found any usable address*/
-    fprintf(stderr,"Can't connect to host %s on port %d!\n",hostname,port);
-  }
-
-  PR_FreeAddrInfo(addr_info);
-
-  return localsocket;
-}
-
-/** Parse arguments from command line.
-  @param argc Number of arguments in argv
-  @param argv Array of arguments
-  @param mode Pointer to int will be filled with OPERATION_DEFAULT or OPERATION_HELP.
-  @param mode Pointer to int will be filled with MODE_DEFAULT, MODE_IP4MODE or MODE_IP4MODE.
-  @return 1 on success, otherwise 0.
-*/
-static int parse_cli(int argc,char *argv[],int *operation,int *mode,char **hostname,char **port) {
-  int opt;
-
-  *operation=OPERATION_DEFAULT;
-  *mode=MODE_DEFAULT;
-  *port=NULL;
-  *hostname=NULL;
-
-  while ((opt=getopt(argc,argv,"h46rz"))!=-1) {
-    switch (opt) {
-      case 'h':
-        *operation=OPERATION_HELP;
-
-        return 0;
-      break;
-
-      case '4':
-        (*mode)&=~MODE_IP6MODE;
-        (*mode)|=MODE_IP4MODE;
-      break;
-
-      case '6':
-        (*mode)&=~MODE_IP4MODE;
-        (*mode)|=MODE_IP6MODE;
-      break;
-
-      case 'r':
-        (*mode)|=MODE_RAW;
-      break;
-
-      case 'z':
-        (*mode)|=MODE_NO_SSL;
-      break;
-
-      default:
-        return 0;
-      break;
-    }
-  }
-
-  if (argc-optind<2) {
-    fprintf(stderr,"Hostname and port is expected!\n");
-
-    return 0;
-  }
-
-  *hostname=argv[optind];
-  *port=argv[optind+1];
-
-  return 1;
-}
-
-/** Show usage of application.
-  @param pname Name of program (usually basename of argv[0])
-*/
-static void show_usage(char *pname) {
-  printf("usage: %s [options] hostname port\n", pname);
-  printf("   -4             Force to use IPv4\n");
-  printf("   -6             Force to use IPv6\n");
-  printf("   -r             Use RAW connection (don't convert \\r and \\n characters)\n");
-  printf("   -z             Don't use SSL connection (use pure socket)\n");
-  printf("   -h             Show this help\n");
-}
-
-/** Convert End Of Lines (Unix \n, Macs \r or DOS/Win \r\n) to \r\n.
-  @param in_buffer Input buffer
-  @param in_size Input buffer size
-  @param out_buffer Output buffer (must be prealocated). Should be (2*in_size) (in worst case)
-  @param out_size There will be size of out_buffer
-  @param in_state Internal state of finite automata. First call should have this 0, other calls
-    shouldn't change this value. After end of file, you may add to this value +100 and call this
-    again, to make sure of proper end (in_buffer can be in this case everything, including NULL).
-*/
-static void convert_eols(char *in_buffer,int in_size,char *out_buffer,int *out_size,int *in_state) {
-  int in_pos,out_pos;
-  int status;
-  char in_char;
-
-  out_pos=0;
-  status=*in_state;
-
-  if (status==100 || status==101) {
-    if (status==101) {
-      out_buffer[out_pos++]='\r';
-      out_buffer[out_pos++]='\n';
-    }
-  } else {
-    for (in_pos=0;in_pos<in_size;in_pos++) {
-      in_char=in_buffer[in_pos];
-
-      switch (status) {
-        case 0:
-          if (in_char=='\r') status=1;
-          if (in_char=='\n') {
-            out_buffer[out_pos++]='\r';
-            out_buffer[out_pos++]='\n';
-          }
-          if ((in_char!='\r') && (in_char!='\n')) out_buffer[out_pos++]=in_char;
-        break;
-
-        case 1:
-          out_buffer[out_pos++]='\r';
-          out_buffer[out_pos++]='\n';
-
-          if (in_char!='\n') out_buffer[out_pos++]=in_char;
-
-          status=0;
-        break;
-      }
-    }
-  }
-
-  *out_size=out_pos;
-  *in_state=status;
-}
-
-/** Start polling cycle.
-  @param socket Network connected socket.
-  @param mode Bit-array of MODE_*. This function take care on MODE_RAW.
-  @return 0 on failure, otherwise 1
-*/
-static int poll_cycle(PRFileDesc *localsocket,int mode) {
-  PRPollDesc pool[2];
-  char buffer[1024],buffer_eol[1024*2];
-  int readed_bytes;
-  int can_exit;
-  int res;
-  int bytes_to_write;
-  int eol_state;
-
-  can_exit=0;
-  eol_state=0;
-
-  /* Fill pool*/
-  pool[1].fd=localsocket;
-  pool[0].fd=PR_STDIN;
-  pool[0].in_flags=pool[1].in_flags=PR_POLL_READ;
-  pool[0].out_flags=pool[1].out_flags=0;
-
-  while (!can_exit) {
-    res=(PR_Poll(pool,sizeof(pool)/sizeof(PRPollDesc),PR_INTERVAL_NO_TIMEOUT));
-
-    if (res==-1) {
-      print_nspr_error();
-
-      return 0;
-    }
-
-    if (pool[1].out_flags&PR_POLL_READ) {
-      /*We have something in socket*/
-      if ((readed_bytes=PR_Read(pool[1].fd,buffer,sizeof(buffer)))>0) {
-        if (PR_Write(PR_STDOUT,buffer,readed_bytes)!=readed_bytes) {
-          print_nspr_error();
-
-          return 0;
-        }
-      } else {
-        /*End of stream -> quit*/
-        can_exit=1;
-      }
-    }
-
-    if (pool[0].out_flags&(PR_POLL_READ|PR_POLL_HUP)) {
-      /*We have something in stdin*/
-      if ((readed_bytes=PR_Read(pool[0].fd,buffer,sizeof(buffer)))>0) {
-
-        if (!(mode&MODE_RAW)) {
-          convert_eols(buffer,readed_bytes,buffer_eol,&bytes_to_write,&eol_state);
-        } else
-          bytes_to_write=readed_bytes;
-
-        if (PR_Write(pool[1].fd,(mode&MODE_RAW?buffer:buffer_eol),bytes_to_write)!=bytes_to_write) {
-          print_nspr_error();
-
-          return 0;
-        }
-      } else {
-        /*End of stream -> send EOL (if needed)*/
-        if (!(mode&MODE_RAW)) {
-          eol_state+=100;
-          convert_eols(NULL,0,buffer_eol,&bytes_to_write,&eol_state);
-          if (PR_Write(pool[1].fd,buffer_eol,bytes_to_write)!=bytes_to_write) {
-            print_nspr_error();
-
-            return 0;
-          }
-        }
-      }
-    }
-
-    pool[0].out_flags=pool[1].out_flags=0;
-  } /*while (!can_exit)*/
-
-  return 1;
-}
-
-static void atexit_handler(void) {
-  if (PR_Initialized())
-    PR_Cleanup();
-
-  if (fclose(stdout)!=0) {
-    fprintf(stderr,"Can't close stdout!\n");
-
-    exit(1);
-  }
-}
-
-/** Entry point of application.
-  @param argc Number of arguments on command line
-  @param argv Array of strings with arguments from command line
-  @return 0 on success, otherwise >0.
-*/
-int main(int argc,char *argv[]) {
-  int mode,operation;
-  char *hostname, *port;
-  char *pname;
-  int port_n;
-  PRFileDesc *fd_socket;
-  int res;
-
-  pname=basename(argv[0]);
-
-  atexit(atexit_handler);
-
-  if (!parse_cli(argc,argv,&operation,&mode,&hostname,&port) || operation==OPERATION_HELP) {
-    show_usage(pname);
-
-    if (operation!=OPERATION_HELP) return 1;
-
-    return 0;
-  }
-
-  if ((port_n=return_port(port))==-1) {
-    fprintf(stderr,"Error. Unknown port number/name %s!\n",port);
-
-    return 1;
-  }
-
-  if (!(mode&MODE_NO_SSL)) {
-    if (!init_nss()) return 1;
-  }
-
-  if (!(fd_socket=create_connected_socket(hostname,port_n,mode)))
-    return 1;
-
-  res=poll_cycle(fd_socket,mode);
-
-  if (PR_Close(fd_socket)!=PR_SUCCESS) {
-    print_nspr_error();
-
-    return 1;
-  }
-
-  return (res?0:1);
-}
diff --git a/fence/agents/rackswitch/Makefile b/fence/agents/rackswitch/Makefile
deleted file mode 100644
index 05ee5af..0000000
--- a/fence/agents/rackswitch/Makefile
+++ /dev/null
@@ -1,26 +0,0 @@
-TARGET= fence_rackswitch
-
-MANTARGET = fence_rackswitch.8
-
-SBINDIRT=$(TARGET)
-
-all: ${TARGET}
-
-include ../../../make/defines.mk
-include $(OBJDIR)/make/cobj.mk
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-OBJS=	do_rack.o
-
-CFLAGS += -I${incdir}
-
-LDFLAGS += -L${libdir}
-
-${TARGET}: ${OBJS}
-	$(CC) -o $@ $^ $(LDFLAGS)
-
-clean: generalclean
-
--include $(OBJS:.o=.d)
diff --git a/fence/agents/rackswitch/do_rack.c b/fence/agents/rackswitch/do_rack.c
deleted file mode 100644
index 32037c1..0000000
--- a/fence/agents/rackswitch/do_rack.c
+++ /dev/null
@@ -1,752 +0,0 @@
-#include "do_rack.h"
-
-const char *pname = "fence_rack";
-
-int quiet_flag = 0;
-int verbose_flag = 0;
-int debug_flag = 0;
-
-char ipaddr[256];
-char portnumber[256];
-char username[256];
-char password[256];
-char arg[256];
-char name[256];
-char pwd_script[PATH_MAX] = { 0, };
-
-char readbuf[MAXBUF];
-char writebuf[MAXBUF];
-int sock;
-
-char op_login = 0x7e; 	        /* 126*/ 
-char op_action = 0x66;	        /* 102 */
-char ack_login = 0x7D;	        /* 125 */
-
-char action_idle = 0x00;
-char action_reset = 0x01;
-char action_off = 0x02;
-char action_offon = 0x03;
-
-char configuration_request = 0x5b;   /* 91 */
-char config_reply = 0x5c;            /* 92 */
-char config_general = 0x01;
-char config_section1 = 0x02;
-char config_section2 = 0x03;
-char config_section3 = 0x04;
-
-char message_status = 0x65;         /* 101 */
-
-char login_deny = 0xFF;          
-
-int time_out = 60;
-
-void ignore_message_status(void);
-int wait_frame(char);
-
-/*
- * scan input, waiting for a given frame
- */
-int wait_frame(char frame_id)
-{
-  int read_more = 1;
-  int success = 0;
-  int n;
-  char target = frame_id;
-
-  if(debug_flag){printf("%s: Looking for frametype 0x%.2x\n",name,target);}
-  read_more = 1;
-  while(read_more){
-    n = read(sock,readbuf,1);
-    if(debug_flag){printf("%s: Found frametype 0x%.2x\n",name,readbuf[0]);}
-    if(readbuf[0] == target){
-      read_more = 0;
-      success = 1;
-    }
-    else{
-      if(readbuf[0] == message_status){
-	ignore_message_status();
-	read_more = 1;
-      }
-      else{
-	if(debug_flag){printf("%s: Got unexpected frame from switch\n",name);}
-	read_more = 0;
-	success = 0;
-      }
-    }
-  }
-  return(success);
-}  
-
-void ignore_message_status(void)
-{
-  int n,i;
-  int read_more = 1;
-  int number_of_temp;
-  int number_of_config_mobo;
-    
-  if(debug_flag){printf("%s: Ignoring message-status\n",name);}
-  read_more=1;
-  while(read_more){
-    n = read(sock,readbuf,1); /* status */
-    if(n == 1)
-      read_more = 0;
-  }
-
-  read_more = 1;
-  while(read_more){         /* Date & time */
-    n = read(sock,readbuf,1);
-    if(readbuf[0] == '\0'){
-      read_more = 0;
-    }
-    else{
-      read_more = 1;
-    }
-  }
-   
-  read_more = 1;
-  number_of_temp = 0;
-  n = read(sock,readbuf,1); /* Temprature Input count */
-  number_of_temp = (int)readbuf[0];
-  
-  for(i=0;i<number_of_temp;i++){
-    read_more = 1;
-    while(read_more){
-      n = read(sock,readbuf,1); /* Temprature input ID */
-      n = read(sock,readbuf,8); /* Temprature Value, Fahrenheit */
-      n = read(sock,readbuf,8); /* Temprature Vaule, Celcius */
-      n = read(sock,readbuf,1); /* Temprature Alarm */
-    }
-  }
-  number_of_config_mobo = 0;
-  for(i=4;i>0;i--){
-    read_more = 1;	
-    while(read_more){
-      n=read(sock,readbuf,1);
-      if(n == 1){
-	read_more = 0;
-	number_of_config_mobo = number_of_config_mobo + (int)(readbuf[0]<<(8*(i-1)));
-      }
-    }
-  }
-  for(i=0;i<number_of_config_mobo;i++){
-    n = read(sock,readbuf,4); /* Motherboard ID */
-    n = read(sock,readbuf,1); /* Motherboard status */
-  }
-}
-
-
-
-static void print_usage(void)
-{
-  printf("Usage:\n");
-  printf("\n");
-  printf("%s [options]\n"
-         "\n"
-         "Options:\n"
-         "  -h               usage\n"
-	 "  -a <ip>          IP address for RackSwitch\n"
-	 "  -n <dec num>     Physical plug number on RackSwitch\n"
-	 "  -l <string>      Username\n"
-	 "  -p <string>      Password\n"
-	 "  -S <path>        Script to retrieve password\n"
-	 "  -v               Verbose\n"
-	 "  -q               Quiet\n"
-         "  -V               Version information\n", pname);
-}
-
-
-
-static void get_options(int argc, char **argv)
-{
-  int c;
-  char *value;
-
-  if (argc > 1){  
-    /*
-     * Command line input
-     */
-    while ((c = getopt(argc, argv, "ha:n:l:p:S:vqVd")) != -1)
-      {
-	switch(c)
-	  {
-	  case 'h':
-	    print_usage();
-	    exit(DID_SUCCESS);
-	
-	  case 'a':
-	    strncpy(ipaddr,optarg,254);
-	    break;
-
-	  case 'n':
-	    strncpy(portnumber,optarg,254);
-	    break;
-
-	  case 'l':
-	    strncpy(username,optarg,254);	
-	    break;
-
-	  case 'p':
-	    strncpy(password,optarg,254);
-	    break;
-
-	  case 'S':
-		strncpy(pwd_script, optarg, sizeof(pwd_script));
-		pwd_script[sizeof(pwd_script) - 1] = '\0';
-		break;
-
-	  case 'v':
-	    verbose_flag = 1;
-	    break;
-
-	  case 'q':
-	    quiet_flag = 1;
-	    break;
-
-	  case 'd':
-	    debug_flag = 1;
-	    break;
-
-	  case 'V':
-	    printf("%s %s (built %s %s)\n", pname, RELEASE_VERSION,
-		   __DATE__, __TIME__);
-	    printf("%s\n", REDHAT_COPYRIGHT);
-	    exit(DID_SUCCESS);
-	    break;
-
-	  case ':':
-	  case '?':
-	    fprintf(stderr, "Please use '-h' for usage.\n");
-	    exit(DID_FAILURE);
-	    break;
-
-	  default:
-	    fprintf(stderr, "Bad programmer! You forgot to catch the %c flag\n", c);
-	    exit(DID_FAILURE);
-	    break;
-
-	  }
-      }
-    strcpy(name, pname);
-  }
-  else{
-    errno = 0;
-    while(fgets(arg, 256, stdin) != NULL){    
- if( (value = strchr(arg, '\n')) == NULL){
-        fprintf(stderr, "line too long: '%s'\n", arg);
-	exit(DID_FAILURE);
-      }
-      *value = 0;
-      if( (value = strchr(arg, '=')) == NULL){
-        /* in this agent we can ignore options without value
-         * as we don't need any of them, here. But we should
-         * accept and ignore them.
-         */
-        fprintf(stderr, "invalid input: '%s'\n", arg);
-        continue;
-      }
-      *value = 0;
-      value++;
-    /*  bahfuck. "agent" is not passed to us anyway
-     *  if (!strcmp(arg, "agent")){
-      *  strcpy(name, value);
-       * pname = name;
-      *}
-      */
-      strcpy(name, pname);
-      if (!strcmp(arg, "ipaddr"))
-        strcpy(ipaddr, value);
-      
-      if (!strcmp(arg, "portnumber"))
-        strcpy(portnumber, value);
-      
-      if (!strcmp(arg, "username"))
-        strcpy(username, value);
-      
-      if (!strcmp(arg, "password"))
-        strcpy(password, value);
-
-	  if (!strcasecmp(arg, "passwd_script")) {
-		strncpy(pwd_script, optarg, sizeof(pwd_script));
-		pwd_script[sizeof(pwd_script) - 1] = '\0';
-	  }
-    }
-    errno = 0;
-    
-  }
-
-  if (pwd_script[0] != '\0') {
-	FILE *fp;
-	char pwd_buf[1024];
-
-	fp = popen(pwd_script, "r");
-	if (fp != NULL) {
-		ssize_t len = fread(pwd_buf, 1, sizeof(pwd_buf), fp);
-		if (len > 0) {
-			char *p;
-			p = strchr(pwd_buf, '\n');
-			if (p != NULL)
-				*p = '\0';
-			p = strchr(pwd_buf, '\r');
-			if (p != NULL)
-				*p = '\0';
-			strncpy(password, pwd_buf, sizeof(password));
-			password[sizeof(password) - 1] = '\0';
-		}
-		pclose(fp);
-	}
-  }
-}
-
-static void sig_alarm(int sig)
-{
- if(!quiet_flag){
-   fprintf(stderr,"failed: %s: Timeout, nothing happened for %d seconds.\n", pname, time_out);
-   fprintf(stderr,"failed: %s: Perhaps you should inspect the RackSwitch at %s\n",pname,ipaddr);
- }
- exit(DID_FAILURE);	
-}
-
-
-int main(int argc, char **argv)
-{
-  int n,i,j,pnumb;
-  int ip_portnumber = 1025;
-  char boardnum = 0x00;
-  /*char number_of_action = 0x01;*/
-  int number_of_config_mobo = 0;
-  int number_of_section_config_mobo = 0;
-  int exit_status= 0;
-  int success_off = 0;
-  /*int success_on = 0;*/
-  int read_more = 1;
-  struct sockaddr_in rackaddr; 
-  
-  /*char mobo_enabled = 0x01;*/
-  /*char mobo_default_status = 0x00;*/
-  /*char mobo_output_status = 0x00;*/
-  int this_mobo = 0;
-  /*int mobo_id = 0;*/
-  /*int our_mobo = 0;*/
-  int number_of_temp = 0;
-
-  memset(arg, 0, 256);
-  memset(name, 0, 256);
-  memset(ipaddr, 0, 256);
-  memset(portnumber,0,256);
-  memset(username,0,256);
-  memset(password,0,256);
-
-  /*
-   * Ensure that we always get out of the fencing agent
-   * even if things get fucked up and we get no replies
-   */
-  signal(SIGALRM, &sig_alarm);
-  alarm(time_out);
-  get_options(argc, argv);
-
-  if(name[0] == '\0')
-  {
-    if(!quiet_flag)
-      fprintf(stderr,"failed: no name for this program\n");
-    exit(DID_FAILURE);
-  }
-  
-  if(ipaddr[0] == '\0')
-  {
-    if(!quiet_flag)
-      fprintf(stderr,"failed: %s, no IP address given\n",name);
-    exit(DID_FAILURE);
-  }
-  if (portnumber[0] == '\0')
-  {
-    if(!quiet_flag)
-      fprintf(stderr,"failed: %s, no portnumber given\n",name);
-    exit(DID_FAILURE);
-  }
-  if (username[0] == '\0')
-  {
-    if(!quiet_flag)
-      fprintf(stderr,"failed: %s, no username given\n",name);
-    exit(DID_FAILURE);
-  }
-
-  if (password[0] == '\0')
-  {
-    if(!quiet_flag)
-      fprintf(stderr,"failed: %s, no password given\n",name);
-    exit(DID_FAILURE);
-  }
-  /*
-   * Port number given to us as a string.
-   * Does the number make sense?
-   */
-  pnumb = 0;
-  for(n=0;(portnumber[n]!='\0');n++){
-    if((portnumber[n] < 48) || (portnumber[n] > 57)){
-      if(!quiet_flag)
-	fprintf(stderr,"failed: %s, invalid port number\n",name);
-      exit(1);
-    }
-    pnumb = ((pnumb * 10) + ((int)(portnumber[n]) - 48));
-  }
-  /*
-   * what section of the rack is this port part of?
-   * The switch has 4 "subsections", called boardnum here
-   */
-  if((pnumb > 0) && (pnumb < 47))
-    boardnum = 0x02;
-  if((pnumb > 46) && (pnumb < 94))
-    boardnum = 0x03;
-  if((pnumb > 93) && (pnumb < 137))
-    boardnum = 0x04;
-  if((pnumb < 1) || (pnumb> 136)){
-    boardnum = 0x00;
-    if(!quiet_flag)
-      fprintf(stderr,"failed: %s, the portnumber given is not in the range [1 - 136]\n",name);
-    exit(DID_FAILURE);
-  } 
-  /*********************************************
-   ***
-   *** set up TCP connection to the rackswitch
-   ***
-   ********************************************/
-  if ((sock = socket(AF_INET,SOCK_STREAM,0)) < 0){
-    fprintf(stderr,"failed: %s: socket error, %s\n",name,strerror(errno));
-    exit(DID_FAILURE);
-  }
-  
-  bzero(&rackaddr,sizeof(rackaddr));
-  rackaddr.sin_family = AF_INET;
-  rackaddr.sin_port = htons(ip_portnumber);
-
-  if(inet_pton(AF_INET,ipaddr,&rackaddr.sin_addr) <= 0){
-    fprintf(stderr,"failed: %s: inet_pton error\n", name);
-  }
- 
-  if(connect(sock,(SA *) &rackaddr,sizeof(rackaddr)) < 0){
-    fprintf(stderr,"failed: %s: connect error to %s, %s\n", name, ipaddr,strerror(errno));
-    exit(DID_FAILURE);
-  }
-  /**********************************************
-   ***
-   ***	Send Login Frame
-   ***
-   *********************************************/
-  writebuf[0] = op_login;
-   
-  for(n=0;n<=(strlen(username));n++){
-    writebuf[sizeof(char)+n] = username[n];
-  }
-  writebuf[sizeof(char)+(strlen(username))+1] ='\n';
-   
-  for(n=0;n<=(strlen(password))+1;n++){
-    writebuf[sizeof(char)+strlen(username)+1+n] = password[n];
-  }
-  writebuf[sizeof(char)+(strlen(username))+1+(strlen(password))+1] ='\n';
-     
-  if(write(sock,writebuf,sizeof(char)+strlen(username)+strlen(password)+2) < 0) {
-    fprintf(stderr,"failed to write to socket\n");
-    exit(DID_FAILURE);
-  }
-   
-  /********************************************
-   ***
-   ***	Read Login Reply
-   ***
-   *******************************************/
- if(wait_frame(ack_login)){
-   n=read(sock,readbuf,1);
-   if(readbuf[0] == login_deny){
-     if(!quiet_flag){fprintf(stderr,"failed: %s: Not able to log into RackSwitch\n",name);}
-     exit(DID_FAILURE);
-   }
-   else{
-     if(verbose_flag){printf("%s: Successfully logged into RackSwitch\n",name);}
-   }
-  }
-
- /********************************************
-  ***
-  ***	Send Configuration Request Message
-  ***
-  *******************************************/
- 
- writebuf[0] = configuration_request;
- writebuf[1] = config_general;
- if(write(sock,writebuf,2*(sizeof(char))) < 0) {
-   fprintf(stderr,"failed to write to socket\n");
-   exit(DID_FAILURE);
- }
-
- /********************************************
-   ***
-   ***	Read General Configuration Message
-   ***
-   *******************************************/
-
- if(wait_frame(config_reply)){
-   n = read(sock,readbuf,1);
-   if(readbuf[0] == config_general){
-
-     /* Configuration Status, one byte */
-     n = read(sock,readbuf,1);
-     
-     /* Switch description, string */
-     read_more = 1;
-     while(read_more){         
-       n = read(sock,readbuf,1);
-       if(readbuf[0] == '\0'){
-	 read_more = 0;
-       }
-       else{
-	 read_more = 1;
-       }
-     }
-     
-     /* Serial number, string */
-     read_more = 1;
-     while(read_more){
-       n = read(sock,readbuf,1);
-       if(readbuf[0] == '\0'){
-	 read_more = 0;
-       }
-       else{
-	 read_more = 1;
-       }
-     }
-
-       	  /* Version number, string */
-     read_more = 1;
-     while(read_more){
-       n = read(sock,readbuf,1);
-       if(readbuf[0] == '\0'){
-	 read_more = 0;
-       }
-       else{
-	 read_more = 1;
-       }
-     }
-
-     /* number of configured temps, 1 byte */
-     number_of_temp = 0; 
-     n = read(sock,readbuf,1);
-     number_of_temp = (int)readbuf[0];
-     
-     for(i=0;i<number_of_temp;i++){
-
-       /* Temprature description, string */
-       read_more = 1;
-       while(read_more){ 
-	 read_more = 1;
-	 while(read_more){         
-	   n = read(sock,readbuf,1);
-	   if(readbuf[0] == '\0'){
-	     read_more = 0;
-	   }
-	   else{
-	     read_more = 1;
-	   }
-	 }
-       }
-       
-       n = read(sock,readbuf,1); /* Temprature input ID */
-       n = read(sock,readbuf,1); /* Tempratue unit */
-       n = read(sock,readbuf,8); /* Temprature HI alarm */
-       n = read(sock,readbuf,8); /* Temprature LO alarm */
-       n = read(sock,readbuf,1); /* Temprature HI Alarm */
-       n = read(sock,readbuf,1); /* Temprature LO Alarm */
-       n = read(sock,readbuf,1); /* Temprature Alarm email */
-     }
-     /* Number of configured motherboards */
-     number_of_config_mobo = 0;
-     for(i=4;i>0;i--){
-       read_more = 1;	
-       while(read_more){
-	 n=read(sock,readbuf,1);
-	 if(n == 1){
-	   read_more = 0;
-	   number_of_config_mobo = number_of_config_mobo + (int)(readbuf[0]<<(8*(i-1)));
-	 }
-       }
-     }
-     /*
-      * make sure the motherboard we are asked to turn of is configured
-      */
-     if(pnumb > number_of_config_mobo){
-       if(!quiet_flag){
-	 fprintf(stderr,"failed: %s asked to reboot port %d, but there are only %d ports configured\n",name,pnumb,number_of_config_mobo);
-	 exit(DID_FAILURE);
-       }
-     }
-     n = read(sock,readbuf,1); /* email alarms */
-     n = read(sock,readbuf,4); /* email alarm delay */
-
-     /* email addresses, string */
-     read_more = 1;
-     while(read_more){         
-       n = read(sock,readbuf,1);
-       if(readbuf[0] == '\0'){
-	 read_more = 0;
-       }
-       else{
-	 read_more = 1;
-       }
-     }
-     
-     n = read(sock,readbuf,4); /* reset action duration */
-     n = read(sock,readbuf,4); /* power off action duration */
-     n = read(sock,readbuf,4); /* power on action duration */
-   }
-   else{
-     if(debug_flag){fprintf(stderr,"failed: %s: Did not receive general configuration frame when requested\n",name);}
-     exit(DID_FAILURE);
-   }
- }
- else{
-   if(debug_flag){fprintf(stderr,"failed: %s: Did not receive configuration frame when requested\n",name);}
-   exit(DID_FAILURE);
- }
-
-
-
- /******************************************
-  ***
-  ***	Send Action packet to switch
-  ***	Off/On port <portnum>
-  ***
-  *****************************************/
- memset(writebuf,0,sizeof(writebuf));
- writebuf[0] = op_action; 
- writebuf[1] = (char)(number_of_config_mobo >> 24);
- writebuf[2] = (char)(number_of_config_mobo >> 16);
- writebuf[3] = (char)(number_of_config_mobo >> 8);
- writebuf[4] = (char)(number_of_config_mobo);
- 
- writebuf[(pnumb*5)+0] = (char)(pnumb >> 24);
- writebuf[(pnumb*5)+1] = (char)(pnumb >> 16);
- writebuf[(pnumb*5)+2] = (char)(pnumb >> 8);
- writebuf[(pnumb*5)+3] = (char)(pnumb);
- writebuf[(pnumb*5)+4] = action_offon;
-
- if(write(sock,writebuf,(pnumb*5)+5) < 0) {
-   fprintf(stderr,"failed to write to socket\n");
-   exit(DID_FAILURE);
- }
- if(verbose_flag){
-   printf("%s: sending action frame to switch:\n",name);
-   for(i=0;i<(pnumb*5)+5;i++) 
-     printf("0x%.2x ",writebuf[i]);
-   printf("\n");
- }
-
-  /******************************************
-   ***
-   ***	Send Configuration Request packet to switch
-   ***
-   *****************************************/
- memset(writebuf,0,sizeof(writebuf));
- writebuf[0] = configuration_request;
- writebuf[1] = boardnum;
- 
- if(write(sock,writebuf,2*(sizeof(char))) < 0) {
-   fprintf(stderr,"failed to write to socket\n");
-   exit(DID_FAILURE);
- }
- if(verbose_flag){
-   printf("%s: sending Request Configuration Frame from switch:\n",name);
-   printf("0x%.2x 0x%.2x\n",writebuf[0],writebuf[1]);
- }
-
- /*******************************************
-  ***
-  ***	Read Switch Status Message
-  ***
-  ******************************************/
- while(success_off == 0){
-   if(debug_flag){
-     printf("%s: Status does not indicate port %d being rebooted. Looking again\n",name,pnumb);}
-   if(wait_frame(message_status)){
-     n = read(sock,readbuf,1); /* Rackswitch status */
-     
-     read_more = 1;
-     while(read_more){         /* Date & time */
-       n = read(sock,readbuf,1);
-       if(readbuf[0] == '\0'){
-	 read_more = 0;
-       }
-       else{
-	 read_more = 1;
-       }
-     }
-     number_of_temp = 0;
-     n = read(sock,readbuf,1);
-     number_of_temp = readbuf[0];
-     for(i=0;i<number_of_temp;i++){
-       read_more = 1;
-       while(read_more){
-	 n = read(sock,readbuf,1); /* Temprature input ID */
-	 n = read(sock,readbuf,8); /* Temprature Value, Fahrenheit */
-	 n = read(sock,readbuf,8); /* Temprature Vaule, Celcius */
-	 n = read(sock,readbuf,1); /* Temprature Alarm */
-       }
-     }
-     
-     /* number of motherboards, 4 byte */
-     number_of_section_config_mobo = 0;
-     for(i=4;i>0;i--){
-       read_more = 1;	
-       while(read_more){
-	 n=read(sock,readbuf,1);
-	 if(n == 1){
-	   read_more = 0;
-	   number_of_section_config_mobo = number_of_section_config_mobo + (int)(readbuf[0]<<(8*(i-1)));
-	 }
-       }
-     }
-     
-     for(i=0;i<number_of_section_config_mobo;i++){
-       
-       this_mobo = 0;
-       for(j=4;j>0;j--){
-	 read_more = 1;	
-	 while(read_more){
-	   n=read(sock,readbuf,1);
-	   if(n == 1){
-	     read_more = 0;
-	     this_mobo = this_mobo + (int)(readbuf[0]<<(8*(j-1)));
-	   }
-	 }
-       }
-       if(debug_flag){printf("%s: port %d is currently ",name,this_mobo);}
-       n = read(sock,readbuf,1); /* Motherboard status */
-       if(debug_flag){printf("0x%.2x\n",readbuf[0]);}
-       if((pnumb == this_mobo) && ((readbuf[0] == 0x02)||(readbuf[0] == 0x03))){
-	 success_off = 1;
-	 if(verbose_flag){printf("%s: Status shows port %d being rebooted\n",name,this_mobo);}
-       }
-     } /* end number_of_section_mobo loop */
-     if(!success_off){
-       if(verbose_flag){printf("%s: Status shows port %d NOT being rebooted, asking for status again\n",name,pnumb);}
-     }
-   }
-   else{
-     if(debug_flag){fprintf(stderr,"%s: Did not receive Switch Status Message\n",name);}
-     exit(DID_FAILURE);
-   }
- }
-
-
- if(success_off){
-	 if(!quiet_flag){	
-   printf("success: %s: successfully told RackSwitch to reboot port %d\n",name,pnumb);
-	 }   
-   alarm(0);
-   exit_status = DID_SUCCESS;
- }
- return(exit_status);
-}
-/* And that is it. There is no more.
- * Maybe there  should be more?
- * Or maybe not?
- * But there is no more
- */
diff --git a/fence/agents/rackswitch/do_rack.h b/fence/agents/rackswitch/do_rack.h
deleted file mode 100644
index 63c1365..0000000
--- a/fence/agents/rackswitch/do_rack.h
+++ /dev/null
@@ -1,27 +0,0 @@
-
-#include <unistd.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <limits.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <ctype.h>
-
-#include <sys/socket.h>
-#include <sys/types.h>
-
-#include <arpa/inet.h>
-
-#include <signal.h>
-
-#include "copyright.cf"
-
-#define SA struct sockaddr
-
-
-#define MAXBUF 1200
-
-#define DID_SUCCESS 0
-#define DID_FAILURE 1 
-
diff --git a/fence/agents/rackswitch/fence_rackswitch.8 b/fence/agents/rackswitch/fence_rackswitch.8
deleted file mode 100644
index fc64a79..0000000
--- a/fence/agents/rackswitch/fence_rackswitch.8
+++ /dev/null
@@ -1,70 +0,0 @@
-.TH fence_rackswitch 8
-
-.SH NAME
-fence_rackswitch - I/O Fencing agent for RackSaver RackSwitch
-
-.SH SYNOPSIS
-.B
-fence_rackswitch
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_rackswitch is an I/O Fencing agent which can be used with the RackSaver 
-RackSwitch.  It logs into the RackSwitch and boots a specified plug.
-Using the http interface to the RackSwitch should be avoided while a GFS cluster is 
-running because the connection may interfere with the operation of this agent.
-
-fence_rackswitch accepts options on the command line as well as from stdin.  
-fenced sends the options through stdin when it execs the agent.  fence_rackswitch 
-can be run by itself with command line options which is useful for testing.
-
-Vendor URL: http://www.bladenetwork.net
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fP
-IP address of the switch.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-n\fP \fIplug\fP
-The plug number to power cycle.
-.TP
-\fB-p\fP \fIpassword\fP
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-l\fP \fIusername\fP
-Username for login.
-.TP
-\fB-q\fP
-Quiet operation.  Only print out error messages.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_rackswitch.
-.TP
-\fIipaddr = < ip >\fR
-IP address of the switch.
-.TP
-\fIusername = < param >\fR
-Username for login.
-.TP
-\fIpassword = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-.TP
-\fIport = < param >\fR
-The port (outlet) number to act upon.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/rhevm/Makefile b/fence/agents/rhevm/Makefile
deleted file mode 100644
index 21f1747..0000000
--- a/fence/agents/rhevm/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_rhevm
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/rhevm/fence_rhevm.py b/fence/agents/rhevm/fence_rhevm.py
deleted file mode 100755
index 376e6e3..0000000
--- a/fence/agents/rhevm/fence_rhevm.py
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/usr/bin/python
-
-import sys, re, pexpect, socket
-import pycurl, StringIO
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New RHEV-M Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-
-re_get_id = re.compile("<vm id=\"(.*?)\"", re.IGNORECASE);
-re_status = re.compile("<status>(.*?)</status>", re.IGNORECASE);
-re_get_name = re.compile("<name>(.*?)</name>", re.IGNORECASE); 
-
-def get_power_status(conn, options):
-	### Obtain real ID from name
-	try:
-		res = send_command(options, "vms/?search=name%3D" + options["-n"])
-	except pycurl.error, e:
-		sys.stderr.write(e[1] + "\n")
-		fail(EC_TIMED_OUT)
-
-	result = re_get_id.search(res)
-	if (result == None):
-		# Unable to obtain ID needed to access virtual machine
-		fail(EC_STATUS)
-
-	options["id"] = result.group(1);
-	
-	re_status.search(res)
-	result = re_status.search(res)
-	if (result == None):
-		# We were able to parse ID so output is correct
-		# in some cases it is possible that RHEV-M output does not
-		# contain <status> line. We can assume machine is OFF then
-		return "off"
-	else:
-		status = result.group(1)
-
-	if (status == "RUNNING"):
-		return "on"
-	else:
-		return "off"
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "start",
-		'off' : "stop"
-	}[options["-o"]]
-
-	url = "vms/" + options["id"] + "/" + action
-	try:
-		res = send_command(options, url, "POST")
-	except pycurl.error, e:
-		sys.stderr.write(e[1] + "\n")
-		fail(EC_TIMED_OUT)
-	
-	return
-
-def get_list(conn, options):
-	outlets = { }
-
-	try:
-		try:
-			res = send_command(options, "vms")
-		except pycurl.error, e:
-			sys.stderr.write(e[1] + "\n")
-			fail(EC_TIMED_OUT)	
-
-		lines = res.split("<vm ")
-		for i in range(1, len(lines)):
-			name = re_get_name.search(lines[i]).group(1)
-			outlets[name] = ("", None)
-	except AttributeError:
-		return { }
-	except IndexError:
-		return { }
-
-	return outlets
-
-def send_command(opt, command, method = "GET"):
-	## setup correct URL
-	if opt.has_key("-z"):
-		url = "https:"
-	else:
-		url = "http:"
-
-	url += "//" + opt["-a"] + ":" + str(opt["-u"]) + "/rhevm-api-powershell/" + command
-
-	## send command through pycurl
-	c = pycurl.Curl()
-	b = StringIO.StringIO()
-	c.setopt(pycurl.URL, url)
-	c.setopt(pycurl.HTTPHEADER, [ "Content-type: application/xml", "Accept: application/xml" ])
-	c.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC)
-	c.setopt(pycurl.USERPWD, opt["-l"] + ":" + opt["-p"])
-	c.setopt(pycurl.TIMEOUT, int(opt["-Y"]))
-	c.setopt(pycurl.SSL_VERIFYPEER, 0)
-
-	if (method == "POST"):
-		c.setopt(pycurl.POSTFIELDS, "<action />")
-
-	c.setopt(pycurl.WRITEFUNCTION, b.write)
-	c.perform()
-	result = b.getvalue()
-
-	if opt["log"] >= LOG_MODE_VERBOSE:
-		opt["debug_fh"].write(command + "\n")
-		opt["debug_fh"].write(result + "\n")
-
-	return result
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"ssl", "inet4_only", "inet6_only", "ipport", "port", 
-			"web", "separator", "power_wait", "power_timeout", 
-			"shell_timeout" ]
-
-	atexit.register(atexit_handler)
-
-	all_opt["power_wait"]["default"] = "1"
-	
-	options = check_input(device_opt, process_input(device_opt))
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for RHEV-M REST API"
-	docs["longdesc"] = "fence_rhevm is an I/O Fencing agent which can be \
-used with RHEV-M REST API to fence virtual machines."
-	docs["vendorurl"] = "http://www.redhat.com"
-	show_docs(options, docs)
-
-	##
-	## Fence operations
-	####
-	result = fence_action(None, options, set_power_status, get_power_status, get_list)
-
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/rsa/Makefile b/fence/agents/rsa/Makefile
deleted file mode 100644
index cfbf74b..0000000
--- a/fence/agents/rsa/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_rsa
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/rsa/fence_rsa.py b/fence/agents/rsa/fence_rsa.py
deleted file mode 100644
index 58ab148..0000000
--- a/fence/agents/rsa/fence_rsa.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##  Main GFEP25A & Boot GFBP25A	
-##
-#####
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New RSA2 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	try:
-		conn.send("power state\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-				
-	status = re.compile("Power: (.*)", re.IGNORECASE).search(conn.before).group(1)
-	return status.lower().strip()
-
-def set_power_status(conn, options):
-	try:
-		conn.send("power " + options["-o"] + "\r\n")
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"cmd_prompt", "secure", "identity_file", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	all_opt["login_timeout"]["default"] = 10
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = ">"
-		
-	# This device will not allow us to login even with LANG=C
-	options["ssh_options"] = "-F /dev/null"
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for IBM RSA"
-	docs["longdesc"] = "fence_rsa is an I/O Fencing agent \
-which can be used with the IBM RSA II management interface. It \
-logs into an RSA II device via telnet and reboots the associated \
-machine. Lengthy telnet connections to the RSA II device should \
-be avoided while a GFS cluster is running because the connection \
-will block any necessary fencing actions."
-	docs["vendorurl"] = "http://www.ibm.com"
-	show_docs(options, docs)
-	
-	##
-	## Operate the fencing device
-	######
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status, None)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.sendline("exit")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/rsb/Makefile b/fence/agents/rsb/Makefile
deleted file mode 100644
index 4022513..0000000
--- a/fence/agents/rsb/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_rsb
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/rsb/fence_rsb.8 b/fence/agents/rsb/fence_rsb.8
deleted file mode 100644
index d278271..0000000
--- a/fence/agents/rsb/fence_rsb.8
+++ /dev/null
@@ -1,76 +0,0 @@
-.TH fence_rsb 8
-
-.SH NAME
-fence_rsb - I/O Fencing agent for Fujitsu-Siemens RSB
-
-.SH SYNOPSIS
-.B 
-fence_rsb
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_rsb is an I/O Fencing agent which can be used with the Fujitsu-Siemens
-RSB management interface.  It logs into an RSB device via telnet and reboots
-the associated machine. Lengthy telnet connections to the RSB device 
-should be avoided while a GFS cluster is running because the connection 
-will block any necessary fencing actions.
-
-fence_rsb accepts options on the command line as well as from stdin.  
-Fenced sends parameters through stdin when it execs the agent.  fence_rsb
-can be run by itself with command line options.  This is useful for testing.
-
-Vendor URL: http://www.fujitsu.com
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fR
-IP address or hostname of the RSB device.
-.TP
-\fB-h\fP 
-Print out a help message describing available options, then exit.
-.TP
-\fB-l\fP \fIlogin\fR
-Login name.
-.TP
-\fB-n\fP \fItelnet_port\fR
-The port number on which the telnet service listens.
-.TP
-\fB-o\fP \fIaction\fR
-The action required.  This can be reboot (default), off, on, or status.
-.TP
-\fB-p\fP \fIpassword\fR
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-v\fP
-Verbose.  Print informational messages to standard out.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_rsb.
-.TP
-\fIipaddr = < hostname | ip >\fR
-IP address or hostname of the device.
-.TP
-\fItelnet_port = < port number >\fR
-The port number on which the telnet service listens.
-.TP
-\fIlogin = < param >\fR
-Login name.
-.TP
-\fIoption = < param >\fR
-The action required.  This can be reboot (default), off, on, or status.
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/rsb/fence_rsb.py b/fence/agents/rsb/fence_rsb.py
deleted file mode 100644
index 759ae2d..0000000
--- a/fence/agents/rsb/fence_rsb.py
+++ /dev/null
@@ -1,408 +0,0 @@
-#!/usr/bin/python
-
-import getopt, sys
-import os
-import socket
-import time
-import atexit
-
-from telnetlib import Telnet
-
-TELNET_TIMEOUT=30 #How long to wait for a response from a telnet try
-MAX_TRIES = 20
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION=""
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-def usage():
-  print "Usage:"
-  print "fence_rsb [options]"
-  print "Options:"
-  print "   -a <ipaddress>           ip or hostname of rsb"
-  print "   -h                       print out help"
-  print "   -l [login]               login name"
-  print "   -n [telnet port]         telnet port"
-  print "   -p [password]            password"
-  print "   -S [path]                script to run to retrieve password"
-  print "   -o [action]              reboot (default), off, on, or status"
-  print "   -v Verbose               Verbose mode"
-  print "   -V                       Print Version, then exit"
-
-  sys.exit (0)
-
-def version():
-  print "fence_rsb %s  %s\n" % (RELEASE_VERSION, BUILD_DATE)
-  print "%s\n" % REDHAT_COPYRIGHT
-  sys.exit(0)
-
-def atexit_handler():
-	try:
-		sys.stdout.close()
-		os.close(1)
-	except IOError:
-		sys.stderr.write("%s failed to close standard output\n"%(sys.argv[0]))
-		sys.exit(1)
-
-def main():
-  depth = 0
-  POWER_OFF = 0
-  POWER_ON = 1
-  POWER_STATUS = 2
-  POWER_REBOOT = 3
-
-  STATUS_ON = 0
-  STATUS_OFF = 2
-
-  power_command_issued = 0 
-
-  address = ""
-  login = ""
-  passwd = ""
-  passwd_script = ""
-  action = POWER_REBOOT   #default action
-  telnet_port = 3172
-  verbose = False
-  power_state = None
-
-  standard_err = 2
-
-  result = 0
-
-  completed_action = 0
-
-  #set up regex list
-  USERNAME = 0
-  PASSWORD = 1
-  PROMPT = 2
-  STATE = 3
-  ERROR = 4
-  CONT = 5
-  CONFIRM = 6
-  DONE = 7
-
-  regex_list = list()
-  regex_list.append("user name\s*:")
-  regex_list.append("pass phrase\s*:")
-  regex_list.append("[Ee]nter\s+[Ss]election[^\r\n]*:")
-  regex_list.append("[pP]ower Status\s*:")
-  regex_list.append("[Ee]rror\s*:")
-  regex_list.append("[Pp]ress any key to continue")
-  regex_list.append("really want to")
-  regex_list.append("CLOSING TELNET CONNECTION")
-
-  atexit.register(atexit_handler)
-
-  if len(sys.argv) > 1:
-    try:
-      opts, args = getopt.getopt(sys.argv[1:], "a:hl:n:o:p:S:vV", ["help", "output="])
-    except getopt.GetoptError:
-      #print help info and quit
-      usage()
-      sys.exit(2)
-
-    for o, a in opts:
-      if o == "-v":
-        verbose = True
-      if o == "-V":
-        version()
-      if o in ("-h", "--help"):
-        usage()
-        sys.exit(0)
-      if o == "-l":
-        login = a
-      if o == "-n":
-        telnet_port = a
-      if o == "-p":
-        passwd = a
-      if o == "-S":
-        passwd_script = a
-      if o  == "-o":
-        a_lower=a.lower()
-        if a_lower == "off":
-          action = POWER_OFF
-        elif a_lower == "on":
-          action = POWER_ON
-        elif a_lower == "status":
-          action = POWER_STATUS
-        elif a_lower == "reboot":
-          action = POWER_REBOOT
-        else:
-          usage()
-          sys.exit(1)
-      if o == "-a":
-        address = a
-    if address == "" or login == "" or (passwd == "" and passwd_script == ""):
-      usage()
-      sys.exit(1)
-
-  else: #Take args from stdin...
-    params = {}
-    #place params in dict
-    for line in sys.stdin:
-      val = line.split("=")
-      if len(val) == 2:
-        params[val[0].strip()] = val[1].strip()
-
-    try:
-      address = params["ipaddr"]
-    except KeyError, e:
-      os.write(standard_err, "FENCE: Missing ipaddr param for fence_rsb...exiting")
-      sys.exit(1)
-    
-    try:
-      login = params["login"]
-    except KeyError, e:
-      os.write(standard_err, "FENCE: Missing login param for fence_rsb...exiting")
-      sys.exit(1)
-    
-    try:
-      if 'passwd' in params:
-        passwd = params["passwd"]
-      if 'passwd_script' in params:
-        passwd_script = params['passwd_script']
-      if passwd == "" and passwd_script == "":
-        raise Exception, "missing password"
-    except KeyError, e:
-      os.write(standard_err, "FENCE: Missing passwd param for fence_rsb...exiting")
-      sys.exit(1)
-    
-    try:
-      telnet_port = params["telnet_port"]
-    except KeyError, e:
-      pass
-
-    try:
-      a = params["option"]
-      a_lower=a.lower()
-      if a_lower == "off":
-        action = POWER_OFF
-      elif a_lower == "on":
-        action = POWER_ON
-      elif a_lower == "reboot":
-        action = POWER_REBOOT
-    except KeyError, e:
-      action = POWER_REBOOT
-
-    ####End of stdin section
-  
-  
-  # retrieve passwd from passwd_script (if specified)
-  passwd_scr = ''
-  if len(passwd_script):
-    try:
-      if not os.access(passwd_script, os.X_OK):
-        raise Exception, 'script not executable'
-      p = os.popen(passwd_script, 'r', 1024)
-      passwd_scr = p.readline().strip()
-      if p.close() != None:
-        raise Exception, 'script failed'
-    except:
-      sys.stderr.write('password-script "%s" failed\n' % passwd_script)
-      passwd_scr = ''
-  
-  if passwd == "" and passwd_scr == "":
-    sys.stderr.write('password not available, exiting...')
-    sys.exit(1)
-  elif passwd == passwd_scr:
-    pass
-  elif passwd and passwd_scr:
-    # execute self, with password_scr as passwd,
-    # if that fails, continue with "passwd" argument as password
-    if len(sys.argv) > 1:
-      comm = sys.argv[0]
-      skip_next = False
-      for w in sys.argv[1:]:
-        if skip_next:
-          skip_next = False
-        elif w in ['-p', '-S']:
-          skip_next = True
-        else:
-          comm += ' ' + w
-      comm += ' -p ' + passwd_scr
-      ret = os.system(comm)
-      if ret != -1 and os.WIFEXITED(ret) and os.WEXITSTATUS(ret) == 0:
-        # success
-        sys.exit(0)
-      else:
-        sys.stderr.write('Use of password from "passwd_script" failed, trying "passwd" argument\n')
-    else: # use stdin
-      p = os.popen(sys.argv[0], 'w', 1024)
-      for par in params:
-        if par not in ['passwd', 'passwd_script']:
-          p.write(par + '=' + params[par] + '\n')
-      p.write('passwd=' + passwd_scr + '\n')
-      p.flush()
-      if p.close() == None:
-        # success
-        sys.exit(0)
-      else:
-        sys.stderr.write('Use of password from "passwd_script" failed, trying "passwd" argument\n')
-  elif passwd_scr:
-    passwd = passwd_scr
-  # passwd all set
-  
-  
-  
-  try:
-    telnet_port = int(telnet_port)
-  except:
-    os.write(standard_err, ("FENCE: Invalid telnet port: %s\n" % telnet_port))
-    sys.exit(1)
-    
-  ##Time to open telnet session and log in. 
-  try:
-    sock = Telnet(address.strip(), telnet_port)
-  except socket.error, (errno, msg):
-    my_msg = "FENCE: A problem was encountered opening a telnet session with " + address
-    os.write(standard_err, my_msg)
-    os.write(standard_err, ("FENCE: Error number: %d -- Message: %s\n" % (errno, msg)))
-    os.write(standard_err, "Firewall issue? Correct address?\n")
-    sys.exit(1)
-
-  if verbose:
-    #sock.set_debuglevel(10000)
-    print  "socket open to %s %d\n" % (address, telnet_port)
-
-  tries = MAX_TRIES
-  while 1:
-    i, mo, txt = sock.expect(regex_list, TELNET_TIMEOUT)
-    if i == ERROR:
-      os.write(standard_err,("FENCE: An error was encountered when communicating with the rsb device at %s" % address))
-      buf = sock.read_eager()
-      os.write(standard_err,("FENCE: The error message is - %s" % txt + " " + buf))
-      sock.close()
-      sys.exit(1)
-
-    try:
-      buf = sock.read_eager()
-    except EOFError:
-      if completed_action == 1:
-      	# action was completed succesfully, connection closed is OK
-        sys.exit(result)
-      else:
-        raise
-	         
-    if i == USERNAME:
-      if verbose:
-        print "Sending login: %s\n" % login
-      sock.write(login + "\r")
-
-    elif i == PASSWORD:
-      if verbose:
-        print "Sending password: %s\n" % passwd
-      sock.write(passwd + "\r")
-
-    elif i == CONT:
-      if verbose:
-        print "Sending continue char..."
-      sock.write("\r")
-      time.sleep(2)
-
-    elif i == CONFIRM:
-      if verbose:
-        print "Confirming..."
-      sock.write("yes\r")
-
-    elif i == PROMPT:
-      if verbose:
-        print "Evaluating prompt...\n"
-
-      if depth == 0:
-        sock.write("2\r")
-        depth += 1
-      elif depth == 1:
-        if action == POWER_OFF or action == POWER_REBOOT:
-          if power_command_issued == 0:
-            if verbose:
-              print "Sending power off %s" % address
-            sock.write("1\r")
-            power_command_issued += 1
-            time.sleep(2)
-          elif power_command_issued and power_state == 0:
-            if verbose:
-              print "Power off was successful"
-            if action == POWER_OFF:
-              completed_action = 1
-              depth += 1
-              sock.write("0\r")
-            else:
-              action = POWER_ON
-              power_command_issued = 0
-              sock.write("\r")
-          elif tries > 0:
-            if verbose:
-              print "Waiting for power off to complete"
-            tries -= 1
-            sock.write("\r")
-            time.sleep(2)
-          else:
-            os.write(standard_err, "FENCE: Unable to power off server")
-            depth += 1
-            sock.write("0\r")
-
-        elif action == POWER_ON:
-          if power_command_issued == 0:
-            if verbose:
-              print "Sending power on %s" % address
-            sock.write("4\r")
-            power_command_issued += 1
-            time.sleep(2)
-          elif power_command_issued and power_state == 1:
-            if verbose:
-              print "Power on was successful"
-            completed_action = 1
-            depth += 1
-            sock.write("0\r")
-          elif tries > 0:
-            if verbose:
-              print "Waiting for power on to complete"
-            tries -= 1
-            sock.write("\r")
-            time.sleep(2)
-          else:
-            os.write(standard_err, "FENCE: Unable to power on server")
-            depth += 1
-            sock.write("0\r")
-      else:
-        sock.write("0\r")
-
-    elif i == STATE:
-      if buf.find(" On") != (-1):
-        power_state = 1
-      elif buf.find(" Off") != (-1):
-        power_state = 0
-      else:
-        power_state = None
-
-      if action == POWER_STATUS:
-        if verbose:
-          print "Determining power state..."
-        if power_state == 1:
-          print "Server is On"
-          result = STATUS_ON
-        elif power_state == 0:
-          print "Server is Off"
-          result = STATUS_OFF
-        else:
-          os.write(standard_err, ("FENCE: Cannot determine power state: %s" % buf))
-          sys.exit(1)
-        depth = 2
-        completed_action = 1
-
-    elif i == DONE:
-      break
-
-    else:
-      sock.write("\r")
-
-  sock.close()
-  sys.exit(result)
-
-if __name__ == "__main__":
-  main()
diff --git a/fence/agents/sanbox2/Makefile b/fence/agents/sanbox2/Makefile
deleted file mode 100644
index 19ec5db..0000000
--- a/fence/agents/sanbox2/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_sanbox2
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/sanbox2/fence_sanbox2.py b/fence/agents/sanbox2/fence_sanbox2.py
deleted file mode 100644
index 47f3bc8..0000000
--- a/fence/agents/sanbox2/fence_sanbox2.py
+++ /dev/null
@@ -1,167 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  Version            Firmware
-## +-----------------+---------------------------+
-#####
-
-import sys, re, pexpect
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New Sanbox2 Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	status_trans = {
-		'online' : "on",
-		'offline' : "off"
-	}
-	try:
-		conn.send("show port " + options["-n"] + "\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		try:
-			conn.send("admin end\n")
-			conn.send("exit\n")
-			conn.close()
-		except:
-			pass
-		fail(EC_TIMED_OUT)
-	
-	status = re.compile(".*AdminState\s+(online|offline)\s+", re.IGNORECASE | re.MULTILINE).search(conn.before).group(1)
-
-	try:
-		return status_trans[status.lower().strip()]
-	except KeyError:
-		return "PROBLEM"
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "online",
-		'off' : "offline"
-	}[options["-o"]]
-
-        try:
-        	conn.send("set port " + options["-n"] + " state " + action + "\n")
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		try:
-			conn.send("admin end\n")
-			conn.send("exit\n")
-			conn.close()
-		except:
-			pass
-		fail(EC_TIMED_OUT)                                                                         	
-
-	try:
-		conn.send("set port " + options["-n"] + " state " + action + "\n")
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		try:
-			conn.send("admin end\n")
-			conn.send("exit\n")
-			conn.close()
-		except:
-			pass
-		fail(EC_TIMED_OUT)
-
-def get_list_devices(conn, options):
-	outlets = { }
-
-	try:
-		conn.send("show port" + "\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-
-		list_re = re.compile("^\s+(\d+?)\s+(Online|Offline)\s+", re.IGNORECASE)
-		for line in conn.before.splitlines():
-			if (list_re.search(line)):
-				status = {
-					'online' : "ON",
-					'offline' : "OFF"
-				}[list_re.search(line).group(2).lower()]
-				outlets[list_re.search(line).group(1)] = ("", status)
-
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		try:
-			conn.send("admin end\n")
-			conn.send("exit\n")
-			conn.close()
-		except:
-			pass
-		fail(EC_TIMED_OUT)
-		
-	return outlets
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"io_fencing", "ipaddr", "login", "passwd", "passwd_script",
-			"cmd_prompt", "port", "ipport", "login_eol_lf", "separator",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = [ " #> " ]
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for QLogic SANBox2 FC switches"
-	docs["longdesc"] = "fence_sanbox2 is an I/O Fencing agent which can be used with \
-QLogic SANBox2 FC switches.  It logs into a SANBox2 switch via telnet and disables a specified \
-port. Disabling  the port which a machine is connected to effectively fences that machine. \
-Lengthy telnet connections to the switch should be avoided while a GFS cluster is running \
-because the connection will block any necessary fencing actions."
-	docs["vendorurl"] = "http://www.qlogic.com"
-	show_docs(options, docs)
-
-	##
-	## Operate the fencing device
-	##
-	conn = fence_login(options)
-
-	conn.send("admin start\n")
-	conn.log_expect(options, options["-c"], int(options["-Y"]))
-
-	if (re.search("\(admin\)", conn.before, re.MULTILINE) == None):
-		## Someone else is in admin section, we can't enable/disable
-		## ports so we will rather exit
-		sys.stderr.write("Failed: Unable to switch to admin section\n")
-		sys.exit(EC_GENERIC_ERROR)
-
-	result = fence_action(conn, options, set_power_status, get_power_status, get_list_devices)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.send("admin end\n")
-		conn.send("exit\n")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/scsi/Makefile b/fence/agents/scsi/Makefile
deleted file mode 100644
index 17f31ef..0000000
--- a/fence/agents/scsi/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_scsi
-SBINDIRT=fence_scsi
-
-include $(OBJDIR)/make/fencebuild.mk
-
diff --git a/fence/agents/scsi/fence_scsi.8 b/fence/agents/scsi/fence_scsi.8
deleted file mode 100644
index f1a29ea..0000000
--- a/fence/agents/scsi/fence_scsi.8
+++ /dev/null
@@ -1,109 +0,0 @@
-.TH fence_scsi 8
-
-.SH NAME
-fence_scsi - I/O fencing agent for SCSI persistent reservations
-
-.SH SYNOPSIS
-.B
-fence_scsi
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_scsi is an I/O fencing agent that uses SCSI-3 persistent
-reservations to control access to shared storage devices. These
-devices must support SCSI-3 persistent reservations (SPC-3 or greater)
-as well as the "preempt-and-abort" subcommand.
-
-The fence_scsi agent works by having each node in the cluster register
-a unique key with the SCSI devive(s). Once registered, a single node
-will become the reservation holder by creating a "write exclusive,
-registrants only" reservation on the device(s). The result is that
-only registered nodes may write to the device(s). When a node failure
-occurs, the fence_scsi agent will remove the key belonging to the
-failed node from the device(s). The failed node will no longer be able
-to write to the device(s). A manual reboot is required.
-
-Keys are either be specified manually (see -k option) or generated
-automatically (see -n option). Automatic key generation requires that
-cman be running. Keys will then be generated using the cluster ID and
-node ID such that each node has a unique key that can be determined by
-any other node in the cluster.
-
-Devices can either be specified manually (see -d option) or discovered
-automatically. Multiple devices can be specified manually by using a
-comma-separated list. If no devices are specified, the fence_scsi
-agent will attempt to discover devices by looking for cluster volumes
-and extracting the underlying devices. Devices may be device-mapper
-multipath devices or raw devices. If using a device-mapper multipath
-device, the fence_scsi agent will find the underlying devices (paths)
-and created registrations for each path.
-
-.SH OPTIONS
-.TP
-\fB-o\fP \fIaction\fR
-Fencing action. This value can be "on", "off", or "status". All
-actions require either a key (see -k option) or node name (see -n
-option). For "on", the agent will attempt to register with the
-device(s) and create a reservation if none exists. The "off" action
-will attempt to remove a node's key from the device(s). The "status"
-action will report whether or not a node's key is currently register
-with one or more of the devices. The default action if "off".
-.TP
-\fB-d\fP \fIdevices\fR
-List of devices to use for current operation. Devices can be
-comma-separated list of raw device (eg. /dev/sdc) or device-mapper
-multipath devices (eg. /dev/dm-3). Each device must support SCSI-3
-persistent reservations.
-.TP
-\fB-f\fP \fIlogfile\fR
-Log output to file.
-.TP
-\fB-n\fP \fInodename\fR
-Name of the node to be fenced. The node name is used to generate the
-key value used for the current operation. This option will be ignored
-when used with the -k option.
-.TP
-\fB-k\fP \fIkey\fR
-Key to use for the current operation. This key should be unique to a
-node. For the "on" action, the key specifies the key use to register
-the local node. For the "off" action, this key specifies the key to be
-removed from the device(s).
-.TP
-\fB-a\fP
-Use the APTPL flag for registrations. This option is only used for the
-"on" action.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-v\fP
-Verbose output.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = "param"\fR
-This option is used by fence_node(8) and is ignored by fence_scsi.
-.TP
-\fInodename = "param"\fR
-Same as -n option.
-.TP
-\fIaction = "param" \fR
-Same as -o option.
-.TP
-\fIdevices = "param"\fR
-Same as -d option.
-.TP
-\fIlogfile = "param"\fR
-Same as -f option
-.TP
-\fIkey = "param"\fR
-Same as -k option.
-.TP
-\fIaptpl = "1"
-Enable the APTPL flag. Default is 0 (disable).
-
-.SH SEE ALSO
-fence(8), fence_node(8), sg_persist(8), vgs(8), cman_tool(8), cman(5)
diff --git a/fence/agents/scsi/fence_scsi.pl b/fence/agents/scsi/fence_scsi.pl
deleted file mode 100644
index 9ee8917..0000000
--- a/fence/agents/scsi/fence_scsi.pl
+++ /dev/null
@@ -1,659 +0,0 @@
-#!/usr/bin/perl
-
-use File::Basename;
-use Getopt::Std;
-use POSIX;
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-my $ME = fileparse ($0, ".pl");
-
-################################################################################
-
-sub log_debug ($)
-{
-    my $time = strftime "%b %e %T", localtime;
-    my ($msg) = @_;
-
-    print STDOUT "$time $ME: [debug] $msg\n" unless defined ($opt_q);
-
-    return;
-}
-
-sub log_error ($)
-{
-    my $time = strftime "%b %e %T", localtime;
-    my ($msg) = @_;
-
-    print STDERR "$time $ME: [error] $msg\n" unless defined ($opt_q);
-
-    exit (1);
-}
-
-sub do_action_on ($@)
-{
-    my $self = (caller(0))[3];
-    my ($node_key, @devices) = @_;
-
-    key_write ($node_key);
-
-    foreach $dev (@devices) {
-	log_error ("device $dev does not exist") if (! -e $dev);
-	log_error ("device $dev is not a block device") if (! -b $dev);
-
-	do_register_ignore ($node_key, $dev);
-
-	if (!get_reservation_key ($dev)) {
-	    do_reserve ($node_key, $dev);
-	}
-    }
-
-    return;
-}
-
-sub do_action_off ($@)
-{
-    my $self = (caller(0))[3];
-    my ($node_key, @devices) = @_;
-
-    my $host_key = key_read ();
-
-    if ($host_key eq $node_key) {
-	log_error ($self);
-    }
-
-    foreach $dev (@devices) {
-	log_error ("device $dev does not exist") if (! -e $dev);
-	log_error ("device $dev is not a block device") if (! -b $dev);
-
-	my @keys = grep { /$node_key/ } get_registration_keys ($dev);
-
-	if (scalar (@keys) != 0) {
-	    do_preempt_abort ($host_key, $node_key, $dev);
-	}
-    }
-
-    return;
-}
-
-sub do_action_status ($@)
-{
-    my $self = (caller(0))[3];
-    my ($node_key, @devices) = @_;
-
-    my $dev_count = 0;
-    my $key_count = 0;
-
-    foreach $dev (@devices) {
-	log_error ("device $dev does not exist") if (! -e $dev);
-	log_error ("device $dev is not a block device") if (! -b $dev);
-
-	my @keys = grep { /$node_key/ } get_registration_keys ($dev);
-
-	if (scalar (@keys) != 0) {
-	    $dev_count++;
-	}
-    }
-
-    if ($dev_count != 0) {
-	exit (0);
-    }
-    else {
-	exit (2);
-    }
-}
-
-sub do_register ($$$)
-{
-    my $self = (caller(0))[3];
-    my ($host_key, $node_key, $dev) = @_;
-
-    if (substr ($dev, 5) =~ /^dm/) {
-	my @slaves = get_mpath_slaves ($dev);
-	foreach (@slaves) {
-	    do_register ($node_key, $_);
-	}
-	return;
-    }
-
-    log_debug ("$self (host_key=$host_key, node_key=$node_key, dev=$dev)");
-
-    my $cmd;
-    my $out;
-
-    $cmd = "sg_persist -n -o -G -K $host_key -S $node_key -d $dev";
-    $cmd .= " -Z" if (defined $opt_a);
-    $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    return;
-}
-
-sub do_register_ignore ($$)
-{
-    my $self = (caller(0))[3];
-    my ($node_key, $dev) = @_;
-
-    if (substr ($dev, 5) =~ /^dm/) {
-	my @slaves = get_mpath_slaves ($dev);
-	foreach (@slaves) {
-	    do_register_ignore ($node_key, $_);
-	}
-	return;
-    }
-
-    log_debug ("$self (node_key=$node_key, dev=$dev)");
-
-    my $cmd;
-    my $out;
-
-    $cmd = "sg_persist -n -o -I -S $node_key -d $dev";
-    $cmd .= " -Z" if (defined $opt_a);
-    $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    return;
-}
-
-sub do_reserve ($$)
-{
-    my $self = (caller(0))[3];
-    my ($host_key, $dev) = @_;
-
-    log_debug ("$self (host_key=$host_key, dev=$dev)");
-
-    my $cmd = "sg_persist -n -o -R -T 5 -K $host_key -d $dev";
-    my $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    return;
-}
-
-sub do_release ($$)
-{
-    my $self = (caller(0))[3];
-    my ($host_key, $dev) = @_;
-
-    log_debug ("$self (host_key=$host_key, dev=$dev)");
-
-    my $cmd = "sg_persist -n -o -L -T 5 -K $host_key -d $dev";
-    my $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    return;
-}
-
-sub do_preempt ($$$)
-{
-    my $self = (caller(0))[3];
-    my ($host_key, $node_key, $dev) = @_;
-
-    log_debug ("$self (host_key=$host_key, node_key=$node_key, dev=$dev)");
-
-    my $cmd = "sg_persist -n -o -P -T 5 -K $host_key -S $node_key -d $dev";
-    my $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    return;
-}
-
-sub do_preempt_abort ($$$)
-{
-    my $self = (caller(0))[3];
-    my ($host_key, $node_key, $dev) = @_;
-
-    log_debug ("$self (host_key=$host_key, node_key=$node_key, dev=$dev)");
-
-    my $cmd = "sg_persist -n -o -A -T 5 -K $host_key -S $node_key -d $dev";
-    my $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    return;
-}
-
-sub key_read ()
-{
-    my $self = (caller(0))[3];
-    my $key;
-
-    open (\*FILE, "</var/lib/cluster/fence_scsi.key") or die "$!\n";
-    chomp ($key = <FILE>);
-    close (FILE);
-
-    return ($key);
-}
-
-sub key_write ($)
-{
-    my $self = (caller(0))[3];
-
-    open (\*FILE, ">/var/lib/cluster/fence_scsi.key") or die "$!\n";
-    print FILE "$_[0]\n";
-    close (FILE);
-
-    return;
-}
-
-sub get_key ($)
-{
-    my $self = (caller(0))[3];
-
-    my $key = sprintf ("%.4x%.4x", get_cluster_id (), get_node_id ($_[0]));
-
-    return ($key);
-}
-
-sub get_node_id ($)
-{
-    my $self = (caller(0))[3];
-    my $node_id;
-
-    my $cmd = "cman_tool nodes -n $_[0] -F id";
-    my $out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    chomp ($out);
-
-    $node_id = $out;
-
-    return ($node_id);
-}
-
-sub get_cluster_id ()
-{
-    my $self = (caller(0))[3];
-    my $cluster_id;
-
-    my $cmd = "cman_tool status";
-    my @out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    foreach (@out) {
-	chomp;
-	my ($param, $value) = split (/\s*:\s*/, $_);
-	if ($param =~ /^cluster\s+id/i) {
-	    $cluster_id = $value;
-	}
-    }
-
-    return ($cluster_id);
-}
-
-sub get_devices_clvm ()
-{
-    my $self = (caller(0))[3];
-    my @devices;
-
-    my $cmd = "vgs --noheadings " .
-	"    --separator : " .
-	"    --sort pv_uuid " .
-	"    --options vg_attr,pv_name " .
-	"    --config 'global { locking_type = 0 } " .
-	"              devices { preferred_names = [ \"^/dev/dm\" ] }'";
-
-    my @out = qx { $cmd 2> /dev/null };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    foreach (@out) {
-	chomp;
-	my ($vg_attr, $pv_name) = split (/:/, $_);
-	if ($vg_attr =~ /c$/) {
-	    push (@devices, $pv_name);
-	}
-    }
-
-    return (@devices);
-}
-
-sub get_devices_scsi ()
-{
-    my $self = (caller(0))[3];
-    my @devices;
-
-    opendir (\*DIR, "/sys/block/") or die "$!\n";
-    @devices = grep { /^sd/ } readdir (DIR);
-    closedir (DIR);
-
-    return (@devices);
-}
-
-sub get_mpath_name ($)
-{
-    my $self = (caller(0))[3];
-    my ($dev) = @_;
-    my $name;
-
-    if ($dev =~ /^\/dev\//) {
-	$dev = substr ($dev, 5);
-    }
-
-    open (\*FILE, "/sys/block/$dev/dm/name") or die "$!\n";
-    chomp ($name = <FILE>);
-    close (FILE);
-
-    return ($name);
-}
-
-sub get_mpath_uuid ($)
-{
-    my $self = (caller(0))[3];
-    my ($dev) = @_;
-    my $uuid;
-
-    if ($dev =~ /^\/dev\//) {
-	$dev = substr ($dev, 5);
-    }
-
-    open (\*FILE, "/sys/block/$dev/dm/uuid") or die "$!\n";
-    chomp ($uuid = <FILE>);
-    close (FILE);
-
-    return ($name);
-}
-
-sub get_mpath_slaves ($)
-{
-    my $self = (caller(0))[3];
-    my ($dev) = @_;
-    my @slaves;
-
-    if ($dev =~ /^\/dev\//) {
-	$dev = substr ($dev, 5);
-    }
-
-    opendir (\*DIR, "/sys/block/$dev/slaves/") or die "$!\n";
-
-    @slaves = grep { !/^\./ } readdir (DIR);
-    if ($slaves[0] =~ /^dm/) {
-	@slaves = get_mpath_slaves ($slaves[0]);
-    } else {
-	@slaves = map { "/dev/$_" } @slaves;
-    }
-
-    closedir (DIR);
-
-    return (@slaves);
-}
-
-sub get_registration_keys ($)
-{
-    my $self = (caller(0))[3];
-    my ($dev) = @_;
-    my @keys;
-
-    my $cmd = "sg_persist -n -i -k -d $dev";
-    my @out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    foreach (@out) {
-	chomp;
-	if ($_ =~ s/^\s+0x//i) {
-	    push (@keys, $_);
-	}
-    }
-
-    return (@keys);
-}
-
-sub get_reservation_key ($)
-{
-    my $self = (caller(0))[3];
-    my ($dev) = @_;
-    my $key;
-
-    my $cmd = "sg_persist -n -i -r -d $dev";
-    my @out = qx { $cmd };
-
-    die "[error]: $self\n" if ($?>>8);
-
-    foreach (@out) {
-	chomp;
-	if ($_ =~ s/^\s+key=0x//i) {
-	    $key = $_;
-	    last;
-	}
-    }
-
-    return ($key)
-}
-
-sub get_options_stdin ()
-{
-    my $num = 0;
-
-    while (<STDIN>) {
-	chomp;
-	s/^\s*//;
-	s/\s*$//;
-
-	next if (/^#/);
-
-	$num++;
-
-	next unless ($_);
-
-	my ($opt, $arg) = split (/\s*=\s*/, $_);
-
-	if ($opt eq "") {
-	    exit (1);
-	}
-	elsif ($opt eq "aptpl") {
-	    $opt_a = $arg;
-	}
-	elsif ($opt eq "devices") {
-	    $opt_d = $arg;
-	}
-	elsif ($opt eq "logfile") {
-	    $opt_f = $arg;
-	}
-	elsif ($opt eq "key") {
-	    $opt_k = $arg;
-	}
-	elsif ($opt eq "nodename") {
-	    $opt_n = $arg;
-	}
-	elsif ($opt eq "action") {
-	    $opt_o = $arg;
-	}
-    }
-}
-
-sub print_usage ()
-{
-    print "Usage:\n";
-    print "\n";
-    print "$ME [options]\n";
-    print "\n";
-    print "Options:\n";
-    print "  -a               Use APTPL flag\n";
-    print "  -d <devices>     Devices to be used for action\n";
-    print "  -f <logfile>     File to write debug/error output\n";
-    print "  -h               Usage\n";
-    print "  -k <key>         Key to be used for current action\n";
-    print "  -n <nodename>    Name of node to operate on\n";
-    print "  -o <action>      Action: off (default), on, or status\n";
-    print "  -q               Quiet mode\n";
-    print "  -V               Version\n";
-
-    exit (0);
-}
-
-sub print_version ()
-{
-    print "$ME $RELEASE_VERSION $BUILD_DATE\n";
-    print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-    exit (0);
-}
-
-sub print_metadata ()
-{
-    print "<?xml version=\"1.0\" ?>\n";
-    print "<resource-agent name=\"fence_scsi\"" .
-          " shortdesc=\"fence agent for SCSI-3 persistent reservations\">\n";
-    print "<longdesc>fence_scsi</longdesc>\n";
-    print "<parameters>\n";
-    print "\t<parameter name=\"aptpl\" unique=\"1\" required=\"0\">\n";
-    print "\t\t<getopt mixed=\"-a\"/>\n";
-    print "\t\t<content type=\"boolean\"/>\n";
-    print "\t\t<shortdesc lang=\"en\">" .
-          "Use APTPL flag for registrations" .
-          "</shortdesc>\n";
-    print "\t</parameter>\n";
-    print "\t<parameter name=\"devices\" unique=\"1\" required=\"0\">\n";
-    print "\t\t<getopt mixed=\"-d\"/>\n";
-    print "\t\t<content type=\"string\"/>\n";
-    print "\t\t<shortdesc lang=\"en\">" .
-          "List of devices to be used for fencing action" .
-          "</shortdesc>\n";
-    print "\t</parameter>\n";
-    print "\t<parameter name=\"logfile\" unique=\"1\" required=\"0\">\n";
-    print "\t\t<getopt mixed=\"-f\"/>\n";
-    print "\t\t<content type=\"string\"/>\n";
-    print "\t\t<shortdesc lang=\"en\">" .
-          "File to write error/debug messages" .
-          "</shortdesc>\n";
-    print "\t</parameter>\n";
-    print "\t<parameter name=\"key\" unique=\"1\" required=\"0\">\n";
-    print "\t\t<getopt mixed=\"-k\"/>\n";
-    print "\t\t<content type=\"string\"/>\n";
-    print "\t\t<shortdesc lang=\"en\">" .
-          "Key value to be used for fencing action" .
-          "</shortdesc>\n";
-    print "\t</parameter>\n";
-    print "\t<parameter name=\"action\" unique=\"1\" required=\"0\">\n";
-    print "\t\t<getopt mixed=\"-o\"/>\n";
-    print "\t\t<content type=\"string\" default=\"off\"/>\n";
-    print "\t\t<shortdesc lang=\"en\">" .
-          "Fencing action" .
-          "</shortdesc>\n";
-    print "\t</parameter>\n";
-    print "\t<parameter name=\"nodename\" unique=\"1\" required=\"0\">\n";
-    print "\t\t<getopt mixed=\"-n\"/>\n";
-    print "\t\t<content type=\"string\"/>\n";
-    print "\t\t<shortdesc lang=\"en\">" .
-          "Name of node" .
-          "</shortdesc>\n";
-    print "\t</parameter>\n";
-    print "</parameters>\n";
-    print "<actions>\n";
-    print "\t<action name=\"on\"/>\n";
-    print "\t<action name=\"off\"/>\n";
-    print "\t<action name=\"status\"/>\n";
-    print "\t<action name=\"metadata\"/>\n";
-    print "</actions>\n";
-    print "</resource-agent>\n";
-
-    exit (0);
-}
-
-################################################################################
-
-if (@ARGV > 0) {
-    getopts ("ad:f:hk:n:o:qV") or print_usage;
-
-    print_usage if (defined $opt_h);
-    print_version if (defined $opt_V);
-
-    ## handle the metadata action here to avoid other parameter checks
-    ##
-    if ($opt_o =~ /^metadata$/i) {
-	print_metadata;
-    }
-}
-else {
-    get_options_stdin ();
-}
-
-## if the logfile (-f) parameter was specified, open the logfile
-## and redirect STDOUT and STDERR to the logfile.
-##
-if (defined $opt_f) {
-    open (LOG, ">>$opt_f") or die "$!\n";
-    open (STDOUT, ">&LOG");
-    open (STDERR, ">&LOG");
-}
-
-## verify that either key or nodename have been specified
-##
-if ((!defined $opt_n) && (!defined $opt_k)) {
-    print_usage ();
-}
-
-## determine key value
-##
-if (defined $opt_k) {
-    $key = $opt_k;
-}
-else {
-    $key = get_key ($opt_n);
-}
-
-## verify that key is not zero
-##
-if ($key == 0) {
-    log_error ("key cannot be zero");
-}
-
-## remove any leading zeros from key
-##
-if ($key =~ /^0/) {
-    $key =~ s/^0+//;
-}
-
-## get devices
-##
-if (defined $opt_d) {
-    @devices = split (/\s*,\s*/, $opt_d);
-}
-else {
-    @devices = get_devices_clvm ();
-}
-
-## verify that device list is not empty
-##
-if (scalar (@devices) == 0) {
-    log_error ("no devices found");
-}
-
-## default action is "off"
-##
-if (!defined $opt_o) {
-    $opt_o = "off";
-}
-
-## determine the action to perform
-##
-if ($opt_o =~ /^on$/i) {
-    do_action_on ($key, @devices);
-}
-elsif ($opt_o =~ /^off$/i) {
-    do_action_off ($key, @devices);
-}
-elsif ($opt_o =~ /^status/i) {
-    do_action_status ($key, @devices);
-}
-else {
-    log_error ("unknown action '$opt_o'");
-    exit (1);
-}
-
-## close the logfile
-##
-if (defined $opt_f) {
-    close (LOG);
-}
diff --git a/fence/agents/virsh/Makefile b/fence/agents/virsh/Makefile
deleted file mode 100644
index 51ef0ca..0000000
--- a/fence/agents/virsh/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_virsh
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/virsh/fence_virsh.py b/fence/agents/virsh/fence_virsh.py
deleted file mode 100644
index 13099da..0000000
--- a/fence/agents/virsh/fence_virsh.py
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/python
-
-# The Following Agent Has Been Tested On:
-#
-# Virsh 0.3.3 on RHEL 5.2 with xen-3.0.3-51
-#
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="Virsh fence agent"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-def get_outlets_status(conn, options):
-	try:
-		conn.sendline("virsh list --all")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-	result={}
-
-        #This is status of mini finite automata. 0 = we didn't found Id and Name, 1 = we did
-        fa_status=0
-
-        for line in conn.before.splitlines():
-	        domain=re.search("^\s*(\S+)\s+(\S+)\s+(\S+).*$",line)
-
-                if (domain!=None):
-			if ((fa_status==0) and (domain.group(1).lower()=="id") and (domain.group(2).lower()=="name")):
-				fa_status=1
-			elif (fa_status==1):
-				result[domain.group(2)]=("",(domain.group(3).lower() in ["running","blocked","idle","no state","paused"] and "on" or "off"))
-	return result
-
-def get_power_status(conn, options):
-	outlets=get_outlets_status(conn,options)
-
-        if (not (options["-n"] in outlets)):
-                fail_usage("Failed: You have to enter existing name of virtual machine!")
-        else:
-                return outlets[options["-n"]][1]
-
-def set_power_status(conn, options):
-	try:
-		conn.sendline("virsh %s "%(options["-o"] == "on" and "start" or "destroy")+options["-n"])
-
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-                time.sleep(1)
-
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"secure", "identity_file", "test", "port", "separator",
-			"inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	pinput = process_input(device_opt)
-	pinput["-x"] = 1
-	options = check_input(device_opt, pinput)
-
-	## Defaults for fence agent
-	if 0 == options.has_key("-c"):
-		options["-c"] = "\[EXPECT\]#\ "
-
-	options["ssh_options"]="-t '/bin/bash -c \"PS1=\[EXPECT\]#\  /bin/bash --noprofile --norc\"'"
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for virsh"
-	docs["longdesc"] = "fence_virsh is an I/O Fencing agent \
-which can be used with the virtual machines managed by libvirt. \
-It logs via ssh to a dom0 and there run virsh command, which does \
-all work. \
-\n.P\n\
-By default, virsh needs root account to do properly work. So you \
-must allow ssh login in your sshd_config."
-	show_docs(options, docs)
-
-	## Operate the fencing device
-	conn = fence_login(options)
-	result = fence_action(conn, options, set_power_status, get_power_status, get_outlets_status)
-
-	## Logout from system
-	try:
-		conn.sendline("quit")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-
-	sys.exit(result)
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/vixel/Makefile b/fence/agents/vixel/Makefile
deleted file mode 100644
index 386cb86..0000000
--- a/fence/agents/vixel/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_vixel
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/vixel/fence_vixel.8 b/fence/agents/vixel/fence_vixel.8
deleted file mode 100644
index 83db14f..0000000
--- a/fence/agents/vixel/fence_vixel.8
+++ /dev/null
@@ -1,72 +0,0 @@
-.TH fence_vixel 8
-
-.SH NAME
-fence_vixel - I/O Fencing agent for Vixel FC switches
-
-.SH SYNOPSIS
-.B
-fence_vixel
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_vixel is an I/O Fencing agent which can be used with Vixel FC switches.
-It logs into a Vixel switch via telnet and removes the specified port from the
-zone.  Removing the zone access from the port disables the port from being able
-to access the storage.  
-
-fence_vixel accepts options on the command line as well as from stdin.
-fenced sends parameters through stdin when it execs the agent.  fence_vixel 
-can be run by itself with command line options which is useful for testing.
-
-After a fence operation has taken place the fenced machine can no longer 
-connect to the Vixel FC switch.  When the fenced machine is ready to be brought
-back into the GFS cluster (after reboot) the port on the Vixel FC switch needs 
-to be enabled. In order to do this, log into the Vixel FC switch. Then go to:
-
-config->zones->config <port> <comma-separated-list-of-ports-in-the-zone>
-
-Then apply
-
-Consult the Vixel manual for details
-
-Vendor URL: http://www.emulex.com
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fP
-IP address of the switch.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-n\fP \fIport\fP
-The port number to remove zoning from on the switch.
-.TP
-\fB-p\fP \fIpassword\fP
-Password for login.
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password for login.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_vixel.
-.TP
-\fIipaddr = < hostname | ip >\fR
-IP address or hostname of the switch.
-.TP
-\fIpasswd = < param >\fR
-Password for login.
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password for login.
-.TP
-\fIport = < param >\fR
-The port number to remove zoning from on the switch.
-
-.SH SEE ALSO
-fence(8), fence_node(8)
diff --git a/fence/agents/vixel/fence_vixel.pl b/fence/agents/vixel/fence_vixel.pl
deleted file mode 100644
index 470d4c7..0000000
--- a/fence/agents/vixel/fence_vixel.pl
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-use Net::Telnet ();
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-sub usage 
-{
-    print "Usage:\n\n"; 
-    print "$pname [options]\n\n";
-    print "Options:\n";
-    print "  -a <ip>          IP address or hostname of switch\n";
-    print "  -h               Usage\n";
-    print "  -n <num>         Port number to disable\n";
-    print "  -p <string>      Password for login\n";
-    print "  -S <path>        Script to run to retrieve login password\n";
-    print "  -V               version\n\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg) = @_;
-  print $msg."\n" unless defined $opt_q;
-  $t->close if defined $t;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg) = @_;
-  print STDERR $msg."\n" if $msg;
-  print STDERR "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-if (@ARGV > 0) {
-    getopts("a:hn:p:S:V") || fail_usage ;
-
-    usage if defined $opt_h;
-    version if defined $opt_V;
-
-    fail_usage "Unknown parameter." if (@ARGV > 0);
-
-    fail_usage "No '-a' flag specified." unless defined $opt_a;
-
-	if (defined $opt_S) {
-		$pwd_script_out = `$opt_S`;
-		chomp($pwd_script_out);
-		if ($pwd_script_out) {
-			$opt_p = $pwd_script_out;
-		}
-	}
-
-    fail_usage "No '-p' or '-S' flag specified." unless defined $opt_p;
-    fail_usage "No '-n' flag specified." unless defined $opt_n;
-
-} else {
-    get_options_stdin();
-
-    fail "failed: no IP address for the Vixel." unless defined $opt_a;
-
-	if (defined $opt_S) {
-		$pwd_script_out = `$opt_S`;
-		chomp($pwd_script_out);
-		if ($pwd_script_out) {
-			$opt_p = $pwd_script_out;
-		}
-	}
-
-    fail "failed: no password provided." unless defined $opt_p;
-    fail "failed: no port number specified." unless defined $opt_n;
-}
-
-#
-# Set up and log in
-#
-
-$t = new Net::Telnet;
-
-$t->open($opt_a);
-
-$t->waitfor('/assword:/');
-
-$t->print($opt_p);
-
-($out, $match)= $t->waitfor(Match => '/\>/', Match => '/assword:/');
-
-if ($match =~ /assword:/) {
-  fail "failed: incorrect password\n";
-} elsif ( $match !~ />/ ) {
-  fail "failed: timed out waiting for prompt\n";
-}
- 
-$t->print("config");
-
-$t->waitfor('/\(config\)\>/');
-
-$t->print("zone");
-
-$t->waitfor('/\(config\/zone\)\>/');
-
-#
-# Do the command
-#
-
-$cmd = "config $opt_n \"\"";
-$t->print($cmd);
-
-$t->waitfor('/\(config\/zone\)\>/');
-
-$t->print("apply");
-
-($text, $match) = $t->waitfor('/\>/');
-if ($text !~ /[Oo][Kk]/) {
-	fail "failed: error from switch\n";
-}
-
-$t->print("exit");
-
-print "success: zonedisable $opt_n\n";
-exit 0;
-
-
-sub get_options_stdin
-{
-	my $opt;
-	my $line = 0;
-
-	while( defined($in = <>) )
-	{
-		$_ = $in;
-		chomp;
-
-		# strip leading and trailing whitespace
-		s/^\s*//;
-		s/\s*$//;
-
-		# skip comments
-		next if /^#/;
-
-		$line+=1;
-		$opt=$_;
-		next unless $opt;
-
-		($name,$val)=split /\s*=\s*/, $opt;
-
-		if ( $name eq "" ) {
-			print("parse error: illegal name in option $line\n");
-			exit 2;
-		} 
-
-		# DO NOTHING -- this field is used by fenced
-		elsif ($name eq "agent" ) { }
-
-		# FIXME -- depricated.  use "port" instead.
-		elsif ($name eq "fm" ) {
-			(my $dummy,$opt_n) = split /\s+/,$val;
-			print STDERR "Depricated \"fm\" entry detected. Refer to man page.\n";
-		} 
-		elsif ($name eq "ipaddr" ) 
-		{
-			$opt_a = $val;
-		} 
-		elsif ($name eq "name" ) { }
-		elsif ($name eq "passwd" ) 
-		{
-			$opt_p = $val;
-		}
-		elsif ($name eq "passwd_script" )
-		{
-			$opt_S = $val;
-		} 
-		elsif ($name eq "port" ) 
-		{
-			$opt_n = $val;
-		} 
-	}
-}
-
diff --git a/fence/agents/vmware/Makefile b/fence/agents/vmware/Makefile
deleted file mode 100644
index e58aa67..0000000
--- a/fence/agents/vmware/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_vmware_helper fence_vmware
-
-MANTARGET= fence_vmware.8
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/vmware/fence_vmware.py b/fence/agents/vmware/fence_vmware.py
deleted file mode 100644
index 99e5ca9..0000000
--- a/fence/agents/vmware/fence_vmware.py
+++ /dev/null
@@ -1,342 +0,0 @@
-#!/usr/bin/python
-
-#
-# The Following agent has been tested on:
-# vmrun 2.0.0 build-116503 (from VMware Server 2.0) against:
-#	VMware ESX 4.0.0
-#	VMware vCenter 4.0.0
-# 	VMware ESX 3.5
-# 	VMware Server 2.0.0
-#	VMware ESXi 3.5 update 2
-# 	VMware Server 1.0.7 (works but list/status show only running VMs)
-#
-# VI Perl API 1.6 against:
-# 	VMware ESX 4.0.0
-#	VMware vCenter 4.0.0
-# 	VMware ESX 3.5
-#	VMware ESXi 3.5 update 2
-# 	VMware Virtual Center 2.5
-#
-# VMware vSphere SDK for Perl 4.0.0 against:
-# 	VMware ESX 4.0.0
-#	VMware vCenter 4.0.0
-#
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="VMware Agent using VI Perl API and/or VIX vmrun command"
-REDHAT_COPYRIGHT=""
-BUILD_DATE=""
-#END_VERSION_GENERATION
-
-### CONSTANTS ####
-# VMware type is ESX/ESXi/VC
-VMWARE_TYPE_ESX=0
-# VMware type is Server 1.x
-VMWARE_TYPE_SERVER1=1
-# VMware type is Server 2.x and/or ESX 3.5 up2, ESXi 3.5 up2, VC 2.5 up2
-VMWARE_TYPE_SERVER2=2
-
-# Minimum required version of vmrun command
-VMRUN_MINIMUM_REQUIRED_VERSION=2
-
-# Default path to vmhelper command
-VMHELPER_COMMAND="fence_vmware_helper"
-# Default path to vmrun command
-VMRUN_COMMAND="/usr/bin/vmrun"
-# Default type of vmware
-VMWARE_DEFAULT_TYPE="esx"
-
-#### GLOBAL VARIABLES ####
-# Internal type. One of VMWARE_TYPE_, set by #vmware_check_vmware_type
-vmware_internal_type=VMWARE_TYPE_ESX
-
-# If ESX is disconnected, say, that VM is off (don't return previous state)
-vmware_disconnected_hack=False
-
-### FUNCTIONS ####
-
-#Split string in simplified DSV format to array of items
-def dsv_split(dsv_str):
-	delimiter_c=':'
-	escape_c='\\'
-
-	res=[]
-	status=0
-	tmp_str=""
-
-	for x in dsv_str:
-		if (status==0):
-			if (x==delimiter_c):
-				res.append(tmp_str)
-				tmp_str=""
-			elif (x==escape_c):
-				status=1
-			else:
-				tmp_str+=x
-		elif (status==1):
-			if (x==delimiter_c):
-				tmp_str+=delimiter_c
-			elif (x==escape_c):
-				tmp_str+=escape_c
-			else:
-				tmp_str+=escape_c+x
-			status=0
-
-	if (tmp_str!=""):
-		res.append(tmp_str)
-
-	return res
-
-# Quote string for proper existence in quoted string used for pexpect.run function
-# Ex. test'this will return test'\''this. So pexpect run will really pass ' to argument
-def quote_for_run(str):
-	dstr=''
-
-	for c in str:
-		if c==r"'":
-			dstr+="'\\''"
-		else:
-			dstr+=c
-
-	return dstr
-
-# Return string with command and additional parameters (something like vmrun -h 'host'
-def vmware_prepare_command(options,add_login_params,additional_params):
-	res=options["-e"]
-
-	if (add_login_params):
-		if (vmware_internal_type==VMWARE_TYPE_ESX):
-			res+=" --server '%s' --username '%s' --password '%s' "%(quote_for_run(options["-a"]),
-										quote_for_run(options["-l"]),
-										quote_for_run(options["-p"]))
-		elif (vmware_internal_type==VMWARE_TYPE_SERVER2):
-			res+=" -h 'https://%s/sdk' -u '%s' -p '%s' -T server "%(quote_for_run(options["-a"]),
-										quote_for_run(options["-l"]),
-										quote_for_run(options["-p"]))
-		elif (vmware_internal_type==VMWARE_TYPE_SERVER1):
-			host_name_array=options["-a"].split(':')
-
-			res+=" -h '%s' -u '%s' -p '%s' -T server1 "%(quote_for_run(host_name_array[0]),
-								     quote_for_run(options["-l"]),
-								     quote_for_run(options["-p"]))
-			if (len(host_name_array)>1):
-				res+="-P '%s' "%(quote_for_run(host_name_array[1]))
-
-	if ((options.has_key("-s")) and (vmware_internal_type==VMWARE_TYPE_ESX)):
-		res+="--datacenter '%s' "%(quote_for_run(options["-s"]))
-
-	if (additional_params!=""):
-		res+=additional_params
-
-	return res
-
-# Log message if user set verbose option
-def vmware_log(options, message):
-	if options["log"] >= LOG_MODE_VERBOSE:
-		options["debug_fh"].write(message+"\n")
-
-# Run command with timeout and parameters. Internaly uses vmware_prepare_command. Returns string
-# with output from vmrun command. If something fails (command not found, exit code is not 0), fail_usage
-# function is called (and never return).
-def vmware_run_command(options,add_login_params,additional_params,additional_timeout):
-	command=vmware_prepare_command(options,add_login_params,additional_params)
-
-	try:
-		vmware_log(options,command)
-
-		(res_output,res_code)=pexpect.run(command,int(options["-Y"])+int(options["-y"])+additional_timeout,True)
-
-		if (res_code==None):
-			fail(EC_TIMED_OUT)
-		if ((res_code!=0) and (add_login_params)):
-			vmware_log(options,res_output)
-			fail_usage("%s returned %s"%(options["-e"],res_output))
-		else:
-			vmware_log(options,res_output)
-
-	except pexpect.ExceptionPexpect:
-		fail_usage("Cannot run command %s"%(options["-e"]))
-
-	return res_output
-
-# Get outlet list with status as hash table. If you will use add_vm_name, only VM with vmname is
-# returned. This is used in get_status function
-def vmware_get_outlets_vi(conn, options, add_vm_name):
-	outlets={}
-
-	if (add_vm_name):
-		all_machines=vmware_run_command(options,True,("--operation status --vmname '%s'"%(quote_for_run(options["-n"]))),0)
-	else:
-		all_machines=vmware_run_command(options,True,"--operation list",int(options["-g"]))
-
-	all_machines_array=all_machines.splitlines()
-
-	for machine in all_machines_array:
-		machine_array=dsv_split(machine)
-		if (len(machine_array)==4):
-			if (machine_array[0] in outlets):
-				fail_usage("Failed. More machines with same name %s found!"%(machine_array[0]))
-
-			if (vmware_disconnected_hack):
-				outlets[machine_array[0]]=("",(
-						((machine_array[2].lower() in ["poweredon"]) and
-						 (machine_array[3].lower()=="connected"))
-						and "on" or "off"))
-			else:
-				outlets[machine_array[0]]=("",((machine_array[2].lower() in ["poweredon"]) and "on" or "off"))
-	return outlets
-
-# Get outlet list with status as hash table.
-def vmware_get_outlets_vix(conn,options):
-	outlets={}
-
-	running_machines=vmware_run_command(options,True,"list",0)
-	running_machines_array=running_machines.splitlines()[1:]
-
-	if (vmware_internal_type==VMWARE_TYPE_SERVER2):
-		all_machines=vmware_run_command(options,True,"listRegisteredVM",0)
-		all_machines_array=all_machines.splitlines()[1:]
-	elif (vmware_internal_type==VMWARE_TYPE_SERVER1):
-		all_machines_array=running_machines_array
-
-	for machine in all_machines_array:
-		if (machine!=""):
-			outlets[machine]=("",((machine in running_machines_array) and "on" or "off"))
-
-	return outlets
-
-def get_outlets_status(conn, options):
-	if (vmware_internal_type==VMWARE_TYPE_ESX):
-		return vmware_get_outlets_vi(conn,options,False)
-	if ((vmware_internal_type==VMWARE_TYPE_SERVER1) or (vmware_internal_type==VMWARE_TYPE_SERVER2)):
-		return vmware_get_outlets_vix(conn,options)
-
-def get_power_status(conn,options):
-	if (vmware_internal_type==VMWARE_TYPE_ESX):
-		outlets=vmware_get_outlets_vi(conn,options,True)
-	else:
-		outlets=get_outlets_status(conn,options)
-
-	if ((vmware_internal_type==VMWARE_TYPE_SERVER2) or (vmware_internal_type==VMWARE_TYPE_ESX)):
-		if (not (options["-n"] in outlets)):
-			fail_usage("Failed: You have to enter existing name of virtual machine!")
-		else:
-			return outlets[options["-n"]][1]
-	elif (vmware_internal_type==VMWARE_TYPE_SERVER1):
-		return ((options["-n"] in outlets) and "on" or "off")
-
-def set_power_status(conn, options):
-	if (vmware_internal_type==VMWARE_TYPE_ESX):
-		additional_params="--operation %s --vmname '%s'"%((options["-o"]=="on" and "on" or "off"),quote_for_run(options["-n"]))
-	elif ((vmware_internal_type==VMWARE_TYPE_SERVER1) or (vmware_internal_type==VMWARE_TYPE_SERVER2)):
-		additional_params="%s '%s'"%((options["-o"]=="on" and "start" or "stop"),quote_for_run(options["-n"]))
-		if (options["-o"]=="off"):
-			additional_params+=" hard"
-
-	vmware_run_command(options,True,additional_params,int(options["-g"]))
-
-# Returns True, if user uses supported vmrun version (currently >=2.0.0) otherwise False.
-def vmware_is_supported_vmrun_version(options):
-	vmware_help_str=vmware_run_command(options,False,"",0)
-	version_re=re.search("vmrun version (\d\.(\d[\.]*)*)",vmware_help_str.lower())
-	if (version_re==None):
-		    return False   # Looks like this "vmrun" is not real vmrun
-
-	version_array=version_re.group(1).split(".")
-
-	try:
-		if (int(version_array[0])<VMRUN_MINIMUM_REQUIRED_VERSION):
-			return False
-	except Exception:
-		return False
-
-	return True
-
-# Define new options
-def vmware_define_defaults():
-	all_opt["vmware_type"]["default"]=VMWARE_DEFAULT_TYPE
-
-# Check vmware type, set vmware_internal_type to one of VMWARE_TYPE_ value and
-# options["-e"] to path (if not specified)
-def vmware_check_vmware_type(options):
-	global vmware_internal_type
-
-	options["-d"]=options["-d"].lower()
-
-	if (options["-d"]=="esx"):
-		vmware_internal_type=VMWARE_TYPE_ESX
-		if (not options.has_key("-e")):
-			options["-e"]=VMHELPER_COMMAND
-	elif (options["-d"]=="server2"):
-		vmware_internal_type=VMWARE_TYPE_SERVER2
-		if (not options.has_key("-e")):
-			options["-e"]=VMRUN_COMMAND
-	elif (options["-d"]=="server1"):
-		vmware_internal_type=VMWARE_TYPE_SERVER1
-		if (not options.has_key("-e")):
-			options["-e"]=VMRUN_COMMAND
-	else:
-		fail_usage("vmware_type can be esx,server2 or server1!")
-
-# Main agent method
-def main():
-	device_opt = [ "help", "version", "agent", "quiet", "verbose", "debug",
-		       "action", "ipaddr", "login", "passwd", "passwd_script",
-		       "test", "port", "separator", "exec", "vmware_type",
-		       "vmware_datacenter", "secure", "identity_file",
-		       "power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	vmware_define_defaults()
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	# Default is secure connection
-	options["-x"] = 1
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for VMWare"
-	docs["longdesc"] = "fence_vmware is an I/O Fencing agent \
-which can be used with the VMware ESX, VMware ESXi or VMware Server \
-to fence virtual machines.\
-\n.P\n\
-Before you can use this agent, it must be installed VI Perl Toolkit or \
-vmrun command on every node you want to make fencing.\
-\n.P\n\
-VI Perl Toolkit is preferred for VMware ESX/ESXi and Virtual Center. Vmrun \
-command is only solution for VMware Server 1/2 (this command will works against \
-ESX/ESXi 3.5 up2 and VC up2 too, but not cluster aware!) and is available as part \
-of VMware VIX API SDK package. VI Perl and VIX API SDK are both available from \
-VMware web pages (not int RHEL repository!). \
-\n.P\n\
-You can specify type of VMware you are connecting to with \\fB-d\\fP switch \
-(or \\fIvmware_type\\fR for stdin). Possible values are esx, server2 and server1.\
-Default value is esx, which will use VI Perl. With server1 and server2, vmrun \
-command is used.\
-\n.P\n\
-After you have successfully installed VI Perl Toolkit or VIX API, you should \
-be able to run fence_vmware_helper (part of this agent) or vmrun command. \
-This agent supports only vmrun from version 2.0.0 (VIX API 1.6.0)."
-	docs["vendorurl"] = "http://www.vmware.com"
-	show_docs(options, docs)
-
-	# Check vmware type and set path
-	vmware_check_vmware_type(options)
-
-	# Test user vmrun command version
-	if ((vmware_internal_type==VMWARE_TYPE_SERVER1) or (vmware_internal_type==VMWARE_TYPE_SERVER2)):
-		if (not (vmware_is_supported_vmrun_version(options))):
-			fail_usage("Unsupported version of vmrun command! You must use at least version %d!"%(VMRUN_MINIMUM_REQUIRED_VERSION))
-
-	# Operate the fencing device
-	result = fence_action(None, options, set_power_status, get_power_status, get_outlets_status)
-	
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/vmware/fence_vmware_helper.pl b/fence/agents/vmware/fence_vmware_helper.pl
deleted file mode 100644
index a0b5cea..0000000
--- a/fence/agents/vmware/fence_vmware_helper.pl
+++ /dev/null
@@ -1,276 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-my ($RELEASE_VERSION, $REDHAT_COPYRIGHT, $BUILD_DATE);
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-#### FUNCTIONS #####
-# Show error message
-sub show_error {
-  print STDERR @_;
-}
-
-sub my_exit {
-  my ($exit_code)=@_;
-
-  # Disconnect from server
-  Util::disconnect();
-
-  exit $exit_code;
-}
-
-# Convert one field (string) to format acceptable by DSV. This
-# means replace any : with \: and \ with \\.
-sub convert_field_to_dsv {
-  my ($input_line)=@_;
-
-  $input_line =~ s/([\\:])/\\$1/g;
-  return $input_line
-}
-
-#### Global variables #####
-# Aditional options
-my %opts = (
-   'operation' => {
-      type => "=s",
-      help => "The operation to perform (on,off,list,status). "
-             . "Operations on/off/status require name of the virtual machine",
-      default => "list",
-      required => 0,
-   },
-   'vmname' => {
-      type => "=s",
-      help => "The name of the virtual machine",
-      required => 0,
-   },
-   'datacenter' => {
-      type => "=s",
-      help => "The name of the datacenter",
-      required => 0,
-   }
-);
-
-#################
-##### MAIN ######
-#################
-
-# Conditional use of VIRuntime
-eval "use VMware::VIRuntime;";
-
-if ($@) {
-  show_error "Please install VI Perl API package to use this tool!\nPerl error: $@";
-  exit 1;
-}
-
-# Parse options
-Opts::add_options(%opts);
-Opts::parse();
-Opts::validate();
-
-if (!(Opts::get_option('operation')=~/^(on|off|list|status)$/i)) {
-  show_error "Operation should be on, off, list or status!\n";
-  exit 2;
-}
-
-my $operation=lc(Opts::get_option('operation'));
-
-if (($operation ne 'list') && (!defined Opts::get_option('vmname'))) {
-  show_error "Operation on, off, status require vmname parameter!\n";
-  exit 2;
-}
-
-
-# Try connect to machine
-eval {
-  Util::connect();
-};
-
-if ($@) {
-  show_error "Cannot connect to server!\nVMware error:".$@;
-  exit 3;
-}
-
-my ($datacenter, $datacenter_view, $vm_views,$vm);
-# We are connected to machine
-
-# If user want's datacenter, we must first find datacenter
-my %filter=(view_type => 'VirtualMachine');
-
-if( defined (Opts::get_option('datacenter')) ) {
-  $datacenter = Opts::get_option('datacenter');
-  $datacenter_view = Vim::find_entity_view(view_type => 'Datacenter',
-                                            filter => { name => $datacenter });
-  if (!$datacenter_view) {
-    show_error "Cannot find datacenter ".$datacenter."!\n";
-
-    my_exit 4;
-  }
-
-  $filter{'begin_entity'}=$datacenter_view;
-}
-
-if ($operation ne 'list') {
-  $filter{'filter'}= {"config.name" => Opts::get_option('vmname')};
-}
-
-$vm_views = Vim::find_entity_views(%filter);
-
-my $found=0;
-
-# Traverse all found vm
-foreach $vm(@$vm_views) {
-  if (($operation eq 'list') or ($operation eq 'status')) {
-    if (!$vm->summary->config->template) {
-      print convert_field_to_dsv($vm->name).":".
-            convert_field_to_dsv($vm->summary->config->vmPathName).":".
-            convert_field_to_dsv($vm->runtime->powerState->val).":".
-            convert_field_to_dsv($vm->runtime->connectionState->val)."\n";
-    }
-  } elsif ($operation eq 'on') {
-    eval {
-      $vm->PowerOnVM();
-    };
-
-    if ($@) {
-      # If error is SoapFault with InvalidPowerState, user maybe use some auto power on tool.
-      # This is not error, warning is enought.
-      if (ref($@) eq 'SoapFault') {
-        if (ref($@->detail) eq 'InvalidPowerState') {
-          show_error "Warning: Cannot power on vm (somebody done it before???) ".Opts::get_option('vmname').
-                     "!\nVMware error:".$@."\n";
-        }
-      } else {
-        # Some other more serious problem
-        show_error "Cannot power on vm ".Opts::get_option('vmname')."!\nVMware error:".$@."\n";
-        my_exit 6;
-      }
-    }
-  } elsif ($operation eq 'off') {
-    eval {
-      $vm->PowerOffVM();
-    };
-
-    if ($@) {
-      # If error is SoapFault with InvalidPowerState, user maybe use some auto power off tool.
-      # This is not error, warning is enought.
-      if (ref($@) eq 'SoapFault') {
-        if (ref($@->detail) eq 'InvalidPowerState') {
-          show_error "Warning: Cannot power off vm (somebody done it before???) ".Opts::get_option('vmname').
-                     "!\nVMware error:".$@."\n";
-        }
-      } else {
-        # Some other more serious problem
-        show_error "Cannot power off vm ".Opts::get_option('vmname')."!\nVMware error:".$@."\n";
-        my_exit 6;
-      }
-    }
-  } else {
-    show_error "Operation should be on, off or list!\n";
-    my_exit 2;
-  }
-  $found++;
-}
-
-if ((!$found) && ($operation ne 'list')) {
-  show_error "Cannot find vm ".Opts::get_option('vmname')."!\n";
-  my_exit 5;
-}
-
-# Should be 0 -> success all, or 6 in case of error
-my_exit 0;
-
-__END__
-
-=head1 NAME
-
-fence_vmware_helper - Perform list of virtual machines and
-               poweron, poweroff  of operations on virtual machines.
-
-=head1 SYNOPSIS
-
- fence_vmware_helper --operation <on|off|list|status> [options]
-
-=head1 DESCRIPTION
-
-This VI Perl command-line utility provides an interface for
-seven common provisioning operations on one or more virtual
-machines: powering on, powering off and listing virtual mode.
-
-=head1 OPTIONS
-
-=head2 GENERAL OPTIONS
-
-=over
-
-=item B<operation>
-
-Operation to be performed.  One of the following:
-
-  <on> (power on one or more virtual machines),
-  <off> (power off one  or more virtual machines),
-  <list> (list virtual machines and their status)
-  <status> (same as list, but show only machines with vmname)
-
-=item B<vmname>
-
-Optional. Name of the virtual machine on which the
-operation is to be performed.
-
-=item B<datacenter>
-
-Optional. Name of the  datacenter for the virtual machine(s).
-Operations will be performed on all the virtual machines under the given datacenter.
-
-=back
-
-=head1 EXAMPLES
-
-Power on a virtual machine
-
-   fence_vmware_helper --username administrator --password administrator --operation on
-                --vmname rhel --server win1
-
-   fence_vmware_helper --username administrator --password administrator --operation on
-                --vmname rhel --server win1 --datacenter Datacenter
-
-Power off a virtual machine
-
-   fence_vmware_helper --username administrator --password administrator --operation off
-                --vmname rhel --server win1
-
-   perl fence_vmware_helper --username administrator --password administrator --operation off
-                --vmname rhel --server win1 --datacenter Datacenter
-
-List of virtual machines
-
-   fence_vmware_helper --username administrator --password administrator --server win1
-
-   fence_vmware_helper --username administrator --password administrator --server win1
-                --operation list
-
-Get status of virtual machine
-
-   fence_vmware_helper --username administrator --password administrator --server win1
-	    --vmname rhel --operation status
-
-=head1 SUPPORTED PLATFORMS
-
-All operations supported on ESX 3.0.1
-
-All operations supported on Virtual Center 2.0.1
diff --git a/fence/agents/wti/Makefile b/fence/agents/wti/Makefile
deleted file mode 100644
index c281149..0000000
--- a/fence/agents/wti/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_wti
-
-MAKEMAN = 1
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/wti/fence_wti.py b/fence/agents/wti/fence_wti.py
deleted file mode 100644
index a71852a..0000000
--- a/fence/agents/wti/fence_wti.py
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/usr/bin/python
-
-#####
-##
-## The Following Agent Has Been Tested On:
-##
-##  Version            Firmware
-## +-----------------+---------------------------+
-##  WTI RSM-8R4         ?? unable to find out ??
-##  WTI MPC-??? 	?? unable to find out ??
-##  WTI IPS-800-CE     v1.40h		(no username) ('list' tested)
-#####
-
-import sys, re, pexpect, exceptions
-sys.path.append("@FENCEAGENTSLIBDIR@")
-from fencing import *
-
-#BEGIN_VERSION_GENERATION
-RELEASE_VERSION="New WTI Agent - test release on steroids"
-REDHAT_COPYRIGHT=""
-BUILD_DATE="March, 2008"
-#END_VERSION_GENERATION
-
-def get_power_status(conn, options):
-	try:
-		conn.send("/S"+"\r\n")
-		conn.log_expect(options, options["-c"], int(options["-Y"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-	
-	plug_section = 0
-	outlets = {}
-	for line in conn.before.splitlines():
-		if (plug_section == 2) and line.find("|") >= 0:
-			plug_line = [x.strip().lower() for x in line.split("|")]
-			if len(plug_line) < len(plug_header):
-				plug_section = -1
-				pass
-			if ["list", "monitor"].count(options["-o"]) == 0 and options["-n"].lower() == plug_line[plug_index]:
-				return plug_line[status_index]
-			else:
-				## We already believe that first column contains plug number
-				outlets[plug_line[0]] = (plug_line[name_index], plug_line[status_index])
-		elif (plug_section == 1):
-			plug_section = 2
-			pass
-		elif (line.upper().startswith("PLUG")):
-			plug_section = 1
-			plug_header = [x.strip().lower() for x in line.split("|")]
-			plug_index = plug_header.index("plug")
-			name_index = plug_header.index("name")
-			status_index = plug_header.index("status")
-
-	if ["list", "monitor"].count(options["-o"]) == 1:
-		return outlets
-	else:
-		return "PROBLEM"
-
-def set_power_status(conn, options):
-	action = {
-		'on' : "/on",
-		'off': "/off"
-	}[options["-o"]]
-
-	try:
-		conn.send(action + " " + options["-n"] + ",y\r\n")
-		conn.log_expect(options, options["-c"], int(options["-g"]))
-	except pexpect.EOF:
-		fail(EC_CONNECTION_LOST)
-	except pexpect.TIMEOUT:
-		fail(EC_TIMED_OUT)
-
-def main():
-	device_opt = [  "help", "version", "agent", "quiet", "verbose", "debug",
-			"action", "ipaddr", "login", "passwd", "passwd_script",
-			"cmd_prompt", "secure", "identity_file", "port", "no_login", "no_password",
-			"test", "separator", "inet4_only", "inet6_only", "ipport",
-			"power_timeout", "shell_timeout", "login_timeout", "power_wait" ]
-
-	atexit.register(atexit_handler)
-
-	options = check_input(device_opt, process_input(device_opt))
-
-	## 
-	## Fence agent specific defaults
-	#####
-	if 0 == options.has_key("-c"):
-		options["-c"] = [ "RSM>", "MPC>", "IPS>", "TPS>", "NBB>", "NPS>", "VMR>" ]
-
-	docs = { }
-	docs["shortdesc"] = "Fence agent for WTI"
-	docs["longdesc"] = "fence_wti is an I/O Fencing agent \
-which can be used with the WTI Network Power Switch (NPS). It logs \
-into an NPS via telnet or ssh and boots a specified plug. \
-Lengthy telnet connections to the NPS should be avoided while a GFS cluster \
-is running because the connection will block any necessary fencing actions."
-	docs["vendorurl"] = "http://www.wti.com"
-	show_docs(options, docs)
-	
-	##
-	## Operate the fencing device
-	##
-	## @note: if it possible that this device does not need either login, password or both of them
-	#####	
-	if 0 == options.has_key("-x"):
-		try:
-			try:
-				conn = fspawn(TELNET_PATH)
-				conn.send("set binary\n")
-				conn.send("open %s -%s\n"%(options["-a"], options["-u"]))
-			except pexpect.ExceptionPexpect, ex:
-				sys.stderr.write(str(ex) + "\n")
-				sys.stderr.write("Due to limitations, binary dependencies on fence agents "
-				"are not in the spec file and must be installed separately." + "\n")
-				sys.exit(EC_GENERIC_ERROR)
-			
-			re_login = re.compile("(login: )|(Login Name:  )|(username: )|(User Name :)", re.IGNORECASE)
-			re_prompt = re.compile("|".join(map (lambda x: "(" + x + ")", options["-c"])), re.IGNORECASE)
-
-			result = conn.log_expect(options, [ re_login, "Password: ", re_prompt ], int(options["-Y"]))
-			if result == 0:
-				if options.has_key("-l"):
-					conn.send(options["-l"]+"\r\n")
-					result = conn.log_expect(options, [ re_login, "Password: ", re_prompt ], int(options["-Y"]))
-				else:
-					fail_usage("Failed: You have to set login name")
-		
-			if result == 1:
-				if options.has_key("-p"):
-					conn.send(options["-p"]+"\r\n")
-					conn.log_expect(options, options["-c"], int(options["-Y"]))	
-				else:
-					fail_usage("Failed: You have to enter password or password script")
-		except pexpect.EOF:
-			fail(EC_LOGIN_DENIED) 
-		except pexpect.TIMEOUT:
-			fail(EC_LOGIN_DENIED)		
-	else:
-		conn = fence_login(options)
-
-	result = fence_action(conn, options, set_power_status, get_power_status, get_power_status)
-
-	##
-	## Logout from system
-	######
-	try:
-		conn.send("/X"+"\r\n")
-		conn.close()
-	except exceptions.OSError:
-		pass
-	except pexpect.ExceptionPexpect:
-		pass
-		
-	sys.exit(result)
-
-if __name__ == "__main__":
-	main()
diff --git a/fence/agents/xcat/Makefile b/fence/agents/xcat/Makefile
deleted file mode 100644
index 13a954c..0000000
--- a/fence/agents/xcat/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_xcat
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/xcat/fence_xcat.8 b/fence/agents/xcat/fence_xcat.8
deleted file mode 100644
index 719f896..0000000
--- a/fence/agents/xcat/fence_xcat.8
+++ /dev/null
@@ -1,63 +0,0 @@
-.TH fence_xcat 8
-
-.SH NAME
-fence_xcat - I/O Fencing agent for xcat environments
-
-.SH SYNOPSIS
-.B
-fence_xcat
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_xcat is a wrapper to the rpower(1) command that is distributed
-with the xCAT project available at http://www.xcat.org.  Use of 
-fence_xcat requires that xcat has already been properly configured
-for your environment.  Refer to xCAT(1) for more information on 
-configuring xCAT.
-
-fence_xcat accepts options on the command line as well as from stdin.
-fenced sends parameters through stdin when it execs the agent.  fence_xcat 
-can be run by itself with command line options which is useful for testing.
-
-NOTE: It is recommended that fence_bladecenter(8) is used instead of fence_xcat if
-the bladecenter firmware supports telnet.  This interface is much cleaner and
-easier to setup.
-
-Vendor URL: http://www.xcat.org
-
-.SH OPTIONS
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-n\fP \fInodename\fP
-The nodename as defined in nodelist.tab of the xCAT setup.
-.TP
-\fB-o\fP \fIaction\fP
-The action required.  on, off, reset (default) or stat.
-.TP
-\fB-r\fP \fIrpower\fP
-The path to the rpower binary.
-.TP
-\fB-q\fP
-Quiet mode: print only error messages.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fR
-This option is used by fence_node(8) and is ignored by fence_xcat.
-.TP
-\fInodename = < param >\fR
-The nodename as defined in nodelist.tab of the xCAT setup.
-.TP
-\fIaction = < param >\fR
-The action required.  on, off, reset (default) or stat.
-.TP
-\fIrpower = < param >\fR
-The path to the rpower binary.
-
-.SH SEE ALSO
-fence(8), fence_node(8), fence_bladecenter(8), nodelist.tab(8), rpower(1), xCAT(1)
diff --git a/fence/agents/xcat/fence_xcat.pl b/fence/agents/xcat/fence_xcat.pl
deleted file mode 100644
index 2d8166a..0000000
--- a/fence/agents/xcat/fence_xcat.pl
+++ /dev/null
@@ -1,197 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-$opt_o = 'reset';        # Default fence action
-$opt_r = 'rpower';        # Default fence action
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and 
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-sub usage
-{
-    print "Usage:\n";
-    print "\n";
-    print "$pname [options]\n";
-    print "\n";
-    print "Options:\n";
-    print "  -h               usage\n";
-    print "  -n <name>        nodename\n";
-    print "  -o <string>      Action:  on | off | reset (default) | stat\n";
-    print "  -r <rpower>      rpower command\n";
-    print "  -q               quiet mode\n";
-    print "  -V               version\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg) = @_;
-  print $msg."\n" unless defined $opt_q;
-  $t->close if defined $t;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg)=@_;
-  print STDERR $msg."\n" if $msg;
-  print STDERR "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-sub get_options_stdin
-{
-    my $opt;
-    my $line = 0;
-    while( defined($in = <>) )
-    {
-        $_ = $in;
-        chomp;
-
-	# strip leading and trailing whitespace
-        s/^\s*//;
-        s/\s*$//;
-
-	# skip comments
-        next if /^#/;
-
-        $line+=1;
-        $opt=$_;
-        next unless $opt;
-
-        ($name,$val)=split /\s*=\s*/, $opt;
-
-        if ( $name eq "" )
-        {  
-           print STDERR "parse error: illegal name in option $line\n";
-           exit 2;
-	}
-	
-        # DO NOTHING -- this field is used by fenced
-	elsif ($name eq "agent" ) { } 
-
-        elsif ($name eq "action" )
-        {
-            $opt_o = $val;
-        }
-	elsif ($name eq "nodename" ) 
-	{
-            $opt_n = $val;
-        } 
-	elsif ($name eq "rpower" ) 
-	{
-            $opt_r = $val;
-        } 
-
-    }
-}
-
-######################################################################33
-# MAIN
-
-if (@ARGV > 0) {
-   getopts("hn:o:r:qV") || fail_usage ;
-
-   usage if defined $opt_h;
-   version if defined $opt_V;
-
-   fail_usage "Unknown parameter." if (@ARGV > 0);
-
-   fail_usage "No '-n' flag specified." unless defined $opt_n;
-   $opt_o=lc($opt_o);
-   fail_usage "Unrecognised action '$opt_o' for '-o' flag"
-      unless $opt_o =~ /^(on|off|reset|stat)$/;
-
-} else {
-   get_options_stdin();
-
-   fail "failed: no plug number" unless defined $opt_n;
-   $opt_o=lc($opt_o);
-   fail "failed: unrecognised action: $opt_o"
-      unless $opt_o =~ /^(on|off|reset|stat)$/;
-}
-
-pipe (RDR,WTR);
-
-if ( $pid=fork() == 0 )
-{
-   close RDR;
-
-   open STDOUT, ">&WTR";
-   exec "$opt_r $opt_n $opt_o" or die "failed to exec \"$opt_r\"\n";
-}
-
-close WTR;
-
-wait;
-
-if ( $? != 0 )
-{
-   die "failed: rpower error: exit $?\n"
-}
-
-$found=0;
-$status="";
-while (<RDR>)
-{
-   chomp;
-
-   if ( $_ =~ /^(\S+): (\S+)$/)
-   {
-      if ($opt_n eq $1) 
-      {
-         $status = $2;
-
-         if (($opt_o eq $2) || ($opt_o eq "stat"))
-         {
-            $found=1;
-            last;
-         }
-      }
-   }
-}
-
-print (($found ? "success":"failed") . ": $opt_n $status\n")
-   unless defined $opt_q;
-
-exit ($found ? 0 : 1 );
-
-
-
-
-
-
-
-
-
diff --git a/fence/agents/xvm/Makefile b/fence/agents/xvm/Makefile
deleted file mode 100644
index 1ff9e3e..0000000
--- a/fence/agents/xvm/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-TARGET1= fence_xvmd
-TARGET2= testprog
-
-MANTARGET=$(TARGET1).8
-
-SBINDIRT=$(TARGET1)
-
-all: ${TARGET1}
-
-include ../../../make/defines.mk
-include $(OBJDIR)/make/cobj.mk
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-OBJS1=	fence_xvmd.o \
-	virt.o \
-	options-ccs.o \
-	vm_states.o \
-	xml.o \
-	mcast.o \
-	simple_auth.o \
-	tcp.o \
-	options.o \
-	debug.o
-
-
-OBJS2=	xml-standalone.o
-
-CFLAGS += -D_GNU_SOURCE
-CFLAGS += -I${ccsincdir} -I${cmanincdir}
-CFLAGS += -I${corosyncincdir} -I${openaisincdir}
-CFLAGS += -I${logtincdir}
-CFLAGS += -I${virtincdir} -I${nssincdir} -I${nsprincdir}
-CFLAGS += `xml2-config --cflags`
-CFLAGS += -I${incdir}
-
-STANDALONE_CFLAGS += -DSTANDALONE
-
-LDFLAGS += -L${nsslibdir} -lnss3
-LDFLAGS += -L${logtlibdir} -llogthread
-LDFLAGS += -L${libdir}
-LDFLAGS += -L${ccslibdir} -lccs -L${cmanlibdir} -lcman
-LDFLAGS += -L${virtlibdir} -lvirt
-LDFLAGS += -L${openaislibdir} -lSaCkpt
-
-XML_LDFLAGS += `xml2-config --libs`
-
-${TARGET1}: ${SHAREDOBJS} ${OBJS1}
-	$(CC) -o $@ $^ $(XML_LDFLAGS) $(LDFLAGS)
-
-${TARGET2}: ${OBJS2}
-	$(CC) -o $@ $^ $(XML_LDFLAGS)
-
-clean: generalclean
-
--include $(OBJS1:.o=.d)
--include $(OBJS2:.o=.d)
diff --git a/fence/agents/xvm/README b/fence/agents/xvm/README
deleted file mode 100644
index 401666d..0000000
--- a/fence/agents/xvm/README
+++ /dev/null
@@ -1,182 +0,0 @@
-I. Fence_xvm - virtual machine fencing agent
-
-Fence_xvm is an agent which establishes a communications link between
-a cluster of virtual machines (VC) and a cluster of domain0/physical
-nodes which are hosting the virtual cluster.  Its operations are
-fairly simple.
-
-  (a) Start a listener service.
-  (b) Send a multicast packet requesting that a VM be fenced.
-  (c) Authenticate client.
-  (e) Read response.
-  (f) Exit with success/failure, depending on the response received.
-
-If any of the above steps fail, the fencing agent exits with a failure
-code and fencing is retried by the virtual cluster at a later time.
-Because of the simplicty of fence_xvm, it is not necessary that
-fence_xvm be run from within a virtualized guest - all it needs is
-libnspr and libnss and a shared private key (for authentication; we
-would hate to receive a false positive response from a node not in the
-cluster!).
-
-
-II. Fence_xvmd - The virtual machine fencing host
-
-Fence_xvmd is a daemon which runs on physical hosts (e.g. in domain0)
-of the cluster hosting the virtual cluster.  It listens on a port
-for multicast traffic from virtual cluster(s), and takes actions.
-Multiple disjoint virtual clusters can coexist on a single physical
-host cluster, but this requires multiple instances of fence_xvmd.
-
-NOTE: fence_xvmd *MUST* be run on ALL nodes in a given cluster which
-will be hosting virtual machines if fence_xvm is to be used for 
-fencing!
-
-There are a couple of ways the multicast packet is handled,
-depending on the state of the host OS.  It might be hosting the VM,
-or it might not.  Furthermore, the VM might "reside" on a host which
-has failed.
-
-In order to be able to guarantee safe fencing of a VM even if the
-last- known host is down, we must store the last-known locations of
-each virtual machine in some sort of cluster-wide way.  For this, we
-use the AIS Checkpointing API, which is provided by OpenAIS.  Every
-few seconds, fence_xvmd queries the hypervisor via libvirt and
-stores any local VM states in a checkpoint.  In the event of a
-physical node failure (which consequently causes the failure of one
-or more guests), we can then read the checkpoint section corresponding
-to the guest we need to fence to find out the previous
-owner.  With that information, we can then check with CMAN to see if
-the last-known host node has been fenced.  If so, then the VM is
-clean as well.  The physical cluster must, therefore, have fencing
-in order for fence_xvmd to work.
-
-Operation of a node hosting a VM which needs to be fenced:
-  
-  (a) Receive multicast packet
-  (b) Authenticate multicast packet
-  (c) Open connection to host contained within multicast
-      packet.
-  (d) Authenticate server.
-  (e) Carry out fencing operation (e.g. call libvirt to destroy or
-      reboot the VM; there is no "on" method at this point).
-  (f) If operation succeeds, send success response.
-
-Operation of high-node-ID:
-
-  (a) Receive multicast packet
-  (b) Authenticate multicast packet
-  (c) Read VM state from checkpoint
-  (d) Check liveliness of nodeID hosting VM (if alive, do nothing)
-  (e) Open connection to host contained within multicast
-      packet.
-  (f) Check with CMAN to see if last-known host has been fenced.
-      (If it has not; do nothing -- this is why the physical 
-      cluster also needs fencing!)
-  (g) Authenticate server & send response.
-  (h) If last-known host has been fenced, send success response.
-
-NOTE: There is always a possibility that a VM is started again
-before the fencing operation and checkpoint update for that VM
-occurs.  If the VM has booted and rejoined the cluster, fencing will
-not be necessary.  If it is in the process of booting, but has not
-yet joined the cluster, fencing will also not be necessary - because
-it will not be using cluster resources yet.
-
-
-III. Security considerations
-
-While fencing is generally expected to run on a more or less trusted
-network, there are cases where it may not be.
-
-* The multicast packet is subject to replay attacks, but because no
-fencing action is taken based solely on the information contained
-within the packet, this should not allow an attacker to maliciously
-fence a VM from outside the cluster, though it may be possible to
-cause a DoS of fence_xvmd if enough multicast packets are sent.
-
-* The only currently supported authentication mechanisms are simple
-challenge-response based on a shared private key and pseudorandom
-number generation.
-
-* An attacker with access to the shared key(s) can easily fence any
-known VM, even if they are not on a cluster node.
-
-* Different shared keys should be used for different virtual
-clusters on the same subnet (whether in the same physical cluster
-or not).  Additionally, multiple fence_xvmd instances must be run
-(each listening on a different multicast IP + port combination).
-
-IV.  Configuration
-
-Generate a random key file.  An example of how to generate it is:
-
-    dd if=/dev/urandom of=/etc/cluster/fence_xvm.key bs=4096 count=1
-
-Distribute the generated key file to all virtual machines in a
-cluster as well as all physical host nodes which will be hosting
-that particular cluster of guests.  More simply, everything involved
-with hosting the virtual cluster as well as the virtual cluster
-itself must have the same key file; it acts as a password.
-
-The key should not be placed on shared file systems (because shared
-file systems require the cluster, which requires fencing...).  
-Furthermore, it is considered 'unsupported' to join a host cluster
-and a guest cluster in one management domain.
-
-A. Configuring the host (physical) cluster
-
-On the host cluster, you need to add the following tag as a
-child of the <cluster> tag in /etc/cluster/cluster.conf:
-
-    <fence_xvmd/>
-
-(Do not forget to increment the configuration version number and
-run 'ccs_tool update /etc/cluster/cluster.conf' !).
-
-Start fence_xvmd on all host nodes if it isn't already running.
-Just run 'fence_xvmd'.  The next time the cluster is restarted,
-fence_xvmd will start automatically; it is started by the cman
-script if you have the above tag in cluster.conf.
-
-B.  Configuring the guest (virtual) cluster
-
-On the guest cluster, you need to set up per-node fencing.  This
-is a fairly simple task as well.  First, you need to add a fence
-device for 'xvm'.  Simply add the following to the <fencedevices/>
-tag in the guest cluster's cluster.conf:
-
-    <fencedevice name="xvm" agent="fence_xvm"/>
-
-After doing this, each node also needs individual fencing set up.
-For each <clusternode/> tag, you will need to add something like
-the following:
-
-    <fence>
-        <method name="1">
-            <device name="xvm" domain="doman-name"/>
-        </method>
-    </fence>
-
-For example, if you have a virtual host named 'vm1.test.com' with a
-corresponding virtual domain name of 'domU-vm1' in the dom0 cluster,
-and a node ID of 1, the <clusternode> tag for that virtual machine
-would look like so:
-
-    <clusternode name="vm1.test.com" nodeid="1" votes="1">
-        <fence>
-            <method name="1">
-                <device name="xvm" domain="domU-vm1"/>
-            </method>
-        </fence>
-    </clusternode>
-
-C. Advanced configuration
-
-Any advanced configuration parameters (e.g. changing authentication,
-hashing, key file, etc.) should be included in the <fence_xvmd/> tag
-in the host cluster and the <fencedevice .../> tag in the guest
-cluster.  For a complete list of advanced parameters, see:
-
-    fence_xvmd -h
-    fence_xvm -h
diff --git a/fence/agents/xvm/TODO b/fence/agents/xvm/TODO
deleted file mode 100644
index 0158742..0000000
--- a/fence/agents/xvm/TODO
+++ /dev/null
@@ -1,33 +0,0 @@
-High Priority / Blockers:
-
-* Nothing at this time.
-
-Medium Priority:
-
-* Need to add ability for fence_xvmd to forcefully fence the host
-dom0 if it's not responding.  Medium because it should not be the
-default behavior since fencing a host can affect multiple domains
-across potentially multiple domU clusters.  This will be a server-
-side configuration option; domUs will not be able to override it.
-
-* Support multiple authentication keys in fence_xvmd simultaneously
-so that we can fence multiple clusters with only one instance of
-fence_xvmd running on a given dom0.
-
-Low Priority:
-
-* Turn README in to man pages.
-
-* Make sure CMAN is running and/or restart/reconnect if CMAN goes
-away and comes back.  (If CMAN dies, we have big problems anyway)
-
-* Add SSL connection support.  (Challenge/response on a trusted
-network should be okay.)
-
-* Make sure addresses contained in the multicast packet are always
-in network-byte order.  Low because it will be unlikely that the
-host-byte ordering of a domU and its dom0 will be different.
-
-* Make sure node IDs and VM states stored in openais checkpoints
-are in network-byte order and swap back/forth if not.
-
diff --git a/fence/agents/xvm/debug.c b/fence/agents/xvm/debug.c
deleted file mode 100644
index d8bd109..0000000
--- a/fence/agents/xvm/debug.c
+++ /dev/null
@@ -1,18 +0,0 @@
-#include <stdio.h>
-#include "debug.h"
-
-static int _debug = 0;
-
-inline void
-dset(int threshold)
-{
-	_debug = threshold;
-	dbg_printf(3, "Debugging threshold is now %d\n", threshold);
-}
-
-inline int
-dget(void)
-{
-	return _debug;
-}
-
diff --git a/fence/agents/xvm/debug.h b/fence/agents/xvm/debug.h
deleted file mode 100644
index 84a5df9..0000000
--- a/fence/agents/xvm/debug.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef _DBG_H
-#define _DBG_H
-
-#include <liblogthread.h>
-
-inline void dset(int);
-inline int dget(void);
-
-#define dbg_printf(level, fmt, args...) \
-do { \
-	if (dget()>=level) \
-		logt_print(LOG_DEBUG, fmt, ##args); \
-} while(0)
-
-#endif
diff --git a/fence/agents/xvm/fence_xvmd.8 b/fence/agents/xvm/fence_xvmd.8
deleted file mode 100644
index 23e7c6e..0000000
--- a/fence/agents/xvm/fence_xvmd.8
+++ /dev/null
@@ -1,124 +0,0 @@
-.TH fence_xvmd 8
-
-.SH NAME
-fence_xvmd - Libvirt-based, general purpose fencing host for virtual machines.
-
-.SH SYNOPSIS
-.B
-fence_xvmd
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_xvmd is an I/O Fencing host which resides on bare metal machines
-and is used in conjunction with the fence_xvm fencing agent.  Together,
-these two programs can be used to fence can be used 
-machines which are part of a cluster.
-
-If the virtual machines are backed by clustered storage or the virtual
-machines may be migrated to other physical machines, all physical
-machines in question must also be a part of their own CMAN/OpenAIS based
-cluster.  Furthermore, the bare metal cluster is required to have
-fencing configured if virtual machine recovery is expected to be automatic.
-
-fence_xvmd accepts options on the command line and from cluster.conf
-
-.SH OPTIONS
-.TP
-\fB-f\fP
-Foreground mode (do not fork)
-.TP
-\fB-d\fP
-Enable debugging output.  The more times you specify this parameter,
-the more debugging output you will receive.
-.TP
-\fB-i\fP \fIfamily\fP
-IP family to use (auto, ipv4, or ipv6; default = auto)
-.TP
-\fB-a\fP \fIaddress\fP
-Multicast address to listen on (default=225.0.0.12 for ipv4, ff02::3:1
-for ipv6)
-.TP
-\fB-p\fP \fIport\fP
-Port to use (default=1229)
-.TP
-\fB-I\fP \fIinterface\fP
-Network interface to listen on, e.g. eth0.
-.TP
-\fB-C\fP \fIauth\fP
-Authentication type (none, sha1, sha256, sha512; default=sha256).  This
-controls the authentication mechanism used to authenticate clients.  The
-three SHA hashes use a key which must be shared between both the virtual
-machines and the host machine or cluster.  The three SHA authentication 
-mechanisms use a simple bidirectional challenge-response based on pseudo-
-random number generation and a shared private key.
-.TP
-\fB-c\fP \fIhash\fP
-Packet hash type (none, sha1, sha256, sha512; default=sha256).  This
-controls the hashing mechanism used to authenticate fencing requests.  The
-three SHA hashes use a key which must be shared between both the virtual
-machines and the host machine or cluster.
-.TP
-\fB-k\fP \fIkey_file\fP
-Use the specified key file for packet hashing / SHA authentication.
-When both the hash type and the authentication type are set to "none",
-this parameter is ignored.
-.TP
-\fB-u\fP
-Fence by UUID instead of virtual machine name.
-.TP
-\fB-?\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-X\fP
-Do not connect to CCS for configuration; only use command line
-parameters.  CCS configuration parameters override command line
-parameters (because they are cluster-wide), so if you need to 
-override a configuration option contained in CCS, you must specify
-this parameter.
-.TP
-\fB-L\fP
-Local-only / non-cluster mode.  When used with -X, this this option
-prevents fence_xvmd from operating as a clustered service, obviating
-the need to configure/run CMAN on the host domain.
-.TP
-\fB-U\fP \fIuri\fP
-Force use of the specified URI for connecting to the hypervisor.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH CCS PARAMETERS
-CCS options are simply attributes of the <fence_xvmd> tag, a
-child of the <cluster> tag in /etc/cluster/cluster.conf.
-.TP
-\fIdebug="1"\fR
-Same as the -d option.  Specify numbers >1 for more debugging information.
-.TP
-\fIfamily="param"\fR
-Same as the -i option.
-.TP
-\fImulticast_address="param"\fR
-Same as the -a option.
-.TP
-\fIport="param"\fR
-Same as the -p option.
-.TP
-\fIauth="param"\fR
-Same as the -C option.
-.TP
-\fIhash="param"\fR
-Same as the -c option.
-.TP
-\fIkey_file="param"\fR
-Same as the -k option.
-.TP
-\fIuse_uuid="1"\fR
-Same as the -u option.
-.TP
-
-
-.SH SEE ALSO
-fence(8), fence_node(8), fence_xvm(8)
diff --git a/fence/agents/xvm/fence_xvmd.c b/fence/agents/xvm/fence_xvmd.c
deleted file mode 100644
index f2199d7..0000000
--- a/fence/agents/xvm/fence_xvmd.c
+++ /dev/null
@@ -1,994 +0,0 @@
-/*
- * Author: Lon Hohberger <lhh at redhat.com>
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-#include <sys/ioctl.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <limits.h>
-#include <pthread.h>
-#define SYSLOG_NAMES
-#include <syslog.h>
-#include <virterror.h>
-#include <nss.h>
-#include <libgen.h>
-#include <ccs.h>
-#include <liblogthread.h>
-
-/* Local includes */
-#include "xvm.h"
-#include "simple_auth.h"
-#include "options.h"
-#include "mcast.h"
-#include "tcp.h"
-#include "virt.h"
-#include "libcman.h"
-#include "debug.h"
-
-static int running = 1;
-static int reload_key;
-
-#define LOG_DAEMON_NAME  "xvmd"
-#define LOG_MODE_DEFAULT LOG_MODE_OUTPUT_SYSLOG|LOG_MODE_OUTPUT_FILE
-static int log_mode_default = LOG_MODE_DEFAULT;
-
-extern int cleanup_xml(char *xmldesc, char **ret, size_t *retsz);
-
-static int
-connect_tcp(fence_req_t *req, fence_auth_type_t auth,
-	    void *key, size_t key_len)
-{
-	int fd = -1;
-	struct sockaddr_in sin;
-	struct sockaddr_in6 sin6;
-	char buf[128];
-
-	switch(req->family) {
-	case PF_INET:
-		memset(&sin, 0, sizeof(sin));
-		memcpy(&sin.sin_addr, req->address,
-		       sizeof(sin.sin_addr));
-		sin.sin_family = PF_INET;
-		fd = ipv4_connect(&sin.sin_addr, req->port,
-				  5);
-		if (fd < 0) {
-			logt_print(LOG_ERR,
-				   "Failed to connect to caller: %s\n",
-				   strerror(errno));
-			return -1;
-		}
-		break;
-	case PF_INET6:
-		memset(&sin6, 0, sizeof(sin));
-		memcpy(&sin6.sin6_addr, req->address,
-		       sizeof(sin6.sin6_addr));
-		sin.sin_family = PF_INET6;
-		fd = ipv6_connect(&sin6.sin6_addr, req->port,
-				  5);
-
-		memset(buf,0,sizeof(buf));
-		inet_ntop(PF_INET6, &sin6.sin6_addr, buf, sizeof(buf));
-
-		if (fd < 0) {
-			logt_print(LOG_ERR, "Failed to call back %s\n", buf);
-			return -1;
-		}
-		break;
-	default:
-		dbg_printf(1, "Family = %d\n", req->family);
-		return -1;
-	}
-
-	/* Noops if auth == AUTH_NONE */
-	if (tcp_response(fd, auth, key, key_len, 10) <= 0) {
-		logt_print(LOG_ERR, "Failed to respond to challenge\n");
-		close(fd);
-		return -1;
-	}
-
-	if (tcp_challenge(fd, auth, key, key_len, 10) <= 0) {
-		logt_print(LOG_ERR, "Remote failed challenge\n");
-		close(fd);
-		return -1;
-	}
-	return fd;
-}
-
-
-static int
-do_notify_caller_tcp(fence_req_t *req, fence_auth_type_t auth,
-		     void *key, size_t key_len, char response)
-{
-	int fd;
-
-	fd = connect_tcp(req, auth, key, key_len);
-	if (fd < 0)
-		goto out;
-
-	if (write(fd, &response, 1) < 0) {
-		perror("write");
-	}
-out:
-	if (fd != -1) {
-		close(fd);
-		return 0;
-	}
-
-	return -1;
-}
-
-static inline virDomainPtr
-get_domain(fence_req_t *req, virConnectPtr vp)
-{
-	if (req->flags & RF_UUID) {
-		return virDomainLookupByUUIDString(vp,
-					(const char *)req->domain);
-	}
-
-	return virDomainLookupByName(vp, (const char *)req->domain);
-}
-
-
-static inline int
-wait_domain(fence_req_t *req, virConnectPtr vp, int timeout)
-{
-	int tries = 0;
-	int response = 1;
-	virDomainPtr vdp;
-	virDomainInfo di;
-
-	if (!(vdp = get_domain(req, vp)))
-		return 0;
-
-	/* Check domain liveliness.  If the domain is still here,
-	   we return failure, and the client must then retry */
-	/* XXX On the xen 3.0.4 API, we will be able to guarantee
-	   synchronous virDomainDestroy, so this check will not
-	   be necessary */
-	do {
-		sleep(1);
-		vdp = get_domain(req, vp);
-		if (!vdp) {
-			dbg_printf(2, "Domain no longer exists\n");
-			response = 0;
-			break;
-		}
-
-		memset(&di, 0, sizeof(di));
-		virDomainGetInfo(vdp, &di);
-		virDomainFree(vdp);
-
-		if (di.state == VIR_DOMAIN_SHUTOFF) {
-			dbg_printf(2, "Domain has been shut off\n");
-			response = 0;
-			break;
-		}
-		
-		dbg_printf(4, "Domain still exists (state %d) after %d seconds\n",
-			di.state, tries);
-
-		if (++tries >= timeout)
-			break;
-	} while (1);
-
-	return response;
-}
-
-
-
-
-static int
-do_fence_request_tcp(fence_req_t *req, fence_auth_type_t auth,
-		     void *key, size_t key_len, virConnectPtr vp,
-		     int flags)
-{
-	int fd = -1, ret = -1;
-	virDomainPtr vdp = NULL, nvdp = NULL;
-	virDomainInfo vdi;
-	char response = 1;
-	char *domain_desc, *domain_desc_sanitized;
-	size_t sz;
-
-	if (!(vdp = get_domain(req, vp)) && (!(flags & F_NOCLUSTER))) {
-		dbg_printf(2, "Could not find domain: %s\n", req->domain);
-		goto out;
-	}
-
-	fd = connect_tcp(req, auth, key, key_len);
-	if (fd < 0) {
-		dbg_printf(2, "Could call back for fence request: %s\n", 
-			strerror(errno));
-		goto out;
-	}
-
-	switch(req->request) {
-	case FENCE_NULL:
-		dbg_printf(1, "NULL operation: returning failure\n");
-		response = 1;
-		break;
-	case FENCE_OFF:
-		logt_print(LOG_NOTICE, "Destroying domain %s...\n",
-			   (char *)req->domain);
-		if (flags & F_NOCLUSTER) {
-			if (!vdp ||
-			    ((virDomainGetInfo(vdp, &vdi) == 0) &&
-			     (vdi.state == VIR_DOMAIN_SHUTOFF))) {
-				dbg_printf(2, "[NOCLUSTER] Nothing to "
-					   "do - domain does not exist\n");
-				response = 0;
-				break;
-			}
-		}
-
-
-		dbg_printf(2, "[OFF] Calling virDomainDestroy\n");
-		ret = virDomainDestroy(vdp);
-		if (ret < 0) {
-			logt_print(LOG_ERR,
-				   "virDomainDestroy() failed: %d\n",
-				   ret);
-			break;
-		}
-
-		response = wait_domain(req, vp, 15);
-
-		if (response) {
-			logt_print(LOG_ERR,
-			   "Domain %s still exists; fencing failed\n",
-			   (char *)req->domain);
-		}
-		break;
-	case FENCE_REBOOT:
-		logt_print(LOG_NOTICE, "Rebooting domain %s...\n",
-			   (char *)req->domain);
-
-		if (flags & F_NOCLUSTER) {
-			if (!vdp ||
-			    ((virDomainGetInfo(vdp, &vdi) == 0) &&
-			     (vdi.state == VIR_DOMAIN_SHUTOFF))) {
-				dbg_printf(2, "[NOCLUSTER] Nothing to "
-					   "do - domain does not exist\n");
-				response = 0;
-				break;
-			}
-		}
-
-		domain_desc = virDomainGetXMLDesc(vdp, 0);
-
-		if (domain_desc) {
-			dbg_printf(3, "[[ XML Domain Info ]]\n");
-			dbg_printf(3, "%s\n[[ XML END ]]\n", domain_desc);
-
-			sz = 0;
-			if (cleanup_xml(domain_desc,
-					&domain_desc_sanitized, &sz) == 0) {
-				free(domain_desc);
-				domain_desc = domain_desc_sanitized;
-			}
-
-			dbg_printf(3, "[[ XML Domain Info (modified) ]]\n");
-			dbg_printf(3, "%s\n[[ XML END ]]\n", domain_desc);
-		} else {
-			dbg_printf(1, "Failed getting domain description from "
-				   "libvirt\n");
-		}
-
-		dbg_printf(2, "[REBOOT] Calling virDomainDestroy(%p)\n", vdp);
-		ret = virDomainDestroy(vdp);
-		if (ret < 0) {
-			logt_print(LOG_ERR,
-				   "virDomainDestroy() failed: %d/%d\n",
-				   ret, errno);
-			if (domain_desc)
-				free(domain_desc);
-			break;
-		}
-
-		response = wait_domain(req, vp, 15);
-
-		if (response) {
-			logt_print(LOG_ERR,
-				   "Domain %s still exists; fencing failed\n",
-				   (char *)req->domain);
-		} else if (domain_desc) {
-			/* Recreate the domain if possible */
-			/* Success... or not? */
-			dbg_printf(2, "Calling virDomainCreateLinux()...\n");
-			nvdp = virDomainCreateLinux(vp, domain_desc, 0);
-
-			if (nvdp == NULL) {
-				/* More recent versions of libvirt or perhaps the
- 				   KVM back-end do not let you create a domain from
- 				   XML if there is already a defined domain description
- 				   with the same name that it knows about.  You must
- 				   then call virDomainCreate() */
-				dbg_printf(2, "Failed; Trying virDomainCreate()...\n");
-				if (virDomainCreate(vdp) < 0) {
-					logt_print(LOG_ERR, "Failed to recreate guest"
-						   " %s!\n", (char *)req->domain);
-				}
-			}
-			free(domain_desc);
-		}
-		break;
-	}
-
-	dbg_printf(3, "Sending response to caller...\n");
-	if (write(fd, &response, 1) < 0) {
-		logt_print(LOG_ERR, "Failed to send response to caller: %s\n",
-			   strerror(errno));
-	}
-out:
-	if (vdp)
-		virDomainFree(vdp);
-	if (nvdp)
-		virDomainFree(nvdp);
-	if (fd != -1)
-		close(fd);
-
-	return 1;
-}
-
-
-static int
-virt_list_update(virConnectPtr vp, virt_list_t **vl, int my_id)
-{
-	virt_list_t *list = NULL;
-
-	list = vl_get(vp, my_id);
-	if (!list)
-		return -1;
-
-	if (*vl)
-		vl_free(*vl);
-	*vl = list;
-
-	return 0;
-}
-
-
-static int
-get_cman_ids(cman_handle_t ch, int *my_id, int *high_id)
-{
-	int max_nodes;
-	int actual;
-	cman_node_t *nodes = NULL;
-	cman_node_t me;
-	int high = 0, ret = -1, x, _local = 0;
-
-	if (!my_id && !high_id)
-		return 0;
-
-	if (!ch) {
-		_local = 1;
-		ch = cman_init(NULL);
-	}
-	if (!ch)
-		return -1;
-
-	max_nodes = cman_get_node_count(ch);
-	if (max_nodes <= 0)
-		goto out;
-
-	if (my_id) {
-		memset(&me, 0, sizeof(me));
-		if (cman_get_node(ch, CMAN_NODEID_US, &me) < 0)
-			goto out;
-		*my_id = me.cn_nodeid;
-	}
-
-	if (!high_id) {
-		ret = 0;
-		goto out;
-	}
-
-	nodes = malloc(sizeof(cman_node_t) * max_nodes);
-	if (!nodes)
-		goto out;
-	memset(nodes, 0, sizeof(cman_node_t) * max_nodes);
-
-	if (cman_get_nodes(ch, max_nodes, &actual, nodes) < 0)
-		goto out;
-
-	for (x = 0; x < actual; x++)
-		if (nodes[x].cn_nodeid > high && nodes[x].cn_member)
-			high = nodes[x].cn_nodeid;
-
-	*high_id = high;
-
-	ret = 0;
-out:
-	if (nodes)
-		free(nodes);
-	if (ch && _local)
-		cman_finish(ch);
-	return ret;
-}
-
-
-static int
-get_domain_state_ckpt(void *hp, unsigned char *domain, vm_state_t *state)
-{
-	errno = EINVAL;
-
-	if (!hp || !domain || !state || !strlen((char *)domain))
-		return -1;
-	if (!strcmp(DOMAIN0NAME, (char *)domain))
-		return -1;
-
-	return ckpt_read(hp, (char *)domain, state, sizeof(*state));
-}
-
-
-static void
-store_domains_by_name(void *hp, virt_list_t *vl)
-{
-	int x;
-
-	if (!vl)
-		return;
-
-	for (x = 0; x < vl->vm_count; x++) {
-		if (!strcmp(DOMAIN0NAME, vl->vm_states[x].v_name))
-			continue;
-		dbg_printf(2, "Storing %s\n", vl->vm_states[x].v_name);
-		ckpt_write(hp, vl->vm_states[x].v_name, 
-			   &vl->vm_states[x].v_state,
-			   sizeof(vm_state_t));
-	}
-}
-
-
-static void
-store_domains_by_uuid(void *hp, virt_list_t *vl)
-{
-	int x;
-
-	if (!vl)
-		return;
-
-	for (x = 0; x < vl->vm_count; x++) {
-		if (!strcmp(DOMAIN0UUID, vl->vm_states[x].v_uuid))
-			continue;
-		dbg_printf(2, "Storing %s\n", vl->vm_states[x].v_uuid);
-		ckpt_write(hp, vl->vm_states[x].v_uuid, 
-			   &vl->vm_states[x].v_state,
-			   sizeof(vm_state_t));
-	}
-}
-
-
-static void
-handle_remote_domain(cman_handle_t ch, void *h, fence_req_t *data,
-		     fence_auth_type_t auth, void *key, size_t key_len,
-		     int my_id)
-{
-	vm_state_t vst;
-	int high_id;
-	int fenced;
-	uint64_t fence_time;
-	char ret = 1;
-	cman_node_t node;
-	
-
-	if (get_domain_state_ckpt(h, data->domain, &vst) < 0) {
-		dbg_printf(1, "Evaluating Domain: %s   Last Owner/State Unknown\n",
-		       data->domain);
-		memset(&vst, 0, sizeof(vst));
-	} else {
-		dbg_printf(1, "Evaluating Domain: %s   Last Owner: %d   State %d\n",
-		       data->domain, vst.s_owner, vst.s_state);
-	}
-			
-	if (get_cman_ids(ch, NULL, &high_id) < 0) {
-		logt_print(LOG_ERR,
-			   "Error: Could not determine high node ID; "
-			   "unable to process fencing request\n");
-		return;
-	}
-	
-	if (my_id == high_id && vst.s_owner == 0) {
-		dbg_printf(1, "There is no record of that domain; "
-		       "returning success\n");
-		ret = 0;
-	} else if (my_id == high_id && vst.s_owner != my_id) {
-
-		memset(&node, 0, sizeof(node));
-		cman_get_node(ch, vst.s_owner, &node);
-		if (node.cn_nodeid == 0) {
-			dbg_printf(1, "Node %d does not exist\n",
-				   vst.s_owner);
-			return;
-		}
-
-		if (node.cn_member) {
-			dbg_printf(1,
-				   "Node %d is online - not taking action\n",
-				   vst.s_owner);
-			return;
-		}
-
-		fenced = 0;
-		cman_get_fenceinfo(ch, vst.s_owner, &fence_time, &fenced, NULL);
-		if (fenced == 0) {
-			dbg_printf(1, "Node %d is dead but not fenced - not "
-				   "taking action\n", vst.s_owner);
-			return;
-		}
-
-		dbg_printf(1, "Node %d is dead & fenced\n", vst.s_owner);
-		ret = 0;
-					
-	} else if (vst.s_owner == my_id) {
-		dbg_printf(1, "I am the last owner of the domain\n");
-		ret = 0;
-	}
-
-	if (!ret) {
-		switch(auth) {
-		case AUTH_NONE:
-		case AUTH_SHA1:
-		case AUTH_SHA256:
-		case AUTH_SHA512:
-			dbg_printf(1, "Plain TCP request\n");
-			do_notify_caller_tcp(data, auth, key, key_len, ret);
-			break;
-		default:
-			dbg_printf(1, "XXX Unhandled authentication\n");
-		}
-	}
-}
-
-
-static int
-xvmd_loop(cman_handle_t ch, void *h, int fd, fence_xvm_args_t *args,
-	  void *key, size_t key_len)
-{
-	fd_set rfds;
-	struct timeval tv;
-	struct sockaddr_in sin;
-	int len;
-	int n;
-	int my_id = 1;
-	socklen_t slen;
-	fence_req_t data;
-	virConnectPtr vp = NULL;
-	virt_list_t *vl = NULL;
-	virt_state_t *dom = NULL;
-
-	vp = virConnectOpen(args->uri);
-  	if (!vp)
-		logt_print(LOG_ERR, "virConnectOpen failed: %s\n",
-			   strerror(errno));
-  
-  	if (!(args->flags & F_NOCLUSTER))
-  		get_cman_ids(ch, &my_id, NULL);
-  
-	dbg_printf(1, "My Node ID = %d\n", my_id);
-	
-	if (vp) {
-		vl = vl_get(vp, my_id);
-		vl_print(vl);
-		virt_list_update(vp, &vl, my_id);
-		if (args->flags & F_USE_UUID) 
-			store_domains_by_uuid(h, vl);
-		else
-			store_domains_by_name(h, vl);
-	}
-
-	while (running) {
-		FD_ZERO(&rfds);
-		FD_SET(fd, &rfds);
-		tv.tv_sec = 10;
-		tv.tv_usec = 0;
-
-		/* Close the connection */
-		if (vp) {
-			virConnectClose(vp);
-			vp = NULL;
-		}
-
-		if (reload_key) {
-			char temp_key[MAX_KEY_LEN];
-			int ret;
-
-			reload_key = 0;
-
-			ret = read_key_file(args->key_file, temp_key,
-					    sizeof(temp_key));
-			if (ret < 0) {
-				logt_print(LOG_ERR, "Could not read %s; not updating key",
-					args->key_file);
-			} else {
-				memcpy(key, temp_key, MAX_KEY_LEN);
-				key_len = (size_t) ret;
-
-				if (args->auth == AUTH_NONE)
-					args->auth = AUTH_SHA256;
-				if (args->hash == HASH_NONE)
-					args->hash = HASH_SHA256;
-			}
-		}
-		
-		n = select(fd+1, &rfds, NULL, NULL, &tv);
-		if (n < 0)
-			continue;
-	
-		/* Request and/or timeout: open connection */
-		vp = virConnectOpen(args->uri);
-		if (!vp) {
-			logt_print(LOG_NOTICE, "NOTICE: virConnectOpen(): "
-				   "%s; cannot fence!\n", strerror(errno));
-			continue;
-		}
-			
-		/* Update list of VMs from libvirt. */
-		virt_list_update(vp, &vl, my_id);
-		vl_print(vl);
-
-		/* Store information here */
-		if (!(args->flags & F_NOCLUSTER)) {
-			if (args->flags & F_USE_UUID) 
-				store_domains_by_uuid(h, vl);
-			else
-				store_domains_by_name(h, vl);
-		}
-		
-		/* 
-		 * If no requests, we're done 
-		 */
-		if (n == 0)
-			continue;
-
-		slen = sizeof(sin);
-		len = recvfrom(fd, &data, sizeof(data), 0,
-			       (struct sockaddr *)&sin, &slen);
-		
-		if (len <= 0) {
-			logt_print(LOG_ERR, "recvfrom: %s\n",
-				   strerror(errno));
-			continue;
-		}
-
-		if (!verify_request(&data, args->hash, key, key_len)) {
-			dbg_printf(1, "Key mismatch; dropping packet\n");
-			continue;
-		}
-
-		if ((args->flags & F_USE_UUID) &&
-		    !(data.flags & RF_UUID)) {
-			dbg_printf(1, "Dropping packet: Request to fence by "
-			           "name while using UUIDs\n");
-			continue;
-		}
-
-		if (!(args->flags & F_USE_UUID) &&
-		    (data.flags & RF_UUID)) {
-			dbg_printf(1, "Dropping packet: Request to fence by "
-			           "UUID while using names\n");
-			continue;
-		}
-
-		dbg_printf(1, "Request to fence: %s\n", data.domain);
-		
-		if (args->flags & F_USE_UUID)
-			dom = vl_find_uuid(vl, (char *)data.domain);
-		else
-			dom = vl_find_name(vl, (char *)data.domain);
-		if (!dom && !(args->flags & F_NOCLUSTER)) {
-			handle_remote_domain(ch, h, &data, args->auth,
-					     key, key_len, my_id);
-			continue;
-		}
-
-		dbg_printf(1, "%s is running locally\n", (char *)data.domain);
-
-		switch(args->auth) {
-		case AUTH_NONE:
-		case AUTH_SHA1:
-		case AUTH_SHA256:
-		case AUTH_SHA512:
-			dbg_printf(1, "Plain TCP request\n");
-			do_fence_request_tcp(&data, args->auth, key,
-					     key_len, vp, args->flags);
-			break;
-		default:
-			logt_print(LOG_ERR, "XXX Unhandled authentication\n");
-		}
-	}
-
-	cman_finish(ch);
-	
-	if (vp) {
-		virConnectClose(vp);
-		vp = NULL;
-	}
-
-	return 0;
-}
-
-
-static void
-sigint_handler(int sig)
-{
-	running = 0;
-}
-
-static void
-sighup_handler(int sig)
-{
-	reload_key = 1;
-}
-
-static int
-ccs_read_old_logging(int ccsfd, int *facility, int *priority)
-{
-	char query[256];
-	char *val;
-	int x, ret = 0;
-
-	/* Get log log_facility */
-	snprintf(query, sizeof(query), "/cluster/fence_xvmd/@log_facility");
-	if (ccs_get(ccsfd, query, &val) == 0) {
-		logt_print(LOG_WARNING,
-			   "Use of fence_xvmd/@log_facility is deprecated!\n");
-		for (x = 0; facilitynames[x].c_name; x++) {
-			if (strcasecmp(val, facilitynames[x].c_name))
-				continue;
-			*facility = facilitynames[x].c_val;
-			ret = 1;
-			break;
-		}
-		free(val);
-	}
-
-	/* Get log level */
-	snprintf(query, sizeof(query), "/cluster/fence_xvmd/@log_level");
-	if (ccs_get(ccsfd, query, &val) == 0) {
-		logt_print(LOG_WARNING,
-			   "Use of fence_xvmd/@log_level is deprecated!\n");
-		*priority = atoi(val);
-		free(val);
-		if (*priority < 0)
-			*priority = SYSLOGLEVEL;
-		else
-			ret = 1;
-	}
-
-	return ret;
-}
-
-
-static void
-conf_logging(int debug, int logmode, int facility, int loglevel,
-	     int filelevel, char *fname)
-{
-	static int _log_config = 0;
-
-	if (debug)
-		filelevel = LOG_DEBUG;
-
-	if (_log_config) {
-		logt_conf(LOG_DAEMON_NAME, logmode, facility, loglevel,
-			  filelevel, fname);
-	}
-
-	logt_init(LOG_DAEMON_NAME, logmode, facility, loglevel,
-		  filelevel, fname);
-	_log_config = 1;
-}
-
-
-/**
-  Grab log configuration data from libccs
- */
-static int
-get_log_config_data(int use_ccs, int debug)
-{
-	char fname[PATH_MAX];
-	int logmode = log_mode_default;
-	int facility = SYSLOGFACILITY;
-	int loglevel = SYSLOGLEVEL, filelevel = SYSLOGLEVEL;
-	int need_close = 0, ccsfd = -1;
-
-	logt_print(LOG_DEBUG, "Loading logging configuration\n");
-
-	if (use_ccs) {
-		ccsfd = ccs_connect();
-		if (ccsfd < 0) {
-			logt_print(LOG_ERR, "Failed to gather logging "
-				"configuration; using defaults\n");
-			use_ccs = 0;
-		} else {
-			need_close = 1;
-		}
-	}
-
-	snprintf(fname, sizeof(fname)-1, LOGDIR "/fence_xvmd.log");
-
-	if (use_ccs) {
-		if (ccs_read_old_logging(ccsfd, &facility, &loglevel))
-			filelevel = loglevel;
-
-		ccs_read_logging(ccsfd, LOG_DAEMON_NAME, &debug, &logmode,
-       		 	&facility, &loglevel, &filelevel, (char *)fname);
-	}
-
-	conf_logging(debug, logmode, facility, loglevel, filelevel, fname);
-
-	if (need_close)
-		ccs_disconnect(ccsfd);
-
-	return 0;
-}
-
-
-int
-main(int argc, char **argv)
-{
-	fence_xvm_args_t args;
-	char key[MAX_KEY_LEN];
-	const char *my_options = "dfi:a:p:I:C:U:c:k:u?hLXV";
-	void *h = NULL;
-	char *dbgp = getenv("FENCE_XVMD_DEBUG");
-	cman_handle_t ch = NULL;
-	int key_len = 0, x, mc_sock;
-
-	/* Start w/ stderr output only */
-	conf_logging(0, LOG_MODE_OUTPUT_STDERR, SYSLOGFACILITY,
-		     SYSLOGLEVEL, SYSLOGLEVEL, NULL);
-
-	args_init(&args);
-
-	/* Grab debug level from our environment variable,
-	 * if specified.
-	 */
-	if (dbgp) {
-		x = atoi(dbgp);
-		if (x <= 0)
-			x = 1;	 /* Being set at all implies debug == 1 */
-
-		args.flags |= F_DEBUG;
-		args.debug = x;
-	}
-	args_get_getopt(argc, argv, my_options, &args);
-
-	if (args.flags & F_HELP) {
-		args_usage(argv[0], my_options, 0);
-
-		printf("Arguments may be specified as part of the\n");
-		printf("fence_xvmd tag in cluster.conf in the form of:\n");
-		printf("    <fence_xvmd argname=\"value\" ... />\n\n");
-
-		args_usage(argv[0], my_options, 1);
-		return 0;
-	}
-
-	if (args.flags & F_VERSION) {
-		printf("%s %s\n", basename(argv[0]), XVM_VERSION);
-		printf("fence release %s\n", RELEASE_VERSION);
-		logt_exit();
-		exit(0);
-	}
-
-	if (!(args.flags & F_NOCCS)) {
-		args_get_ccs(my_options, &args);
-	}
-
-	if (args.flags & F_FOREGROUND)
-		log_mode_default |= LOG_MODE_OUTPUT_STDERR;
-	get_log_config_data(!(args.flags & F_NOCCS), args.debug);
-
-	args_finalize(&args);
-	if (args.debug > 0) {
-		dset(args.debug);
-		args_print(&args);
-	}
-
-	if (args.flags & F_ERR)
-		goto out_fail;
-
-	if (args.auth != AUTH_NONE || args.hash != HASH_NONE) {
-		key_len = read_key_file(args.key_file, key, sizeof(key));
-		if (key_len < 0) {
-			logt_print(LOG_WARNING,
-				   "Could not read %s; operating without "
-			           "authentication\n", args.key_file);
-			args.auth = AUTH_NONE;
-			args.hash = HASH_NONE;
-		}
-	}
-
-	/* Fork in to background */
-	/* XXX need to wait for child to successfully start before
-	   exiting... */
-	if (!(args.flags & F_FOREGROUND)) {
-		logt_exit();
-		if(daemon(0,0)) {
-			logt_reinit();
-			logt_print(LOG_ERR, "Could not daemonize\n");
-			goto out_fail;
-		}
-		logt_reinit();
-	}
-
-	if (virInitialize() != 0) {
-		logt_print(LOG_ERR, "Could not initialize libvirt\n");
-		goto out_fail;
-	}
-
-	/* Initialize NSS; required to do hashing, as silly as that
-	   sounds... */
-	if (NSS_NoDB_Init(NULL) != SECSuccess) {
-		logt_print(LOG_ERR, "Could not initialize NSS\n");
-		goto out_fail;
-	}
-	
-	if (!(args.flags & F_NOCLUSTER)) {
-		/* Wait for cman to start. */
-		x = 0;
-		while ((ch = cman_init(NULL)) == NULL) {
-			if (!x) {
-				dbg_printf(1,
-				  "Could not connect to CMAN; retrying...\n");
-				x = 1;
-			}
-			sleep(3);
-		}
-		if (x)
-			dbg_printf(1, "Connected to CMAN\n");
-		/* Wait for quorum */
-		while (!cman_is_quorate(ch))
-			sleep(3);
-
-		/* Wait for openais checkpointing to become available */
-		x = 0;
-		while ((h = ckpt_init("vm_states", 262144, 4096, 64, 10)) == NULL) {
-			if (!x) {
-				dbg_printf(1, "Could not initialize saCkPt; retrying...\n");
-				x = 1;
-			}
-			sleep(3);
-		}
-		if (x)
-			dbg_printf(1, "Checkpoint initialized\n");
-	}
-
-	if (args.family == PF_INET)
-		mc_sock = ipv4_recv_sk(args.addr, args.port, args.ifindex);
-	else
-		mc_sock = ipv6_recv_sk(args.addr, args.port, args.ifindex);
-	if (mc_sock < 0) {
-		logt_print(LOG_ERR,
-			   "Could not set up multicast listen socket\n");
-		goto out_fail;
-	}
-
-
-	signal(SIGHUP, sighup_handler);
-	signal(SIGINT, sigint_handler);
-	signal(SIGTERM, sigint_handler);
-	signal(SIGQUIT, sigint_handler);
-	xvmd_loop(ch, h, mc_sock, &args, key, key_len);
-
-	return 0;
-
-out_fail:
-	logt_exit();
-	return 1;
-}
diff --git a/fence/agents/xvm/mcast.c b/fence/agents/xvm/mcast.c
deleted file mode 100644
index 1effa83..0000000
--- a/fence/agents/xvm/mcast.c
+++ /dev/null
@@ -1,366 +0,0 @@
-/*
- * Author: Lon Hohberger <lhh at redhat.com>
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-#include <sys/socket.h>
-#include <sys/ioctl.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <pthread.h>
-
-/* Local includes */
-#include "mcast.h"
-#include "debug.h"
-
-/** 
-  Sets up a multicast receive socket
- */
-int
-ipv4_recv_sk(char *addr, int port, unsigned int ifindex)
-{
-	int sock;
-	struct ip_mreqn mreq;
-	struct sockaddr_in sin;
-
-	memset(&mreq, 0, sizeof(mreq));
-
-	/* Store multicast address */
-	if (inet_pton(PF_INET, addr,
-		      (void *)&mreq.imr_multiaddr.s_addr) < 0) {
-		printf("Invalid multicast address: %s\n", addr);
-		return -1;
-	}
-
-	/********************************
-	 * SET UP MULTICAST RECV SOCKET *
-	 ********************************/
-	dbg_printf(4, "Setting up ipv4 multicast receive (%s:%d)\n", addr, port);
-	sock = socket(PF_INET, SOCK_DGRAM, 0);
-	if (sock < 0) {
-		printf("socket: %s\n", strerror(errno));
-		close(sock);
-		sock = -1;
-		return 1;
-	}
-
-	/*
-	 * When using Multicast, bind to the LOCAL address, not the MULTICAST
-	 * address.
-	 */
-	sin.sin_family = PF_INET;
-	sin.sin_port = htons(port);
-	sin.sin_addr.s_addr = htonl(INADDR_ANY);
-	if (bind(sock, (struct sockaddr *) &sin,
-		 sizeof(struct sockaddr_in)) < 0) {
-		printf("bind failed: %s\n", strerror(errno));
-		close(sock);
-		return -1;
-	}
-
-	/*
-	 * Join multicast group
-	 */
-	/* mreq.imr_multiaddr.s_addr is set above */
-	if (ifindex <= 0) {
-		dbg_printf(4,"Using 'any' address/interface\n");
-        	mreq.imr_address.s_addr = htonl(INADDR_ANY);
-	} else {
-		dbg_printf(4,"Using interface index %d\n", ifindex);
-		mreq.imr_ifindex = ifindex;
-	}
-	dbg_printf(4, "Joining multicast group\n");
-	if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP,
-		       &mreq, sizeof(mreq)) == -1) {
-		dbg_printf(1,"Failed to bind multicast receive socket to "
-		       "%s: %s\n", addr, strerror(errno));
-		dbg_printf(1,"Check network configuration.\n");
-		close(sock);
-		return -1;
-	}
-
-	dbg_printf(4, "%s: success, fd = %d\n", __FUNCTION__, sock);
-	return sock;
-}
-
-
-/**
-  Set up multicast send socket
- */
-int
-ipv4_send_sk(char *send_addr, char *addr, int port, struct sockaddr *tgt,
-	     socklen_t tgt_len, int ttl)
-{
-	int val;
-	struct ip_mreq mreq;
-	struct sockaddr_in mcast;
-	struct sockaddr_in src;
-	int sock;
-
-	if (tgt_len < sizeof(struct sockaddr_in)) {
-		errno = EINVAL;
-		return -1;
-	}
-
-	memset(&mreq, 0, sizeof(mreq));
-
-	/* Store multicast address */
-	mcast.sin_family = PF_INET;
-	mcast.sin_port = htons(port);
-	if (inet_pton(PF_INET, addr,
-		      (void *)&mcast.sin_addr.s_addr) < 0) {
-		printf("Invalid multicast address: %s\n", addr);
-		return -1;
-	}
-	mreq.imr_multiaddr.s_addr = mcast.sin_addr.s_addr;
-
-	/* Store sending address */
-	src.sin_family = PF_INET;
-	src.sin_port = htons(port);
-	if (inet_pton(PF_INET, send_addr,
-		      (void *)&src.sin_addr.s_addr) < 0) {
-		printf("Invalid source address: %s\n", send_addr);
-		return -1;
-	}
-	mreq.imr_interface.s_addr = src.sin_addr.s_addr;
-
-
-	/*************************
-	 * SET UP MULTICAST SEND *
-	 *************************/
-	dbg_printf(4, "Setting up ipv4 multicast send (%s:%d)\n", addr, port);
-	sock = socket(PF_INET, SOCK_DGRAM, 0);
-	if (sock < 0) {
-		perror("socket");
-		return -1;
-	}
-
-	/*
-	 * Join Multicast group.
-	 */
-	dbg_printf(4, "Joining IP Multicast group (pass 1)\n");
-	if (setsockopt(sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq,
-		       sizeof(mreq)) == -1) {
-		printf("Failed to add multicast membership to transmit "
-		       "socket %s: %s\n", addr, strerror(errno));
-		close(sock);
-		return -1;
-	}
-
-	/*
-	 * Join Multicast group.
-	 */
-	dbg_printf(4, "Joining IP Multicast group (pass 2)\n");
-	if (setsockopt(sock, IPPROTO_IP, IP_MULTICAST_IF, &src.sin_addr,
-		       sizeof(src.sin_addr)) == -1) {
-		printf("Failed to bind multicast transmit socket to "
-		       "%s: %s\n", addr, strerror(errno));
-		close(sock);
-		return -1;
-	}
-
-	/*
-	 * set time to live to 2 hops.
-	 */
-	dbg_printf(4, "Setting TTL to %d for fd%d\n", ttl, sock);
-	val = ttl;
-	if (setsockopt(sock, SOL_IP, IP_MULTICAST_TTL, &val,
-		       sizeof(val)))
-		printf("warning: setting TTL failed %s\n", strerror(errno));
-
-	memcpy((struct sockaddr_in *)tgt, &mcast, sizeof(struct sockaddr_in));
-
-	dbg_printf(4, "%s: success, fd = %d\n", __FUNCTION__, sock);
-	return sock;
-}
-
-
-
-/** 
-  Sets up a multicast receive (ipv6) socket
- */
-int
-ipv6_recv_sk(char *addr, int port, unsigned int ifindex)
-{
-	int sock, val;
-	struct ipv6_mreq mreq;
-	struct sockaddr_in6 sin;
-
-	memset(&mreq, 0, sizeof(mreq));
-	memset(&sin, 0, sizeof(sin));
-	sin.sin6_family = PF_INET6;
-	sin.sin6_port = htons(port);
-	if (inet_pton(PF_INET6, addr,
-		      (void *)&sin.sin6_addr) < 0) {
-		printf("Invalid multicast address: %s\n", addr);
-		return -1;
-	}
-
-	memcpy(&mreq.ipv6mr_multiaddr, &sin.sin6_addr,
-	       sizeof(struct in6_addr));
-
-	mreq.ipv6mr_interface = ifindex;
-
-	/********************************
-	 * SET UP MULTICAST RECV SOCKET *
-	 ********************************/
-	dbg_printf(4, "Setting up ipv6 multicast receive (%s:%d)\n", addr, port);
-	sock = socket(PF_INET6, SOCK_DGRAM, IPPROTO_UDP);
-	if (sock < 0) {
-		printf("socket: %s\n", strerror(errno));
-		close(sock);
-		sock = -1;
-		return 1;
-	}
-
-	/*
-	 * When using Multicast, bind to the LOCAL address, not the MULTICAST
-	 * address.
-	 */
-	memset(&sin, 0, sizeof(sin));
-	sin.sin6_family = PF_INET6;
-	sin.sin6_port = htons(port);
-	sin.sin6_addr = in6addr_any;
-	if (bind(sock, (struct sockaddr *) &sin,
-		 sizeof(struct sockaddr_in6)) < 0) {
-		printf("bind failed: %s\n", strerror(errno));
-		close(sock);
-		return -1;
-	}
-
-	dbg_printf(4, "Disabling IP Multicast loopback\n");
-	val = 1;
-	if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &val,
-		       sizeof(val)) != 0) {
-		printf("Failed to disable multicast loopback\n");
-		close(sock);
-		return -1;
-	}
-
-	/*
-	 * Join multicast group
-	 */
-	dbg_printf(4, "Joining IP Multicast group\n");
-	if (setsockopt(sock, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq,
-		       sizeof(mreq)) == -1) {
-		printf("Failed to add multicast to socket %s: %s\n",
-		       addr, strerror(errno));
-		close(sock);
-		return -1;
-	}
-
-	dbg_printf(4, "%s: success, fd = %d\n", __FUNCTION__, sock);
-	return sock;
-}
-
-
-/**
-  Set up ipv6 multicast send socket
- */
-int
-ipv6_send_sk(char *send_addr, char *addr, int port, struct sockaddr *tgt,
-	     socklen_t tgt_len, int ttl)
-{
-	int val;
-	struct ipv6_mreq mreq;
-	struct sockaddr_in6 mcast;
-	struct sockaddr_in6 src;
-	int sock;
-
-	if (tgt_len < sizeof(struct sockaddr_in6)) {
-		errno = EINVAL;
-		return -1;
-	}
-
-	memset(&mreq, 0, sizeof(mreq));
-
-	/* Store multicast address */
-	mcast.sin6_family = PF_INET6;
-	mcast.sin6_port = htons(port);
-	if (inet_pton(PF_INET6, addr,
-		      (void *)&mcast.sin6_addr) < 0) {
-		printf("Invalid multicast address: %s\n", addr);
-		return -1;
-	}
-
-	memcpy(&mreq.ipv6mr_multiaddr, &mcast.sin6_addr,
-	       sizeof(struct in6_addr));
-
-	/* Store sending address */
-	src.sin6_family = PF_INET6;
-	src.sin6_port = htons(port);
-	if (inet_pton(PF_INET6, send_addr,
-		      (void *)&src.sin6_addr) < 0) {
-		printf("Invalid source address: %s\n", send_addr);
-		return -1;
-	}
-
-	/*************************
-	 * SET UP MULTICAST SEND *
-	 *************************/
-	dbg_printf(4, "Setting up ipv6 multicast send (%s:%d)\n", addr, port);
-	sock = socket(PF_INET6, SOCK_DGRAM, 0);
-	if (sock < 0) {
-		perror("socket");
-		return -1;
-	}
-
-	dbg_printf(4, "Disabling IP Multicast loopback\n");
-	val = 1;
-	if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &val,
-		       sizeof(val)) != 0) {
-		printf("Failed to disable multicast loopback\n");
-		close(sock);
-		return -1;
-	}
-
-	/*
-	 * Join Multicast group.
-	 */
-	dbg_printf(4, "Joining IP Multicast group\n");
-	if (setsockopt(sock, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq,
-		       sizeof(mreq)) == -1) {
-		printf("Failed to add multicast membership to transmit "
-		       "socket %s: %s\n", addr, strerror(errno));
-		close(sock);
-		return -1;
-	}
-
-	/*
-	 * Join Multicast group (part 2)
-	 */
-	/*
-	if (setsockopt(sock, IPPROTO_IPV6, IP_MULTICAST_IF, &src.sin6_addr,
-		       sizeof(src.sin6_addr)) == -1) {
-		printf("Failed to bind multicast transmit socket to "
-		       "%s: %s\n", addr, strerror(errno));
-		close(sock);
-		return -1;
-	}
-	*/
-
-	/*
-	 * set time to live to 2 hops.
-	 */
-	val = ttl;
-	if (setsockopt(sock, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &val,
-		       sizeof(val)))
-		printf("warning: setting TTL failed %s\n", strerror(errno));
-
-	memcpy((struct sockaddr_in *)tgt, &mcast, sizeof(struct sockaddr_in6));
-
-	dbg_printf(4, "%s: success, fd = %d\n", __FUNCTION__, sock);
-	return sock;
-}
diff --git a/fence/agents/xvm/mcast.h b/fence/agents/xvm/mcast.h
deleted file mode 100644
index 08fd6de..0000000
--- a/fence/agents/xvm/mcast.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef _XVM_MCAST_H
-#define _XVM_MCAST_H
-
-#define IPV4_MCAST_DEFAULT "225.0.0.12"
-#define IPV6_MCAST_DEFAULT "ff05::3:1"
-
-int ipv4_recv_sk(char *addr, int port, unsigned int ifindex);
-int ipv4_send_sk(char *src_addr, char *addr, int port,
-		 struct sockaddr *src, socklen_t slen,
-		 int ttl);
-int ipv6_recv_sk(char *addr, int port, unsigned int ifindex);
-int ipv6_send_sk(char *src_addr, char *addr, int port,
-		 struct sockaddr *src, socklen_t slen,
-		 int ttl);
-
-#endif
diff --git a/fence/agents/xvm/options-ccs.c b/fence/agents/xvm/options-ccs.c
deleted file mode 100644
index 01ca051..0000000
--- a/fence/agents/xvm/options-ccs.c
+++ /dev/null
@@ -1,97 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-#include <sys/ioctl.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <errno.h>
-
-/* Local includes */
-#include "xvm.h"
-#include "simple_auth.h"
-#include "mcast.h"
-#include "options.h"
-
-#include <ccs.h>
-
-extern int _debug;
-
-/**
-  Parse args from ccs and assign to the specified args structure.
-  (This should only be called from fence_xvmd; not fence_xvm!!!)
-  
-  @param optstr		Command line option string in getopt(3) format
-  @param args		Args structure to fill in.
- */
-void
-args_get_ccs(const char *optstr, fence_xvm_args_t *args)
-{
-	char buf[256];
-	int ccsfd = -1, x, n;
-	char *val;
-	struct arg_info *arg;
-	
-	if (args->flags & (F_NOCCS | F_HELP | F_VERSION))
-		return;
-
-	ccsfd = ccs_connect();
-	if (ccsfd < 0) {
-		args->flags |= F_CCSFAIL;
-		return;
-	}
-
-	for (x = 0; x < strlen(optstr); x++) {
-		arg = find_arg_by_char(optstr[x]);
-		if (!arg)
-			continue;
-
-		if (!arg || (arg->opt != '\xff' && 
-			     !strchr(optstr, arg->opt))) {
-			continue;
-		}
-
-		if (!arg->stdin_opt)
-			continue;
-
-		n = snprintf(buf, sizeof(buf), "/cluster/fence_xvmd/@%s\n",
-			     arg->stdin_opt);
-		if (n == sizeof(buf)) {
-			args->flags |= F_CCSERR;
-			return;		
-		}
-
-		val = NULL;
-		if (ccs_get(ccsfd, buf, &val) != 0) {
-			if (val) {
-				free(val);
-				val = NULL;
-			}
-			continue;
-		}
-
-		if (!val)
-			continue;
-
-		if (arg->assign)
-			arg->assign(args, arg, val);
-
-		if (val) {
-			free(val);
-			val = NULL;
-		}
-	}
-	
-	ccs_disconnect(ccsfd);
-}
diff --git a/fence/agents/xvm/options.c b/fence/agents/xvm/options.c
deleted file mode 100644
index c0914a5..0000000
--- a/fence/agents/xvm/options.c
+++ /dev/null
@@ -1,774 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
-#include <sys/un.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-#include <sys/ioctl.h>
-#include <arpa/inet.h>
-#include <net/if.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <sys/time.h>
-#include <fcntl.h>
-#include <errno.h>
-
-/* Local includes */
-#include "xvm.h"
-#include "simple_auth.h"
-#include "mcast.h"
-#include "options.h"
-#include "debug.h"
-
-
-/* Assignment functions */
-
-static inline void
-assign_debug(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (!value) {
-		/* GNU getopt sets optarg to NULL for options w/o a param
-		   We rely on this here... */
-		/* Command-line debug sets a special flag */
-		args->flags |= F_DEBUG;
-		args->debug++;
-		return;
-	}
-
-	args->debug = atoi(value);
-	if (args->debug < 0) {
-		args->debug = 1;
-	}
-}
-
-
-static inline void
-assign_foreground(fence_xvm_args_t *args, struct arg_info *arg,
-		  char *value)
-{
-	args->flags |= F_FOREGROUND;
-}
-
-
-static inline void
-assign_family(fence_xvm_args_t *args, struct arg_info *arg,
-	      char *value)
-{
-	if (!strcasecmp(value, "ipv4")) {
-		args->family = PF_INET;
-	} else if (!strcasecmp(value, "ipv6")) {
-		args->family = PF_INET6;
-	} else if (!strcasecmp(value, "auto")) {
-		args->family = 0;
-	} else {
-		logt_print(LOG_ERR, "Unsupported family: '%s'\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_address(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (args->addr)
-		free(args->addr);
-	args->addr = strdup(value);
-}
-
-
-static inline void
-assign_ttl(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	int ttl;
-	ttl = atoi(value);
-	if (ttl < 1 || ttl > 255)
-		ttl = DEFAULT_TTL;
-	args->ttl = ttl;
-}
-
-
-static inline void
-assign_port(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->port = atoi(value);
-	if (args->port <= 0 || args->port >= 65500) {
-		logt_print(LOG_ERR, "Invalid port: '%s'\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_interface(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->ifindex = if_nametoindex(value);
-}
-
-
-static inline void
-assign_retrans(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->retr_time = atoi(value);
-	if (args->retr_time <= 0) {
-		logt_print(LOG_ERR, "Invalid retransmit time: '%s'\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-static inline void
-assign_hash(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (!strcasecmp(value, "none")) {
-		args->hash = HASH_NONE;
-	} else if (!strcasecmp(value, "sha1")) {
-		args->hash = HASH_SHA1;
-	} else if (!strcasecmp(value, "sha256")) {
-		args->hash = HASH_SHA256;
-	} else if (!strcasecmp(value, "sha512")) {
-		args->hash = HASH_SHA512;
-	} else {
-		logt_print(LOG_ERR, "Unsupported hash: %s\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_auth(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (!strcasecmp(value, "none")) {
-		args->auth = AUTH_NONE;
-	} else if (!strcasecmp(value, "sha1")) {
-		args->auth = AUTH_SHA1;
-	} else if (!strcasecmp(value, "sha256")) {
-		args->auth = AUTH_SHA256;
-	} else if (!strcasecmp(value, "sha512")) {
-		args->auth = AUTH_SHA512;
-	} else {
-		logt_print(LOG_ERR, "Unsupported auth type: %s\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-static inline void
-assign_key(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	struct stat st;
-
-	if (args->key_file)
-		free(args->key_file);
-	args->key_file = strdup(value);
-
-	if (stat(value, &st) == -1) {
- 		logt_print(LOG_ERR, "Invalid key file: '%s' (%s)\n", value,
-  		       strerror(errno));
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_op(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (!strcasecmp(value, "null")) {
-		args->op = FENCE_NULL;
-	} else if (!strcasecmp(value, "off")) {
-		args->op = FENCE_OFF;
-	} else if (!strcasecmp(value, "reboot")) {
-		args->op = FENCE_REBOOT;
-	} else if (!strcasecmp(value, "metadata")) {
-		args->flags |= F_METADATA;
-	} else {
-		logt_print(LOG_ERR, "Unsupported operation: %s\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_domain(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (args->domain) {
-		logt_print(LOG_ERR,
-		   "Domain/UUID may not be specified more than once\n");
-		args->flags |= F_ERR;
-		return;
-	}
-
-	if (args->domain)
-		free(args->domain);
-	args->domain = strdup(value);
-
-	if (strlen(value) <= 0) {
-		logt_print(LOG_ERR, "Invalid domain name\n");
-		args->flags |= F_ERR;
-	}
-
-	if (strlen(value) >= MAX_DOMAINNAME_LENGTH) {
-		errno = ENAMETOOLONG;
-		logt_print(LOG_ERR, "Invalid domain name: '%s' (%s)\n",
-		       value, strerror(errno));
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_uuid_lookup(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (!value) {
-		/* GNU getopt sets optarg to NULL for options w/o a param
-		   We rely on this here... */
-		args->flags |= F_USE_UUID;
-		return;
-	}
-
-	args->flags |= ( !!atoi(value) ? F_USE_UUID : 0);
-}
-
-
-static inline void
-assign_timeout(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->timeout = atoi(value);
-	if (args->timeout <= 0) {
-		logt_print(LOG_ERR, "Invalid timeout: '%s'\n", value);
-		args->flags |= F_ERR;
-	}
-}
-
-
-static inline void
-assign_help(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->flags |= F_HELP;
-}
-
-
-static inline void
-assign_version(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->flags |= F_VERSION;
-}
-
-
-static inline void
-assign_noccs(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->flags |= F_NOCCS;
-}
-
-
-static inline void
-assign_nocluster(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	args->flags |= F_NOCCS;
-	args->flags |= F_NOCLUSTER;
-}
-
-
-static inline void
-assign_uri(fence_xvm_args_t *args, struct arg_info *arg, char *value)
-{
-	if (args->uri)
-		free(args->uri);
-
-	/* XXX NO validation yet */
-	args->uri = strdup(value);
-}
-
-
-/** ALL valid command line and stdin arguments for this fencing agent */
-static struct arg_info _arg_info[] = {
-	{ '\xff', NULL, "agent",
-	  0, "boolean", NULL,
-	  "Not user serviceable",
-	  NULL },
-
-	{ '\xff', NULL, "self",
-	  0, "boolean", NULL,
-	  "Not user serviceable", 
-	  NULL },
-
-	{ 'd', "-d", "debug",
-	  0, "boolean", NULL,
-	  "Specify (CCS) / increment (command line) debug level",
-	  assign_debug },
-
-	{ 'f', "-f", NULL,
-	  0, "boolean", NULL,
-	  "Foreground mode (do not fork)",
-	  assign_foreground },
-
-	{ 'i', "-i <family>", "ip_family",
-	  0, "string", "auto",
-	  "IP Family ([auto], ipv4, ipv6)",
-	  assign_family },
-
-	{ 'a', "-a <address>", "multicast_address",
-	  0, "string", NULL,
-	  "Multicast address (default=225.0.0.12 / ff02::3:1)",
-	  assign_address },
-
-	{ 'T', "-T <ttl>", "multicast_ttl",
-	  0, "string", "2",
-	  "Multicast time-to-live (in hops; default=2)",
-	  assign_ttl },
-
-	{ 'p', "-p <port>", "port",
-	  0, "string", "1229",
-	  "IP port (default=1229)",
-	  assign_port },
-
-	{ 'I', "-I <interface>", "interface",
-	  0, "string", NULL,
-	  "Network interface name to listen on",
-	  assign_interface },
-
-	{ 'r', "-r <retrans>", "retrans", 
-	  0, "string", "20",
-	  "Multicast retransmit time (in 1/10sec; default=20)",
-	  assign_retrans },
-
-	{ 'c', "-c <hash>", "hash",
-	  0, "string", "sha256",
-	  "Packet hash strength (none, sha1, [sha256], sha512)",
-	  assign_hash },
-
-	{ 'C', "-C <auth>", "auth",
-	  0, "string", "sha256",
-	  "Authentication (none, sha1, [sha256], sha512)",
-	  assign_auth },
-
-	{ 'k', "-k <file>", "key_file",
-	  0, "string", DEFAULT_KEY_FILE,
-	  "Shared key file (default=" DEFAULT_KEY_FILE ")",
-	  assign_key },
-
-	{ '\xff', NULL, "option",
-	  0, "string", "reboot",
-	  "Fencing operation (null, off, [reboot])",
-	  assign_op },
-
-	{ 'o', "-o <action>", "action",
-	  0, "string", "reboot",
-	  "Fencing action (null, off, [reboot])",
-	  assign_op },
-
-	{ 'H', "-H <domain>", "domain",
-	  1, "string", NULL,
-	  "Virtual machine (domain name) to fence",
-	  assign_domain },
-
-	{ 'u', "-u", "use_uuid",
-	  0, "string", NULL,
-	  "Treat 'domain' as UUID instead of domain name",
-	  assign_uuid_lookup },
-
-	{ 't', "-t <timeout>", "timeout",
-	  0, "string", "30",
-	  "Fencing timeout (in seconds; default=30)",
-	  assign_timeout },
-
-	{ 'h', "-h", NULL,
-	  0, "boolean", NULL,
- 	  "Help",
-	  assign_help },
-
-	{ '?', "-?", NULL,
-	  0, "boolean", NULL,
- 	  "Help (alternate)", 
-	  assign_help },
-
-	{ 'X', "-X", NULL,
-	  0, "boolean", NULL,
- 	  "Do not connect to CCS for configuration", 
-	  assign_noccs }, 
-
-	{ 'L', "-L", NULL,
-	  0, "boolean", NULL,
- 	  "Local mode only (no cluster; implies -X)",
-	  assign_nocluster }, 
-
-	{ 'U', "-U", "uri",
-	  0, "string", DEFAULT_HYPERVISOR_URI,
-	  "URI for Hypervisor (default: " DEFAULT_HYPERVISOR_URI ")",
-	  assign_uri },
-	  
-	{ 'V', "-V", NULL,
-	  0, "string", NULL,
- 	  "Display version and exit", 
-	  assign_version },
-
-	/* Terminator */
-	{ 0, NULL, NULL, 0, NULL, NULL, NULL, NULL }
-};
-
-
-struct arg_info *
-find_arg_by_char(char arg)
-{
-	int x = 0;
-
-	for (x = 0; _arg_info[x].opt != 0; x++) {
-		if (_arg_info[x].opt == arg)
-			return &_arg_info[x];
-	}
-
-	return NULL;
-}
-
-
-struct arg_info *
-find_arg_by_string(char *arg)
-{
-	int x = 0;
-
-	for (x = 0; _arg_info[x].opt != 0; x++) {
-		if (!_arg_info[x].stdin_opt)
-			continue;
-		if (!strcasecmp(_arg_info[x].stdin_opt, arg))
-			return &_arg_info[x];
-	}
-
-	return NULL;
-}
-
-
-/* ============================================================= */
-
-/**
-  Initialize an args structure.
-
-  @param args		Pointer to args structure to initialize.
- */
-void
-args_init(fence_xvm_args_t *args)
-{
-	args->addr = NULL;
-	args->domain = NULL;
-	args->key_file = strdup(DEFAULT_KEY_FILE);
-	args->uri = strdup(DEFAULT_HYPERVISOR_URI);
-	args->op = FENCE_REBOOT;
-	args->hash = DEFAULT_HASH;
-	args->auth = DEFAULT_AUTH;
-	args->port = 1229;
-	args->ifindex = 0;
-	args->family = PF_INET;
-	args->timeout = 30;
-	args->retr_time = 20;
-	args->flags = 0;
-	args->debug = 0;
-	args->ttl = DEFAULT_TTL;
-}
-
-
-#define _pr_int(piece) dbg_printf(1, "  %s = %d\n", #piece, piece)
-#define _pr_str(piece) dbg_printf(1, "  %s = %s\n", #piece, piece)
-
-
-/**
-  Prints out the contents of an args structure for debugging.
-
-  @param args		Pointer to args structure to print out.
- */
-void
-args_print(fence_xvm_args_t *args)
-{
-	dbg_printf(1, "-- args @ %p --\n", args);
-	_pr_str(args->addr);
-	_pr_str(args->domain);
-	_pr_str(args->key_file);
-	_pr_int(args->op);
-	_pr_int(args->hash);
-	_pr_int(args->auth);
-	_pr_int(args->port);
-	_pr_int(args->ifindex);
-	_pr_int(args->family);
-	_pr_int(args->timeout);
-	_pr_int(args->retr_time);
-	_pr_int(args->flags);
-	_pr_int(args->debug);
-	dbg_printf(1, "-- end args --\n");
-}
-
-
-/**
-  Print out arguments and help information based on what is allowed in
-  the getopt string optstr.
-
-  @param progname	Program name.
-  @param optstr		Getopt(3) style options string
-  @param print_stdin	0 = print command line options + description,
-			1 = print fence-style stdin args + description
- */
-void
-args_usage(char *progname, const char *optstr, int print_stdin)
-{
-	int x;
-	struct arg_info *arg;
-
-	if (!print_stdin) {
-		if (progname) {
-			printf("usage: %s [args]\n", progname);
-		} else {
-			printf("usage: fence_xvm [args]\n");
-		}
-	}
-
-	for (x = 0; x < strlen(optstr); x++) {
-		arg = find_arg_by_char(optstr[x]);
-		if (!arg)
-			continue;
-
-		if (print_stdin) {
-			if (arg && arg->stdin_opt)
-				printf("  %-20.20s %-55.55s\n",
-				       arg->stdin_opt, arg->desc);
-		} else {
-			printf("  %-20.20s %-55.55s\n", arg->opt_desc,
-			       arg->desc);
-		}
-	}
-
-	printf("\n");
-}
-
-
-static void
-print_desc_xml(const char *desc)
-{
-	const char *d;
-
-	for (d = desc; *d; d++) {
-		switch (*d) {
-		case '<':
-			printf("&lt;");
-			break;
-		case '>':
-			printf("&gt;");
-			break;
-		default:
-			printf("%c", *d);
-		}
-	}
-}
-
-
-void
-args_metadata(char *progname, const char *optstr)
-{
-	int x;
-	struct arg_info *arg;
-
-	printf("<?xml version=\"1.0\" ?>\n");
-	printf("<resource-agent name=\"%s\" shortdesc=\"Fence agent for virtual machines\">\n", basename(progname));
-	printf("<longdesc>fence_xvm  is  an I/O Fencing agent which can be used with any "
-"virtual machines for which libvirt has a backend.  When used on virtual "
-"machines which are backed by clustered storage (and thus, may "
-"be migrated about several physical machines), there is a "
-"requirement that the host machines are also a part of a CMAN/OpenAIS based "
-"cluster, such as linux-cluster.</longdesc>\n");
-	printf("<parameters>\n");
-
-	for (x = 0; x < strlen(optstr); x++) {
-		arg = find_arg_by_char(optstr[x]);
-		if (!arg)
-			continue;
-		if (!arg->stdin_opt)
-			continue;
-
-		printf("\t<parameter name=\"%s\">\n",arg->stdin_opt);
-                printf("\t\t<getopt mixed=\"-%c\" />\n",arg->opt);
-                if (arg->default_value) {
-                  printf("\t\t<content type=\"%s\" default=\"%s\" />\n", arg->content_type, arg->default_value);
-                } else {
-                  printf("\t\t<content type=\"%s\" />\n", arg->content_type);
-                }
-		printf("\t\t<shortdesc lang=\"en\">");
-		print_desc_xml(arg->desc);
-		printf("</shortdesc>\n");
-		printf("\t</parameter>\n");
-	}
-
-	printf("</parameters>\n");
-	printf("<actions>\n");
-	printf("\t<action name=\"off\" />\n");
-	printf("\t<action name=\"reboot\" />\n");
-	printf("\t<action name=\"metadata\" />\n");	
-	printf("</actions>\n");
-	printf("</resource-agent>\n");
-}
-
-
-/**
-  Remove leading and trailing whitespace from a line of text.
-
-  @param line		Line to clean up
-  @param linelen	Max size of line
-  @return		0 on success, -1 on failure
- */
-static int
-cleanup(char *line, size_t linelen)
-{
-	char *p;
-	int x;
-	
-	/* Remove leading whitespace. */
-	p = line;
-	for (x = 0; x <= linelen; x++) {
-		switch (line[x]) {
-		case '\t':
-		case ' ':
-			break;
-		case '\n':
-		case '\r':
-			return -1;
-		default:
-			goto eol;
-		}
-	}
-eol:
-	/* Move the remainder down by as many whitespace chars as we
-	   chewed up */
-	if (x)
-		memmove(p, &line[x], linelen-x);
-
-	/* Remove trailing whitespace. */
-	for (x=0; x <= linelen; x++) {
-		switch(line[x]) {
-		case '\t':
-		case ' ':
-		case '\r':
-		case '\n':
-			line[x] = 0;
-		case 0:
-		/* End of line */
-			return 0;
-		}
-	}
-
-	return -1;
-}
-
-
-/**
-  Parse args from stdin and assign to the specified args structure.
-  
-  @param optstr		Command line option string in getopt(3) format
-  @param args		Args structure to fill in.
- */
-void
-args_get_stdin(const char *optstr, fence_xvm_args_t *args)
-{
-	char in[256];
-	int line = 0;
-	char *name, *val;
-	struct arg_info *arg;
-
-	while (fgets(in, sizeof(in), stdin)) {
-		++line;
-
-		if (in[0] == '#')
-			continue;
-
-		if (cleanup(in, sizeof(in)) == -1)
-			continue;
-
-		name = in;
-		if ((val = strchr(in, '='))) {
-			*val = 0;
-			++val;
-		}
-
-		arg = find_arg_by_string(name);
-		if (!arg || (arg->opt != '\xff' && 
-			     !strchr(optstr, arg->opt))) {
-			fprintf(stderr,
-				"parse warning: "
-				"illegal variable '%s' on line %d\n", name,
-				line);
-			continue;
-		}
-
-		if (arg->assign)
-			arg->assign(args, arg, val);
-	}
-}
-
-
-/**
-  Parse args from stdin and assign to the specified args structure.
-  
-  @param optstr		Command line option string in getopt(3) format
-  @param args		Args structure to fill in.
- */
-void
-args_get_getopt(int argc, char **argv, const char *optstr, fence_xvm_args_t *args)
-{
-	int opt;
-	struct arg_info *arg;
-
-	while ((opt = getopt(argc, argv, optstr)) != EOF) {
-
-		arg = find_arg_by_char(opt);
-
-		if (!arg) {
-			args->flags |= F_ERR;
-			continue;
-		}
-
-		if (arg->assign)
-			arg->assign(args, arg, optarg);
-	}
-}
-
-
-void
-args_finalize(fence_xvm_args_t *args)
-{
-	const char *addr = NULL;
-
-	if (!args->addr) {
-		switch(args->family) {
-		case 0:
-		case PF_INET:
-			addr = IPV4_MCAST_DEFAULT;
-			break;
-		case PF_INET6:
-			addr = IPV6_MCAST_DEFAULT;
-			break;
-		default:
-			args->flags |= F_ERR;
-		break;
-		}
-	}
-
-	if (!args->addr)
-		args->addr = strdup(addr);
-
-	if (!args->addr) {
-		printf("No multicast address available\n");
-		args->flags |= F_ERR;
-	}
-
-	if (!args->addr)
-		return;
-	if (args->family)
-		return;
-
-	/* Set family */
-	if (strchr(args->addr, ':'))
-		args->family = PF_INET6;
-	if (strchr(args->addr, '.'))
-		args->family = PF_INET;
-	if (!args->family) {
-		printf("Could not determine address family\n");
-		args->flags |= F_ERR;
-	}
-}
diff --git a/fence/agents/xvm/options.h b/fence/agents/xvm/options.h
deleted file mode 100644
index 1a4f8cd..0000000
--- a/fence/agents/xvm/options.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _XVM_OPTIONS_H
-#define _XVM_OPTIONS_H
-
-typedef enum {
-	F_FOREGROUND	= 0x1,
-	F_NOCCS		= 0x2,
-	F_ERR		= 0x4,
-	F_HELP		= 0x8,
-	F_USE_UUID	= 0x10,
-	F_VERSION	= 0x20,
-	F_CCSERR	= 0x40,
-	F_CCSFAIL	= 0x80,
-	F_NOCLUSTER	= 0x100,
-	F_DEBUG		= 0x200,
-	F_METADATA	= 0x400
-} arg_flags_t;
-
-
-typedef struct {
-	char *addr;
-	char *domain;
-	char *key_file;
-	char *uri;
-	fence_cmd_t op;
-	fence_hash_t hash;
-	fence_auth_type_t auth;
-	int port;
-	unsigned int ifindex;
-	int family;
-	int timeout;
-	int retr_time;
-	arg_flags_t flags;
-	int debug;
-	int ttl;
-} fence_xvm_args_t;
-
-/* Private structure for commandline / stdin fencing args */
-struct arg_info {
-	const char opt;
-	const char *opt_desc;
-	const char *stdin_opt;
-	const int required;
-	const char *content_type;
-	const char *default_value;
-	const char *desc;
-	void (*assign)(fence_xvm_args_t *, struct arg_info *, char *);
-};
-
-
-/* Get options */
-void args_init(fence_xvm_args_t *args);
-void args_finalize(fence_xvm_args_t *args);
-
-void args_get_getopt(int argc, char **argv, const char *optstr,
-		     fence_xvm_args_t *args);
-void args_get_stdin(const char *optstr, fence_xvm_args_t *args);
-void args_get_ccs(const char *optstr, fence_xvm_args_t *args);
-void args_usage(char *progname, const char *optstr, int print_stdin);
-void args_metadata(char *progname, const char *optstr);
-void args_print(fence_xvm_args_t *args);
-
-struct arg_info *find_arg_by_char(char arg);
-struct arg_info *find_arg_by_string(char *arg);
-
-#endif
diff --git a/fence/agents/xvm/simple_auth.c b/fence/agents/xvm/simple_auth.c
deleted file mode 100644
index 2d9b2e7..0000000
--- a/fence/agents/xvm/simple_auth.c
+++ /dev/null
@@ -1,395 +0,0 @@
-#include <sys/types.h>
-#include <string.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sechash.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <errno.h>
-
-/* Local includes */
-#include "xvm.h"
-#include "simple_auth.h"
-#include "debug.h"
-
-static void
-print_hash(unsigned char *hash, size_t hashlen)
-{
-	int x; 
-
-	for (x = 0; x < hashlen; x++)
-		printf("%02x", (hash[x]&0xff));
-}
-
-
-static void
-sha_sign(fence_req_t *req, void *key, size_t key_len)
-{
-	unsigned char hash[SHA512_LENGTH];
-	HASHContext *h;
-	HASH_HashType ht;
-	unsigned int rlen;
-	int devrand;
-
-	switch(req->hashtype) {
-		case HASH_SHA1:
-			ht = HASH_AlgSHA1;
-			break;
-		case HASH_SHA256:
-			ht = HASH_AlgSHA256;
-			break;
-		case HASH_SHA512:
-			ht = HASH_AlgSHA512;
-			break;
-		default:
-			return;
-	}
-
-	dbg_printf(4, "Opening /dev/urandom\n");
-	devrand = open("/dev/urandom", O_RDONLY);
-	if (devrand >= 0) {
-		if (read(devrand, req->random, sizeof(req->random)) < 0) {
-			perror("read /dev/urandom");
-		}
-		close(devrand);
-	}
-
-	memset(hash, 0, sizeof(hash));
-	h = HASH_Create(ht);
-	if (!h)
-		return;
-
-	HASH_Begin(h);
-	HASH_Update(h, key, key_len);
-	HASH_Update(h, (void *)req, sizeof(*req));
-	HASH_End(h, hash, &rlen, sizeof(hash));
-	HASH_Destroy(h);
-
-	memcpy(req->hash, hash, sizeof(req->hash));
-}
-
-
-static int
-sha_verify(fence_req_t *req, void *key, size_t key_len)
-{
-	unsigned char hash[SHA512_LENGTH];
-	unsigned char pkt_hash[SHA512_LENGTH];
-	HASHContext *h = NULL;
-	HASH_HashType ht;
-	unsigned int rlen;
-	int ret;
-
-	switch(req->hashtype) {
-		case HASH_SHA1:
-			ht = HASH_AlgSHA1;
-			break;
-		case HASH_SHA256:
-			ht = HASH_AlgSHA256;
-			break;
-		case HASH_SHA512:
-			ht = HASH_AlgSHA512;
-			break;
-		default:
-			dbg_printf(3, "%s: no-op (HASH_NONE)\n", __FUNCTION__);
-			return 0;
-	}
-
-	memset(hash, 0, sizeof(hash));
-	h = HASH_Create(ht);
-	if (!h)
-		return 0;
-
-	memcpy(pkt_hash, req->hash, sizeof(pkt_hash));
-	memset(req->hash, 0, sizeof(req->hash));
-
-	HASH_Begin(h);
-	HASH_Update(h, key, key_len);
-	HASH_Update(h, (void *)req, sizeof(*req));
-	HASH_End(h, hash, &rlen, sizeof(hash));
-	HASH_Destroy(h);
-
-	memcpy(req->hash, pkt_hash, sizeof(req->hash));
-
-	ret = !memcmp(hash, pkt_hash, sizeof(hash));
-	if (!ret) {
-		printf("Hash mismatch:\nPKT = ");
-		print_hash(pkt_hash, sizeof(pkt_hash));
-		printf("\nEXP = ");
-		print_hash(hash, sizeof(hash));
-		printf("\n");
-	}
-
-	return ret;
-}
-
-
-int
-sign_request(fence_req_t *req, void *key, size_t key_len)
-{
-	memset(req->hash, 0, sizeof(req->hash));
-	switch(req->hashtype) {
-	case HASH_NONE:
-		dbg_printf(3, "%s: no-op (HASH_NONE)\n", __FUNCTION__);
-		return 0;
-	case HASH_SHA1:
-	case HASH_SHA256:
-	case HASH_SHA512:
-		sha_sign(req, key, key_len);
-		return 0;
-	default:
-		break;
-	}
-	return -1;
-}
-
-
-int
-verify_request(fence_req_t *req, fence_hash_t min,
-	       void *key, size_t key_len)
-{
-	if (req->hashtype < min) {
-		printf("Hash type not strong enough (%d < %d)\n",
-		       req->hashtype, min);
-		return 0;
-	}
-	switch(req->hashtype) {
-	case HASH_NONE:
-		return 1;
-	case HASH_SHA1:
-	case HASH_SHA256:
-	case HASH_SHA512:
-		return sha_verify(req, key, key_len);
-	default:
-		break;
-	}
-	return 0;
-}
-
-
-static int
-sha_challenge(int fd, fence_auth_type_t auth, void *key,
-	      size_t key_len, int timeout)
-{
-	fd_set rfds;
-	struct timeval tv;
-	unsigned char hash[MAX_HASH_LENGTH];
-	unsigned char challenge[MAX_HASH_LENGTH];
-	unsigned char response[MAX_HASH_LENGTH];
-	int devrand;
-	int ret;
-	HASHContext *h;
-	HASH_HashType ht;
-	unsigned int rlen;
-
-	devrand = open("/dev/urandom", O_RDONLY);
-	if (read(devrand, challenge, sizeof(challenge)) < 0) {
-		perror("read /dev/urandom");
-		return 0;
-	}
-	close(devrand);
-
-	if (write(fd, challenge, sizeof(challenge)) < 0) {
-		perror("write");
-		return 0;
-	}
-
-	switch(auth) {
-		case HASH_SHA1:
-			ht = HASH_AlgSHA1;
-			break;
-		case HASH_SHA256:
-			ht = HASH_AlgSHA256;
-			break;
-		case HASH_SHA512:
-			ht = HASH_AlgSHA512;
-			break;
-		default:
-			return 0;
-	}
-
-	memset(hash, 0, sizeof(hash));
-	h = HASH_Create(ht);
-	if (!h)
-		return 0;
-
-	HASH_Begin(h);
-	HASH_Update(h, key, key_len);
-	HASH_Update(h, challenge, sizeof(challenge));
-	HASH_End(h, hash, &rlen, sizeof(hash));
-	HASH_Destroy(h);
-
-	memset(response, 0, sizeof(response));
-
-	FD_ZERO(&rfds);
-	FD_SET(fd, &rfds);
-	tv.tv_sec = timeout;
-	tv.tv_usec = 0;
-	if (select(fd + 1, &rfds, NULL, NULL, &tv) <= 0) {
-		perror("select");
-		return 0;
-	}
-
-	if (read(fd, response, sizeof(response)) < sizeof(response)) {
-		perror("read");
-		return 0;
-	}
-
-	ret = !memcmp(response, hash, sizeof(response));
-	if (!ret) {
-		printf("Hash mismatch:\nC = ");
-		print_hash(challenge, sizeof(challenge));
-		printf("\nH = ");
-		print_hash(hash, sizeof(hash));
-		printf("\nR = ");
-		print_hash(response, sizeof(response));
-		printf("\n");
-	}
-
-	return ret;
-}
-
-
-static int
-sha_response(int fd, fence_auth_type_t auth, void *key,
-	     size_t key_len, int timeout)
-{
-	fd_set rfds;
-	struct timeval tv;
-	unsigned char challenge[MAX_HASH_LENGTH];
-	unsigned char hash[MAX_HASH_LENGTH];
-	HASHContext *h;
-	HASH_HashType ht;
-	unsigned int rlen;
-
-	FD_ZERO(&rfds);
-	FD_SET(fd, &rfds);
-	tv.tv_sec = timeout;
-	tv.tv_usec = 0;
-	if (select(fd + 1, &rfds, NULL, NULL, &tv) <= 0) {
-		perror("select");
-		return 0;
-	}
-
-	if (read(fd, challenge, sizeof(challenge)) < 0) {
-		perror("read");
-		return 0;
-	}
-
-	switch(auth) {
-		case AUTH_SHA1:
-			ht = HASH_AlgSHA1;
-			break;
-		case AUTH_SHA256:
-			ht = HASH_AlgSHA256;
-			break;
-		case AUTH_SHA512:
-			ht = HASH_AlgSHA512;
-			break;
-		default:
-			dbg_printf(3, "%s: no-op (AUTH_NONE)\n", __FUNCTION__);
-			return 0;
-	}
-
-	memset(hash, 0, sizeof(hash));
-	h = HASH_Create(ht); /* */
-	if (!h)
-		return 0;
-
-	HASH_Begin(h);
-	HASH_Update(h, key, key_len);
-	HASH_Update(h, challenge, sizeof(challenge));
-	HASH_End(h, hash, &rlen, sizeof(hash));
-	HASH_Destroy(h);
-
-	if (write(fd, hash, sizeof(hash)) < sizeof(hash)) {
-		perror("read");
-		return 0;
-	}
-
-	return 1;
-}
-
-
-int
-tcp_challenge(int fd, fence_auth_type_t auth, void *key, size_t key_len,
-	      int timeout)
-{
-	switch(auth) {
-	case AUTH_NONE:
-		dbg_printf(3, "%s: no-op (AUTH_NONE)\n", __FUNCTION__);
-		return 1;
-	case AUTH_SHA1:
-	case AUTH_SHA256:
-	case AUTH_SHA512:
-		return sha_challenge(fd, auth, key, key_len, timeout);
-	default:
-		break;
-	}
-	return -1;
-}
-
-
-int
-tcp_response(int fd, fence_auth_type_t auth, void *key, size_t key_len,
-	     int timeout)
-{
-	switch(auth) {
-	case AUTH_NONE:
-		dbg_printf(3, "%s: no-op (AUTH_NONE)\n", __FUNCTION__);
-		return 1;
-	case AUTH_SHA1:
-	case AUTH_SHA256:
-	case AUTH_SHA512:
-		return sha_response(fd, auth, key, key_len, timeout);
-	default:
-		break;
-	}
-	return -1;
-}
-
-
-int
-read_key_file(char *file, char *key, size_t max_len)
-{
-	int fd;
-	int nread, remain = max_len;
-	char *p;
-
-	dbg_printf(3, "Reading in key file %s into %p (%d max size)\n",
-		file, key, (int)max_len);
-	fd = open(file, O_RDONLY);
-	if (fd < 0) {
-		dbg_printf(2, "Error opening key file: %s\n", strerror(errno));
-		return -1;
-	}
-
-	memset(key, 0, max_len);
-	p = key;
-	remain = max_len;
-
-	while (remain) {
-		nread = read(fd, p, remain);
-		if (nread < 0) {
-			if (errno == EINTR)
-				continue;
-			dbg_printf(2, "Error from read: %s\n", strerror(errno));
-			close(fd);
-			return -1;
-		}
-
-		if (nread == 0) {
-			dbg_printf(3, "Stopped reading @ %d bytes",
-				(int)max_len-remain);
-			break;
-		}
-		
-		p += nread;
-		remain -= nread;
-	}
-
-	close(fd);	
-	dbg_printf(3, "Actual key length = %d bytes", (int)max_len-remain);
-	
-	return (int)(max_len - remain);
-}
diff --git a/fence/agents/xvm/simple_auth.h b/fence/agents/xvm/simple_auth.h
deleted file mode 100644
index d05526c..0000000
--- a/fence/agents/xvm/simple_auth.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef _XVM_SIMPLE_AUTH_H
-#define _XVM_SIMPLE_AUTH_H
-
-#include <sys/types.h>
-
-/* 2-way challenge/response simple auth */
-#define DEFAULT_KEY_FILE DEFAULT_CONFIG_DIR "/fence_xvm.key"
-
-int read_key_file(char *, char *, size_t);
-int tcp_challenge(int, fence_auth_type_t, void *, size_t, int);
-int tcp_response(int, fence_auth_type_t, void *, size_t, int);
-int sign_request(fence_req_t *, void *, size_t);
-int verify_request(fence_req_t *, fence_hash_t, void *, size_t);
-
-/* SSL certificate-based authentication TBD */
-
-#endif
diff --git a/fence/agents/xvm/tcp.c b/fence/agents/xvm/tcp.c
deleted file mode 100644
index 46aa844..0000000
--- a/fence/agents/xvm/tcp.c
+++ /dev/null
@@ -1,282 +0,0 @@
-/** @file
- *
- * @author Lon H. Hohberger <lhh at redhat.com>
- * @author Jeff Moyer <jmoyer at redhat.com>
- */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/socket.h>
-#include <sys/select.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <arpa/inet.h>
-
-#include "tcp.h"
-#include "debug.h"
-
-static int connect_nb(int fd, struct sockaddr *dest, socklen_t len, int timeout);
-
-/**
-  Set close-on-exec bit option for a socket.
-
-   @param fd		Socket to set CLOEXEC flag
-   @return		0 on success, -1 on failure
-   @see			fcntl
- */
-static int 
-set_cloexec(int fd)
-{
-	int flags = fcntl(fd, F_GETFD, 0);
-	flags |= FD_CLOEXEC;
-	return fcntl(fd, F_SETFD, flags);
-}
-
-
-/**
-  Bind to a port on the local IPv6 stack
-
-  @param port		Port to bind to
-  @param backlog	same as backlog for listen(2)
-  @return		0 on success, -1 on failure
-  @see			ipv4_bind
- */
-int
-ipv6_listen(uint16_t port, int backlog)
-{
-	struct sockaddr_in6 _sin6;
-	int fd, ret;
-
-	dbg_printf(4, "%s: Setting up ipv6 listen socket\n", __FUNCTION__);
-	fd = socket(PF_INET6, SOCK_STREAM, 0);
-	if (fd < 0)
-		return -1;
-
-	memset(&_sin6, 0, sizeof(_sin6));
-	_sin6.sin6_family = PF_INET6;
-	_sin6.sin6_port = htons(port);
-	_sin6.sin6_flowinfo = 0;
-	_sin6.sin6_addr = in6addr_any;
-
-	ret = 1;
-	setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&ret, sizeof (ret));
-
-	ret = set_cloexec(fd);
-	if (ret < 0) {
-		close(fd);
-		return -1;
-	}
-
-	ret = bind(fd, (struct sockaddr *)&_sin6, sizeof(_sin6));
-	if (ret < 0) {
-		close(fd);
-		return -1;
-	}
-
-	if (listen(fd, backlog) < 0){
-		close(fd);
-		return -1;
-	}
-
-	dbg_printf(4, "%s: Success; fd = %d\n", __FUNCTION__, fd);
-	return fd;
-}
-
-
-/**
-  Bind to a port on the local IPv4 stack
-
-  @param port		Port to bind to
-  @param backlog	same as backlog for listen(2)
-  @return		0 on success, -1 on failure
-  @see			ipv6_bind
- */
-int
-ipv4_listen(uint16_t port, int backlog)
-{
-	struct sockaddr_in _sin;
-	int fd, ret;
-
-	dbg_printf(4, "%s: Setting up ipv4 listen socket\n", __FUNCTION__);
-	fd = socket(PF_INET, SOCK_STREAM, 0);
-	if (fd < 0)
-		return -1;
-
-	_sin.sin_family = PF_INET;
-	_sin.sin_port = htons(port);
-	_sin.sin_addr.s_addr = htonl(INADDR_ANY);
-
-	ret = 1;
-	setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (void *)&ret, sizeof (ret));
-	
-	ret = set_cloexec(fd);
-	if (ret < 0) {
-		close(fd);
-		return -1;
-	}
-
-	ret = bind(fd, (struct sockaddr *)&_sin, sizeof(_sin));
-	if (ret < 0) {
-		close(fd);
-		return -1;
-	}
-
-	if (listen(fd, backlog) < 0){
-		close(fd);
-		return -1;
-	}
-
-	dbg_printf(4, "%s: Success; fd = %d\n", __FUNCTION__, fd);
-	return fd;
-}
-
-
-
-/**
-  Connect via ipv6 socket to a given IP address and port.
-
-  @param in6_addr	IPv6 address to connect to
-  @param port		Port to connect to
-  @param timeout	Timeout, in seconds, to wait for a completed
-  			connection
-  @return 		0 on success, -1 on failure
-  @see			connect_nb, ipv4_connect
- */
-int
-ipv6_connect(struct in6_addr *in6_addr, uint16_t port, int timeout)
-{
-	struct sockaddr_in6 _sin6;
-	int fd, ret;
-
-	dbg_printf(4, "%s: Connecting to client\n", __FUNCTION__);
-	fd = socket(PF_INET6, SOCK_STREAM, 0);
-	if (fd < 0)
-		return -1;
-
-	memset(&_sin6, 0, sizeof(_sin6));
-	_sin6.sin6_family = PF_INET6;
-	_sin6.sin6_port = htons(port);
-	_sin6.sin6_flowinfo = 0;
-	memcpy(&_sin6.sin6_addr, in6_addr, sizeof(_sin6.sin6_addr));
-
-	ret = connect_nb(fd, (struct sockaddr *)&_sin6, sizeof(_sin6), timeout);
-	if (ret < 0) {
-		close(fd);
-		return -1;
-	}
-	dbg_printf(4, "%s: Success; fd = %d\n", __FUNCTION__, fd);
-	return fd;
-}
-
-
-/**
-  Connect via ipv4 socket to a given IP address and port.
-
-  @param in_addr	IPv4 address to connect to
-  @param port		Port to connect to
-  @param timeout	Timeout, in seconds, to wait for a completed
-  			connection
-  @return 		0 on success, -1 on failure
-  @see			connect_nb, ipv6_connect
- */
-int
-ipv4_connect(struct in_addr *in_addr, uint16_t port, int timeout)
-{
-	struct sockaddr_in _sin;
-	int fd, ret;
-
-	dbg_printf(4, "%s: Connecting to client\n", __FUNCTION__);
-	fd = socket(PF_INET, SOCK_STREAM, 0);
-	if (fd < 0)
-		return -1;
-
-	_sin.sin_family = PF_INET;
-	_sin.sin_port = htons(port);
-	memcpy(&_sin.sin_addr, in_addr, sizeof(_sin.sin_addr));
-
-	ret = connect_nb(fd, (struct sockaddr *)&_sin, sizeof(_sin), timeout);
-	if (ret < 0) {
-		close(fd);
-		return -1;
-	}
-
-	dbg_printf(4, "%s: Success; fd = %d\n", __FUNCTION__, fd);
-	return fd;
-}
-
-
-/**
-  Connect in a non-blocking fashion to the designated address.
-
-  @param fd		File descriptor to connect
-  @param dest		sockaddr (ipv4 or ipv6) to connect to.
-  @param len		Length of dest
-  @param timeout	Timeout, in seconds, to wait for a completed
-  			connection.
-  @return		0 on success, -1 on failure.
- */
-static int
-connect_nb(int fd, struct sockaddr *dest, socklen_t len, int timeout)
-{
-	int ret, flags = 1, err;
-	unsigned l;
-	fd_set rfds, wfds;
-	struct timeval tv;
-
-	/*
-	 * Use TCP Keepalive
-	 */
-	if (setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&flags,
-		       sizeof(flags))<0)
-		return -1;
-			
-	/*
-	   Set up non-blocking connect
-	 */
-	flags = fcntl(fd, F_GETFL, 0);
-	fcntl(fd, F_SETFL, flags | O_NONBLOCK);
-
-	ret = connect(fd, dest, len);
-
-	if ((ret < 0) && (errno != EINPROGRESS))
-		return -1;
-
-	if (ret != 0) {
-		FD_ZERO(&rfds);
-		FD_SET(fd, &rfds);
-		FD_ZERO(&wfds);
-		FD_SET(fd, &wfds);
-
-		tv.tv_sec = timeout;
-		tv.tv_usec = 0;
-		
-		if (select(fd + 1, &rfds, &wfds, NULL, &tv) == 0) {
-			errno = ETIMEDOUT;
-			return -1;
-		}
-		/* XXX check for -1 from select */
-
-		if (FD_ISSET(fd, &rfds) || FD_ISSET(fd, &wfds)) {
-			l = sizeof(err);
-			if (getsockopt(fd, SOL_SOCKET, SO_ERROR,
-				       (void *)&err, &l) < 0) {
-				close(fd);
-				return -1;
-			}
-
-			if (err != 0) {
-				close(fd);
-				errno = err;
-				return -1;
-			}
-
-			fcntl(fd, F_SETFL, flags);
-			return 0;
-		}
-	}
-
-	errno = EIO;
-	return -1;
-}
diff --git a/fence/agents/xvm/tcp.h b/fence/agents/xvm/tcp.h
deleted file mode 100644
index ec914e5..0000000
--- a/fence/agents/xvm/tcp.h
+++ /dev/null
@@ -1,9 +0,0 @@
-#ifndef _XVM_TCP_H
-#define _XVM_TCP_H
-
-int ipv4_connect(struct in_addr *in_addr, uint16_t port, int timeout);
-int ipv6_connect(struct in6_addr *in6_addr, uint16_t port, int timeout);
-int ipv4_listen(uint16_t port, int backlog);
-int ipv6_listen(uint16_t port, int backlog);
-
-#endif
diff --git a/fence/agents/xvm/tests/hvm.xml b/fence/agents/xvm/tests/hvm.xml
deleted file mode 100644
index 4134b24..0000000
--- a/fence/agents/xvm/tests/hvm.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<domain type='xen' id='707'>
-  <name>pjc-xen-06</name>
-  <uuid>081b372c69a68432a13640fa03339353</uuid>
-  <os>
-    <type>hvm</type>
-    <loader>/usr/lib/xen/boot/hvmloader</loader>
-  </os>
-  <memory>524288</memory>
-  <vcpu>1</vcpu>
-  <on_poweroff>destroy</on_poweroff>
-  <on_reboot>restart</on_reboot>
-  <on_crash>restart</on_crash>
-  <features>
-    <pae/>
-  </features>
-  <devices>
-    <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
-    <interface type='bridge'>
-      <source bridge='xenbr0'/>
-      <mac address='02:10:15:84:04:06'/>
-      <script path='vif-bridge'/>
-    </interface>
-    <disk type='file' device='disk'>
-      <driver name='file'/>
-      <source file='/root/pjc6'/>
-      <target dev='hda'/>
-    </disk>
-    <graphics type='vnc' port='5905'/>
-    <console tty='/dev/pts/5'/>
-  </devices>
-</domain>
-
diff --git a/fence/agents/xvm/tests/linux.xml b/fence/agents/xvm/tests/linux.xml
deleted file mode 100644
index 06ac966..0000000
--- a/fence/agents/xvm/tests/linux.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<domain type='xen' id='2'>
-  <name>r5filebacked1</name>
-  <uuid>1a31981a01944fe7b7486a384e93dbae</uuid>
-  <bootloader>/usr/bin/pygrub</bootloader>
-  <os>
-    <type>linux</type>
-    <kernel>/var/lib/xen/boot_kernel.jGsgBH</kernel>
-    <initrd>/var/lib/xen/boot_ramdisk.bYFu-q</initrd>
-    <cmdline>ro root=/dev/VolGroup00/LogVol00</cmdline>
-  </os>
-  <memory>512000</memory>
-  <vcpu>1</vcpu>
-  <on_poweroff>destroy</on_poweroff>
-  <on_reboot>restart</on_reboot>
-  <on_crash>restart</on_crash>
-  <devices>
-    <interface type='bridge'>
-      <source bridge='xenbr0'/>
-      <mac address='C0:D1:F1:ED:1D:11'/>
-      <script path='vif-bridge'/>
-    </interface>
-    <graphics type='vnc' port='5900'/>
-    <disk type='file' device='disk'>
-      <driver name='tap' type='aio'/>
-      <source file='/mnt/xen/r5filebacked1'/>
-      <target dev='xvda'/>
-    </disk>
-    <console tty='/dev/pts/0'/>
-  </devices>
-</domain>
-
diff --git a/fence/agents/xvm/virt.c b/fence/agents/xvm/virt.c
deleted file mode 100644
index a836191..0000000
--- a/fence/agents/xvm/virt.c
+++ /dev/null
@@ -1,202 +0,0 @@
-#include <stdio.h>
-#include <sys/types.h>
-#include <stdlib.h>
-#include <libvirt/libvirt.h>
-#include <string.h>
-#include <malloc.h>
-#include <stdint.h>
-#include <errno.h>
-#include "virt.h"
-#include "debug.h"
-
-static int
-_compare_virt(const void *_left, const void *_right)
-{
-	virt_state_t *left = (virt_state_t *)_left,
-		     *right = (virt_state_t *)_right;
-
-	return strcasecmp(left->v_name, right->v_name);
-}
-
-
-virt_list_t *vl_get(virConnectPtr vp, int my_id)
-{
-	virt_list_t *vl = NULL;
-	int *d_ids = NULL;
-	int d_count, x;
-	char *d_name;
-	char d_uuid[MAX_DOMAINNAME_LENGTH];
-	virDomainPtr dom;
-	virDomainInfo d_info;
-
-	errno = EINVAL;
-	if (!vp)
-		return NULL;
-
-	d_count = virConnectNumOfDomains(vp);
-	if (d_count <= 0) {
-		if (d_count == 0) {
-			/* Successful, but no domains running */
-			errno = 0;
-			return NULL;
-		}
-		goto out_fail;
-	}
-
-	vl = malloc(sizeof(uint32_t) + sizeof(virt_state_t) * d_count );
-	if (!vl)
-		goto out_fail;
-
-	d_ids = malloc(sizeof(int) * d_count);
-	if (!d_ids)
-		goto out_fail;
-
-	if (virConnectListDomains(vp, d_ids, d_count) < 0)
-		goto out_fail;
-
-	vl->vm_count = d_count;
-
-	/* Ok, we have the domain IDs - let's get their names and states */
-	for (x = 0; x < d_count; x++) {
-		dom = virDomainLookupByID(vp, d_ids[x]);
-		if (!dom) {
-			/* XXX doom */
-			goto out_fail;
-		}
-
-		if (!(d_name = (char *)virDomainGetName(dom))) {
-			/* XXX no name for the domain?!! */
-			virDomainFree(dom);
-			goto out_fail;
-		}
-
-		if (virDomainGetUUIDString(dom, d_uuid) != 0) {
-			virDomainFree(dom);
-			goto out_fail;
-		}
-
-		if (virDomainGetInfo(dom, &d_info) < 0) {
-			/* XXX no info for the domain?!! */
-			virDomainFree(dom);
-			goto out_fail;
-		}
-
-		/* Store the name & state */
-		strncpy(vl->vm_states[x].v_name, d_name, MAX_DOMAINNAME_LENGTH);
-		strncpy(vl->vm_states[x].v_uuid, d_uuid, MAX_DOMAINNAME_LENGTH);
-		vl->vm_states[x].v_state.s_state = d_info.state;
-		vl->vm_states[x].v_state.s_owner = my_id;
-
-		virDomainFree(dom);
-	}
-
-	/* We have all the locally running domains & states now */
-	/* Sort */
-	free(d_ids);
-	qsort(&vl->vm_states[0], vl->vm_count, sizeof(vl->vm_states[0]),
-	      _compare_virt);
-	return vl;	
-
-out_fail:
-	x = errno;
-	if (d_ids)
-		free(d_ids);
-	if (vl)
-		free(vl);
-	errno = x;
-	return NULL;
-}
-
-
-/* Returns 0 if equal, nonzero if not */
-int
-vl_cmp(virt_list_t *left, virt_list_t *right)
-{
-	int x;
-
-	/* Quick checks */
-	if (!left->vm_count && !right->vm_count)
-		return 1;
-	if (left->vm_count != right->vm_count)
-		return 0;
-
-	for (x = 0; x < left->vm_count; x++) {
-		if (strcmp(left->vm_states[x].v_name,
-			   right->vm_states[x].v_name))
-			return 1;
-		/*
-		if (left->vm_states[x].v_state.s_state !=
-		    right->vm_states[x].v_state.s_state)
-			return 1;
-		 */
-	}
-
-	return 0;
-}
-
-
-void
-vl_print(virt_list_t *vl)
-{
-	int x;
-
-	/* XXX Once the logsys stderr "tag" goes away, the 21s should go back
-	   to 24s. */
-
-	dbg_printf(1, "%-21.21s %-36.36s %-5.5s %-5.5s\n", "Domain", "UUID",
-	       "Owner", "State");
-	dbg_printf(1, "%-21.21s %-36.36s %-5.5s %-5.5s\n", "------", "----",
-	       "-----", "-----");
-
-	if (!vl || !vl->vm_count)
-		return;
-
-	for (x = 0; x < vl->vm_count; x++) {
-		dbg_printf(1, "%-21.21s %-36.36s %-5.5d %-5.5d\n",
-		       vl->vm_states[x].v_name,
-		       vl->vm_states[x].v_uuid,
-		       vl->vm_states[x].v_state.s_owner,
-		       vl->vm_states[x].v_state.s_state);
-	}
-}
-
-
-virt_state_t *
-vl_find_name(virt_list_t *vl, char *name)
-{
-	int x;
-
-	if (!vl || !name || !vl->vm_count)
-		return NULL;
-
-	for (x = 0; x < vl->vm_count; x++) {
-		if (!strcasecmp(vl->vm_states[x].v_name, name))
-			return &vl->vm_states[x];
-	}
-
-	return NULL;
-}
-
-
-virt_state_t *
-vl_find_uuid(virt_list_t *vl, char *uuid)
-{
-	int x;
-
-	if (!vl || !uuid || !vl->vm_count)
-		return NULL;
-
-	for (x = 0; x < vl->vm_count; x++) {
-		if (!strcasecmp(vl->vm_states[x].v_uuid, uuid))
-			return &vl->vm_states[x];
-	}
-
-	return NULL;
-}
-
-
-void
-vl_free(virt_list_t *old)
-{
-	free(old);
-}
diff --git a/fence/agents/xvm/virt.h b/fence/agents/xvm/virt.h
deleted file mode 100644
index f70a0da..0000000
--- a/fence/agents/xvm/virt.h
+++ /dev/null
@@ -1,60 +0,0 @@
-#ifndef _VIRT_H
-#define _VIRT_H
-#include <libvirt/libvirt.h>
-#include <stdint.h>
-#include <netinet/in.h>
-
-#include "xvm.h"
-
-/*
-   Owner 0 = no owner.
-
-   checkpoint "xen-vm-states" {
-     section "vm-name0" {
-       owner_nodeid;
-       vm_state;
-     }
-     section "vm-name1" {
-       owner_nodeid;
-       vm_state;
-     }
-     ...
-   }
- */
-
-typedef struct {
-	uint32_t s_owner;
-	int32_t s_state;
-} vm_state_t;
-
-typedef struct {
-	char v_name[MAX_DOMAINNAME_LENGTH];
-	char v_uuid[MAX_DOMAINNAME_LENGTH];
-	vm_state_t v_state;
-} virt_state_t;
-
-/**
-  This is stored in our private checkpoint section.
- */
-typedef struct _virt_list {
-	uint32_t	vm_count;
-	virt_state_t	vm_states[0];
-} virt_list_t;
-
-virt_list_t *vl_get(virConnectPtr vp, int my_id);
-
-int vl_cmp(virt_list_t *left, virt_list_t *right);
-
-void vl_print(virt_list_t *vl);
-void vl_free(virt_list_t *old);
-virt_state_t * vl_find_uuid(virt_list_t *vl, char *name);
-virt_state_t * vl_find_name(virt_list_t *vl, char *name);
-
-int ckpt_read(void *hp, char *secid, void *buf, size_t maxlen);
-int ckpt_finish(void *hp);
-int ckpt_write(void *hp, char *secid, void *buf, size_t maxlen);
-void *ckpt_init(const char *ckpt_name, int maxlen, int maxsec, int maxseclen,
-		int timeout);
-
-
-#endif
diff --git a/fence/agents/xvm/vm_states.c b/fence/agents/xvm/vm_states.c
deleted file mode 100644
index 87d26bf..0000000
--- a/fence/agents/xvm/vm_states.c
+++ /dev/null
@@ -1,414 +0,0 @@
-/** @file
- * Distributed VM states using saCkpt interface
- */
-#include <string.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/resource.h>
-#include <sys/wait.h>
-#include <stdlib.h>
-#include <sys/time.h>
-#include <pthread.h>
-#include <openais/saAis.h>
-#include <openais/saCkpt.h>
-#include <unistd.h>
-#include <stdio.h>
-#include <assert.h>
-
-#include "virt.h"
-
-typedef struct {
-	uint32_t ck_ready;
-	int ck_timeout;
-	SaCkptCheckpointHandleT ck_checkpoint;
-	SaCkptHandleT ck_handle;
-	char *ck_name;
-} ckpt_handle;
-
-
-#define READY_MAGIC 0x13fd237c
-#define VALIDATE(h) \
-do { \
-	if (!h || h->ck_ready != READY_MAGIC) { \
-		errno = EINVAL; \
-		return -1; \
-	} \
-} while(0)
-
-int ais_to_posix(SaAisErrorT err);
-
-int
-ais_to_posix(SaAisErrorT err)
-{
-	switch (err) {
-	case SA_AIS_OK:
-		return 0;
-	case SA_AIS_ERR_LIBRARY:
-		return ELIBBAD;
-	case SA_AIS_ERR_VERSION:
-		return EPROTONOSUPPORT; //XXX
-	case SA_AIS_ERR_INIT:
-		return EFAULT; //XXX
-	case SA_AIS_ERR_TIMEOUT:
-		return ETIMEDOUT;
-	case SA_AIS_ERR_TRY_AGAIN:
-		return EAGAIN;
-	case SA_AIS_ERR_INVALID_PARAM:
-		return EINVAL;
-	case SA_AIS_ERR_NO_MEMORY:
-		return ENOMEM;
-	case SA_AIS_ERR_BAD_HANDLE:
-		return EBADF;
-	case SA_AIS_ERR_BUSY:
-		return EBUSY;
-	case SA_AIS_ERR_ACCESS:
-		return EACCES;
-	case SA_AIS_ERR_NOT_EXIST:
-		return ENOENT;
-	case SA_AIS_ERR_NAME_TOO_LONG:
-		return ENAMETOOLONG;
-	case SA_AIS_ERR_EXIST:
-		return EEXIST;
-	case SA_AIS_ERR_NO_SPACE:
-		return ENOSPC;
-	case SA_AIS_ERR_INTERRUPT:
-		return EINTR;
-	case SA_AIS_ERR_NAME_NOT_FOUND:
-		return ENOENT;
-	case SA_AIS_ERR_NO_RESOURCES:
-		return ENOMEM; //XXX
-	case SA_AIS_ERR_NOT_SUPPORTED:
-		return ENOSYS;
-	case SA_AIS_ERR_BAD_OPERATION:
-		return EINVAL; //XXX
-	case SA_AIS_ERR_FAILED_OPERATION:
-		return EIO; //XXX
-	case SA_AIS_ERR_MESSAGE_ERROR:
-		return EIO; // XXX
-	case SA_AIS_ERR_QUEUE_FULL:
-		return ENOBUFS;
-	case SA_AIS_ERR_QUEUE_NOT_AVAILABLE:
-		return ENOENT;
-	case SA_AIS_ERR_BAD_FLAGS:
-		return EINVAL;
-	case SA_AIS_ERR_TOO_BIG:
-		return E2BIG;
-	case SA_AIS_ERR_NO_SECTIONS:
-		return ENOENT; // XXX
-	case SA_AIS_ERR_SECURITY:
-		return EPERM;
-	}
-
-	return -1;
-}
-
-
-static int 
-ckpt_open(ckpt_handle *h, const char *ckpt_name, int maxsize,
-	  int maxsec, int maxsecsize, int timeout)
-{
-	SaCkptCheckpointCreationAttributesT attrs;
-	SaCkptCheckpointOpenFlagsT flags;
-	SaNameT cpname;
-#if 0
-	SaCkptCheckpointDescriptorT status;
-#endif
-	SaAisErrorT err = SA_AIS_OK;
-
-	VALIDATE(h);
-
-	flags = SA_CKPT_CHECKPOINT_READ |
-		SA_CKPT_CHECKPOINT_WRITE;
-
-	snprintf((char *)cpname.value, SA_MAX_NAME_LENGTH-1,
-		 "%s", ckpt_name);
-	cpname.length = strlen(ckpt_name);
-
-	h->ck_timeout = timeout;
-
-	err = saCkptCheckpointOpen(h->ck_handle,
-				   &cpname,
-				   NULL,	
-				   flags,
-				   timeout,
-				   &h->ck_checkpoint);
-
-	if (err == SA_AIS_OK) {
-#if 0
-		saCkptCheckpointStatusGet(h->ck_handle,
-					  &status);
-
-		printf("Checkpoint Size = %d bytes\n", (int)
-			status.checkpointCreationAttributes.checkpointSize);
-		printf("Flags = ");
-		if (status.checkpointCreationAttributes.creationFlags &
-			SA_CKPT_WR_ALL_REPLICAS) {
-			printf("%s ", "SA_CKPT_WR_ALL_REPLICAS");
-		}
-		if (status.checkpointCreationAttributes.creationFlags &
-			SA_CKPT_WR_ACTIVE_REPLICA) {
-			printf("%s ", "SA_CKPT_WR_ACTIVE_REPLICA");
-		}
-		if (status.checkpointCreationAttributes.creationFlags &
-			SA_CKPT_WR_ACTIVE_REPLICA_WEAK) {
-			printf("%s ", "SA_CKPT_WR_ACTIVE_REPLICA_WEAK");
-		}
-		if (status.checkpointCreationAttributes.creationFlags &
-			SA_CKPT_CHECKPOINT_COLLOCATED) {
-			printf("%s ", "SA_CKPT_CHECKPOINT_COLLOCATED");
-		}
-		printf("\nMax sections = %d\n",
-			(int)status.checkpointCreationAttributes.maxSections);
-		printf("Max section size = %d\n",
-			(int)status.checkpointCreationAttributes.maxSectionSize);
-		printf("Max section ID size = %d\n",
-			(int)status.checkpointCreationAttributes.maxSectionIdSize);
-		printf("Section count = %d\n", status.numberOfSections);
-		printf("\n");
-#endif
-		goto good;
-	}
-
-	attrs.creationFlags = SA_CKPT_WR_ALL_REPLICAS;
-	attrs.checkpointSize = (SaSizeT)maxsize;
-	attrs.retentionDuration = SA_TIME_ONE_HOUR;
-	attrs.maxSections = maxsec;
-	attrs.maxSectionSize = (SaSizeT)maxsecsize;
-	attrs.maxSectionIdSize = (SaSizeT)32;
-
-	flags = SA_CKPT_CHECKPOINT_READ |
-		SA_CKPT_CHECKPOINT_WRITE |
-		SA_CKPT_CHECKPOINT_CREATE;
-
-	err = saCkptCheckpointOpen(h->ck_handle,
-				   &cpname,
-				   &attrs,
-				   flags,
-				   timeout,
-				   &h->ck_checkpoint);
-	if (err == SA_AIS_OK)
-		goto good;
-
-	/* No checkpoint */
-	errno = ais_to_posix(err);
-	return (errno == 0 ? 0 : -1);
-good:
-	printf("Opened ckpt %s\n", ckpt_name);
-	h->ck_name = strdup(ckpt_name);
-
-	errno = ais_to_posix(err);
-	return (errno == 0 ? 0 : -1);
-}
-
-
-void *
-ckpt_init(const char *ckpt_name, int maxlen, int maxsec,
-	  int maxseclen, int timeout)
-{
-	ckpt_handle *h;
-	SaAisErrorT err;
-	SaVersionT ver;
-
-	if (!ckpt_name || !strlen(ckpt_name)) {
-		errno = EINVAL;
-		return NULL;
-	}
-	h = malloc(sizeof(*h));
-	if (!h)
-		return NULL;
-	memset(h, 0, sizeof(*h));
-
-	ver.releaseCode = 'B';
-	ver.majorVersion = 1;
-	ver.minorVersion = 1;
-
-	err = saCkptInitialize(&h->ck_handle, NULL, &ver);
-
-	if (err != SA_AIS_OK) {
-		free(h);
-		return NULL;
-	} else
-		h->ck_ready = READY_MAGIC;
-
-	if (ckpt_open(h, ckpt_name, maxlen, maxsec, maxseclen,
-		      timeout) < 0) {
-		saCkptCheckpointClose(h->ck_checkpoint);
-		if (h->ck_name) 
-			free(h->ck_name);
-		free(h);
-		return NULL;
-	}
-
-	return (void *)h;
-}
-
-
-int
-ckpt_write(void *hp, char *secid, void *buf, size_t maxlen)
-{
-	ckpt_handle *h = (ckpt_handle *)hp;
-	SaCkptIOVectorElementT iov = {SA_CKPT_DEFAULT_SECTION_ID,
-				      NULL, 0, 0, 0};
-	SaAisErrorT err;
-	SaCkptSectionCreationAttributesT attrs;
-
-	VALIDATE(h);
-
-	/* Set section ID here */
-	iov.sectionId.id = (uint8_t *)secid;
-	iov.sectionId.idLen = strlen(secid);
-	iov.dataBuffer = buf;
-	iov.dataSize = (SaSizeT)maxlen;
-	iov.dataOffset = 0;
-	iov.readSize = 0;
-
-	err = saCkptCheckpointWrite(h->ck_checkpoint, &iov, 1, NULL);
-
-	if (err == SA_AIS_ERR_NOT_EXIST) {
-		attrs.sectionId = &iov.sectionId;
-		attrs.expirationTime = SA_TIME_END;
-
-		err = saCkptSectionCreate(h->ck_checkpoint, &attrs, 
-					  buf, maxlen);
-	}
-
-	if (err == SA_AIS_OK)
-		saCkptCheckpointSynchronize(h->ck_checkpoint,
-					    h->ck_timeout);
-
-	errno = ais_to_posix(err);
-	if (errno)
-		return -1;
-	return maxlen; /* XXX */
-}
-
-
-int
-ckpt_read(void *hp, char *secid, void *buf, size_t maxlen)
-{
-	ckpt_handle *h = (ckpt_handle *)hp;
-	SaCkptIOVectorElementT iov = {SA_CKPT_DEFAULT_SECTION_ID,
-				      NULL, 0, 0, 0};
-	SaAisErrorT err;
-
-	VALIDATE(h);
-	//printf("reading ckpt %s\n", keyid);
-
-	iov.sectionId.id = (uint8_t *)secid;
-	iov.sectionId.idLen = strlen(secid);
-	iov.dataBuffer = buf;
-	iov.dataSize = (SaSizeT)maxlen;
-	iov.dataOffset = 0;
-	iov.readSize = 0;
-
-	err = saCkptCheckpointRead(h->ck_checkpoint, &iov, 1, NULL);
-
-	errno = ais_to_posix(err);
-	if (errno)
-		return -1;
-	return iov.readSize; /* XXX */
-}
-
-
-int
-ckpt_finish(void *hp)
-{
-	ckpt_handle *h = (ckpt_handle *)hp;
-	int ret = 0;
-	SaAisErrorT err;
-
-	saCkptCheckpointClose(h->ck_checkpoint);
-	err = saCkptFinalize(h->ck_handle);
-
-	if (err != SA_AIS_OK)
-		ret = -1;
-	else
-		h->ck_ready = 0;
-
-	if (h->ck_name)
-		free(h->ck_name);
-
-	if (ret != 0)
-		errno = ais_to_posix(err);
-	return ret;
-}
-
-
-#ifdef STANDALONE
-void
-usage(int ret)
-{
-	printf("usage: ckpt [-c ckpt_name] <-r key|-w key -d data>\n");
-	exit(ret);
-}
-
-int
-main(int argc, char **argv)
-{
-	char *ckptname = "ckpt_test";
-	char *sec = "default";
-	char *val;
-	void *h;
-	char buf[64];
-	int ret;
-	int op = 0;
-
-	while((ret = getopt(argc, argv, "c:w:r:d:j?")) != EOF) {
-		switch(ret) {
-		case 'c': 
-			ckptname = optarg;
-			break;
-		case 'w': 
-			op = 'w';
-			sec = optarg;
-			break;
-		case 'r':
-			op = 'r';
-			sec = optarg;
-			break;
-		case 'd':
-			val = optarg;
-			break;
-		case '?':
-		case 'h':
-			usage(0);
-		default:
-			usage(1);
-		}
-	}
-
-	if (!op) {
-		usage(1);
-	}
-
-	if (!sec) {
-		usage(1);
-	}
-
-	h = ckpt_init(ckptname, 262144, 4096, 64, 10);
-	if (!h) {
-		perror("ckpt_init");
-		return -1;
-	}
-
-	if (op == 'w') {
-		if (ckpt_write(h, sec, val, strlen(val)+1) < 0) {
-			perror("ckpt_write");
-			return 1;
-		}
-	} else if (op == 'r') {
-		ret = ckpt_read(h, sec, buf, sizeof(buf));
-		if (ret < 0) {
-			perror("ckpt_read");
-			return 1;
-		}
-
-		printf("%d bytes\nDATA for '%s':\n%s\n", ret, sec,
-		       buf);
-	}
-
-	ckpt_finish(h);
-
-	return 0;
-}
-#endif
diff --git a/fence/agents/xvm/xml.c b/fence/agents/xvm/xml.c
deleted file mode 100644
index 2ed4a96..0000000
--- a/fence/agents/xvm/xml.c
+++ /dev/null
@@ -1,316 +0,0 @@
-#include <libxml/xmlmemory.h>
-#include <libxml/parser.h>
-#include <string.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <ctype.h>
-
-#ifdef STANDALONE
-#define dbg_printf(x, fmt, args...) printf("<%d> " fmt, x, ##args)
-#else
-#include "debug.h"
-#endif
-
-int cleanup_xml(char *xmldesc, char **ret, size_t *retsz);
-
-static xmlNodePtr
-get_os_node(xmlDocPtr doc)
-{
-	xmlNodePtr node;
-
-	/* Flip the property of the graphics port if it exists */
-	node = xmlDocGetRootElement(doc);
-	node = node->children;
-
-	while (node) {
-		if (!xmlStrcmp(node->name, (xmlChar *)"os"))
-			break;
-		node = node->next;
-	}
-
-	return node;
-}
-
-
-static int
-flip_graphics_port(xmlDocPtr doc)
-{
-	xmlNodePtr node, curr;
-
-	/* Flip the property of the graphics port if it exists */
-	node = xmlDocGetRootElement(doc);
-	node = node->children;
-
-	while (node) {
-		if (!xmlStrcmp(node->name, (xmlChar *)"devices"))
-			break;
-		node = node->next;
-	}
-
-	node = node->children;
-	curr = node;
-	while (curr) {
-		if (!xmlStrcmp(curr->name, (xmlChar *)"graphics"))
-			break;
-		curr = curr->next;
-	}
-
-	if (xmlGetProp(curr, (xmlChar *)"port")) {
-		dbg_printf(5,"Zapping the graphics port\n");
-		xmlSetProp(curr, (xmlChar *)"port", (xmlChar *)"-1");
-	}
-
-	return 0;
-}
-
-
-static int
-cleanup_xml_doc(xmlDocPtr doc)
-{
-	xmlNodePtr os_node, curr;
-	int type = 0;
-	char *val;
-
-	curr = xmlDocGetRootElement(doc);
-	if (xmlStrcmp(curr->name, (xmlChar *)"domain")) {
-		dbg_printf(1, "Invalid XML\n");
-		return -1;
-	}
-
-	flip_graphics_port(doc);
-
-	os_node = get_os_node(doc);
-	if (!os_node)
-		return -1;
-
-	curr = os_node->children;
-	while (curr) {
-		if (!xmlStrcmp(curr->name, (xmlChar *)"type"))
-			break;
-		curr = curr->next;
-	}
-	if (!curr) {
-		dbg_printf(1, "Unable to determine the domain type\n");
-		return -1;
-	}
-
-	val = (char *)xmlNodeGetContent(curr);
-	while (isspace(*val)) val++;
-
-	if (!strcasecmp(val, "hvm")) {
-		type = 1;
-		dbg_printf(2, "Virtual machine is HVM\n");
-	} else if (!strcasecmp(val, "linux")) {
-		type = 2;
-		dbg_printf(2, "Virtual machine is Linux\n");
-	}
-
-	/* Node is still pointing to the <os> block */
-	if (type == 2) {
-		dbg_printf(3, "Unlinking %s block\n", (char *)os_node->name);
-		xmlUnlinkNode(os_node);
-		xmlFreeNode(os_node);
-	}
-
-	return 0;
-}
-
-#ifdef STANDALONE
-static int
-xtree_readfile(const char *filename, xmlDocPtr *xtreep)
-{
-	xmlNodePtr cur;
-
-	xmlKeepBlanksDefault(0);
-	xmlIndentTreeOutput = 1;
-
-	*xtreep = xmlParseFile(filename);
-
-	if (!*xtreep)
-		return -1;
-
-	if (!((cur = xmlDocGetRootElement(*xtreep)))) {
-		xmlFreeDoc(*xtreep);
-		*xtreep = NULL;
-		return -1;
-	}
-
-	return 0;
-}
-#endif
-
-
-static int
-xtree_readbuffer(const char *buffer, size_t size, xmlDocPtr *xtreep)
-{
-	xmlNodePtr cur;
-
-	xmlKeepBlanksDefault(0);
-	xmlIndentTreeOutput = 1;
-
-	*xtreep = xmlParseMemory(buffer, size);
-
-	if (!*xtreep) {
-		dbg_printf(1, "parse failure %p %d\n", buffer, (int)size);
-		return -1;
-	}
-
-	if (!((cur = xmlDocGetRootElement(*xtreep)))) {
-		dbg_printf(1, "root element failure\n");
-		xmlFreeDoc(*xtreep);
-		*xtreep = NULL;
-		return -1;
-	}
-
-	return 0;
-}
-
-#ifdef STANDALONE
-static int
-xtree_writefile(const char *filename, xmlDocPtr xtree)
-{
-	char tmpfn[1024];
-	int fd, tmpfd;
-	xmlChar *buffer;
-	struct flock flock;
-	int n, remain, written, size = 0;
-
-	snprintf(tmpfn, sizeof(tmpfn), "%s.XXXXXX", filename);
-	tmpfd = mkstemp(tmpfn);
-	if (tmpfd == -1)
-		return -1;
-
-	memset(&flock, 0, sizeof(flock));
-	flock.l_type = F_WRLCK;
-
-	fd = open(filename, O_WRONLY | O_CREAT | O_SYNC, S_IRUSR | S_IWUSR );
-	if (fd == -1) {
-		n = errno;
-		close(tmpfd);
-		unlink(tmpfn);
-		errno = n;
-		return -1;
-	}
-
-	while (fcntl(fd, F_SETLKW, &flock) == -1) {
-		if (errno == EINTR)
-			continue;
-		n = errno;
-		close(fd);
-		close(tmpfd);
-		unlink(tmpfn);
-		errno = n;
-		return -1;
-	}
-
-	xmlDocDumpFormatMemory(xtree, (xmlChar **)&buffer, (int *)&size, 1);
-
-	written = 0;
-	remain = size;
-	while (remain) {
-		n = write(tmpfd, buffer + written, remain);
-
-		if (n == -1) {
-			if (errno == EINTR)
-				continue;
-				
-			free(buffer);
-			n = errno;
-			close(fd);
-			close(tmpfd);
-			unlink(tmpfn);
-			errno = n;
-			return -1;
-		}
-			
-		written += n;
-		remain -= n;
-	}
-
-	xmlFree(buffer);
-	if (rename(tmpfn, filename) == -1) {
-		n = errno;
-		close(fd);
-		close(tmpfd);
-		unlink(tmpfn);
-		errno = n;
-		return -1;
-	}
-
-	close(fd);
-	fsync(tmpfd);
-	close(tmpfd);
-	return 0;
-}
-#endif
-
-static int
-xtree_writebuffer(xmlDocPtr xtree, char **buffer, size_t *size)
-{
-	*size = 0;
-	xmlDocDumpFormatMemory(xtree, (xmlChar **)buffer, (int *)size, 1);
-	return 0;
-}
-
-
-int
-cleanup_xml(char *desc, char **ret, size_t *retsz)
-{
-	xmlDocPtr xtree;
-	int rv;
-
-	*ret = NULL;
-	if (xtree_readbuffer(desc, strlen(desc), &xtree) < 0) {
-		xmlCleanupParser();
-		return -1;
-	}
-
-	rv = cleanup_xml_doc(xtree);	
-	if (xtree_writebuffer(xtree, ret, retsz) < 0)
-		rv = -1;
-
-	if (*ret && rv < 0)
-		free(*ret);
-	xmlFreeDoc(xtree);
-	xmlCleanupParser();
-	return rv;
-}
-
-
-#ifdef STANDALONE
-int
-main(int argc, char **argv)
-{
-	char *file = NULL;
-	char *buf;
-	size_t sz;
-	int opt;
-	xmlDocPtr xtree;
-
-	while ((opt = getopt(argc, argv, "f:")) != EOF) {
-		switch(opt) {
-		case 'f':
-			file = optarg;
-			break;
-		}
-	}
-
-	if (!file) {
-		printf("No file specified\n");
-		return 1;
-	}
-
-	if (xtree_readfile(file, &xtree) < 0)
-		return -1;
-
-	cleanup_xml_doc(xtree);
-
-	xtree_writebuffer(xtree, &buf, &sz);
-	write(1, buf, sz);
-
-	return 0;
-}
-#endif
diff --git a/fence/agents/xvm/xvm.h b/fence/agents/xvm/xvm.h
deleted file mode 100644
index de89543..0000000
--- a/fence/agents/xvm/xvm.h
+++ /dev/null
@@ -1,65 +0,0 @@
-#ifndef _XVM_H
-#define _XVM_H
-
-#include <stdint.h>
-#include <sechash.h>
-#include <netinet/in.h>
-
-#define XVM_VERSION "0.9.3"
-
-#define MAX_DOMAINNAME_LENGTH 64 /* XXX MAXHOSTNAMELEN */
-#define MAX_ADDR_LEN		sizeof(struct sockaddr_in6)
-#define DOMAIN0NAME "Domain-0"
-#define DOMAIN0UUID "00000000-0000-0000-0000-000000000000"
-
-typedef enum {
-	HASH_NONE = 0x0,	/* No packet signing */
-	HASH_SHA1 = 0x1,	/* SHA1 signing */
-     	HASH_SHA256 = 0x2,      /* SHA256 signing */
-     	HASH_SHA512 = 0x3       /* SHA512 signing */
-} fence_hash_t;
-
-#define DEFAULT_HASH HASH_SHA256
-
-typedef enum {
-	AUTH_NONE = 0x0,	/* Plain TCP */
-	AUTH_SHA1 = 0x1,	/* Challenge-response (SHA1) */
-  	AUTH_SHA256 = 0x2,      /* Challenge-response (SHA256) */
-	AUTH_SHA512 = 0x3,      /* Challenge-response (SHA512) */
-     /* AUTH_SSL_X509 = 0x10        SSL X509 certificates */
-} fence_auth_type_t;
-
-#define DEFAULT_AUTH AUTH_SHA256
-
-typedef enum {
-	FENCE_NULL   = 0x0,	
-	FENCE_OFF    = 0x1,	/* Turn the VM off */
-	FENCE_REBOOT = 0x2	/* Hit the reset button */
-     /* FENCE_ON = 0x3            Turn the VM on */
-} fence_cmd_t;
-
-#define DEFAULT_TTL 4
-
-#ifndef DEFAULT_HYPERVISOR_URI
-#define DEFAULT_HYPERVISOR_URI "qemu:///system"
-#endif
-
-#define MAX_HASH_LENGTH SHA512_LENGTH
-#define MAX_KEY_LEN 4096
-
-typedef struct __attribute__ ((packed)) _fence_req {
-	uint8_t  request;		/* Fence request */
-	uint8_t  hashtype;		/* Hash type used */
-	uint8_t  addrlen;		/* Length of address */
-	uint8_t  flags;			/* Special flags */
-#define RF_UUID 0x1			   /* Flag specifying UUID */
-	uint8_t  domain[MAX_DOMAINNAME_LENGTH]; /* Domain to fence*/
-	uint8_t  address[MAX_ADDR_LEN]; /* We're this IP */
-	uint16_t port;			/* Port we bound to */
-	uint8_t  random[10];		/* Random Data */
-	uint32_t family;		/* Address family */
-	uint8_t  hash[MAX_HASH_LENGTH];	/* Binary hash */
-} fence_req_t;
-
-
-#endif
diff --git a/fence/agents/zvm/Makefile b/fence/agents/zvm/Makefile
deleted file mode 100644
index 81f8889..0000000
--- a/fence/agents/zvm/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-include ../../../make/defines.mk
-
-TARGET= fence_zvm
-
-include $(OBJDIR)/make/fencebuild.mk
diff --git a/fence/agents/zvm/fence_zvm.8 b/fence/agents/zvm/fence_zvm.8
deleted file mode 100644
index c58d8ae..0000000
--- a/fence/agents/zvm/fence_zvm.8
+++ /dev/null
@@ -1,64 +0,0 @@
-.TH fence_zvm 8
-
-.SH NAME
-fence_zvm - I/O Fencing agent for GFS on s390 and zSeries VM clusters
-
-.SH SYNOPSIS
-.B
-fence_zvm
-[\fIOPTION\fR]...
-
-.SH DESCRIPTION
-fence_zvm is an I/O Fencing agent used on a GFS virtual machine in a s390 or zSeries VM cluster.
-It uses the s3270 program to log the specified virtual machine out of VM.
-For fence_zvm to execute correctly, you must have s3270 in your PATH.
-
-fence_zvm accepts options on the command line as well as from stdin.
-fence_node sends the options through stdin when it execs the agent.
-fence_zvm can be run by itself with command line options which is useful
-for testing.
-
-Vendor URL: http://www.ibm.com
-
-.SH OPTIONS
-.TP
-\fB-a\fP \fIIPaddress\fP
-IP address or hostname of the Physical machine (required).
-.TP
-\fB-h\fP
-Print out a help message describing available options, then exit.
-.TP
-\fB-u\fP \fIuserid\fP
-userid of the virtual machine to fence (required).
-.TP
-\fB-p\fP \fIpassword\fP
-password of the virtual machine to fence (required).
-.TP
-\fB-S\fP \fIpath\fR
-Full path to an executable to generate the password of the virtual machine to fence.
-.TP
-\fB-q\fP
-quiet mode, no output.
-.TP
-\fB-V\fP
-Print out a version message, then exit.
-
-.SH STDIN PARAMETERS
-.TP
-\fIagent = < param >\fP
-This option is used by fence_node(8) and is ignored by fence_zvm.
-.TP
-\fIipaddr = < hostname | ip >\fP
-IP address or hostname of the Physical machine (required).
-.TP
-\fIpasswd = < param >\fP
-password of the virtual machine to fence (required).
-.TP
-\fIpasswd_script = < param >\fR
-Full path to an executable to generate the password of the virtual machine to fence.
-.TP
-\fIuserid = < param >\fP
-userid of the virtual machine to fence (required).
-
-.SH SEE ALSO
-fence(8), fenced(8), fence_node(8)
diff --git a/fence/agents/zvm/fence_zvm.pl b/fence/agents/zvm/fence_zvm.pl
deleted file mode 100644
index f90125a..0000000
--- a/fence/agents/zvm/fence_zvm.pl
+++ /dev/null
@@ -1,353 +0,0 @@
-#!/usr/bin/perl
-
-use Getopt::Std;
-use IPC::Open2;
-
-my $ME = $0;
-
-END {
-  defined fileno STDOUT or return;
-  close STDOUT and return;
-  warn "$ME: failed to close standard output: $!\n";
-  $? ||= 1;
-}
-
-# Get the program name from $0 and strip directory names
-$_=$0;
-s/.*\///;
-my $pname = $_;
-
-# WARNING!! Do not add code bewteen "#BEGIN_VERSION_GENERATION" and
-# "#END_VERSION_GENERATION"  It is generated by the Makefile
-
-#BEGIN_VERSION_GENERATION
-$RELEASE_VERSION="";
-$REDHAT_COPYRIGHT="";
-$BUILD_DATE="";
-#END_VERSION_GENERATION
-
-
-$comm_program = s3270;
-$debug = 0;
-$max_loops = 10;
-
-sub usage
-{
-    print "Usage:\n";  
-    print "\n";
-    print "$pname [options]\n";
-    print "\n";
-    print "Options:\n";
-    print "  -a <ip>          IP address or hostname of the physical s390\n";
-    print "  -h               usage\n";
-    print "  -u <string>      userid of the virtual machine to fence\n";
-    print "  -p <string>      Password\n";
-    print "  -S <path>        Script to run to retrieve login password\n";
-    print "  -q               quiet mode\n";
-    print "  -r <devnum>      ipl device <devnum>\n";
-    print "  -V               Version\n";
-
-    exit 0;
-}
-
-sub fail
-{
-  ($msg)=@_;
-  print "failed: " . $msg . "\n" unless defined $opt_q;
-  exit 1;
-}
-
-sub fail_usage
-{
-  ($msg)=@_;
-  print stderr $msg."\n" if $msg;
-  print stderr "Please use '-h' for usage.\n";
-  exit 1;
-}
-
-sub version
-{
-  print "$pname $RELEASE_VERSION $BUILD_DATE\n";
-  print "$REDHAT_COPYRIGHT\n" if ( $REDHAT_COPYRIGHT );
-
-  exit 0;
-}
-
-
-sub do_read
-{
-    my($line);
-
-    $line = <READ_H>;
-
-    if ($debug)
-    {
-	my($l) = ($line);
-	$l =~ s/\n//;
-	print "read:  $l\n";
-    }
-    
-    return $line;
-}
-
-sub do_write
-{
-    my($line) = @_;
-
-    if ($debug)
-    {
-	my($l) = ($line);
-	$l =~ s/\n//;
-	print "write:  $l\n";	
-    }
-
-    print WRITE_H $line;
-}
-
-
-sub look_for
-{
-    my ($text, $found);
-    $found = 0;
-    ($text) = @_;
-    &do_write("ascii\n");
-    while(1){
-	$_ = &do_read;
-	last unless (/^data:/);
-	$found = 1 if (/$text/);
-    } 
-    $_ = &do_read; 
-    fail "error while looking for string '$text'." unless (/ok/);
-    return $found;
-}
-
-sub in_cp_read_state
-{
-    my ($prev);
-    $_ = "";
-    &do_write("ascii\n");
-    while (1){
-	$prev = $_;
-	$_ = &do_read;
-	last unless (/^data:/);
-    }
-    $_ = &do_read;
-    fail "error while looking for machine state." unless (/ok/);
-    return 1 if ($prev =~ /CP READ/i);
-    return 0;
-}
-
-sub send_wait
-{ 
-    &do_write("wait\n");
-    $_ = &do_read;
-    $_ = &do_read;
-    if (/ok/){
-	return 1;
-    }
-    return 0;
-}
-
-sub send_string
-{
-    my ($cmd);
-    ($cmd) = @_;
-    &do_write('string "' . $cmd . '\n"' . "\n");
-    $_ = &do_read;
-    $_ = &do_read;
-    if (/ok/){
-	return send_wait;
-    }
-    return 0;
-}
-
-sub send_cmd
-{
-    my ($cmd);
-    ($cmd) = @_;
-    &do_write($cmd . "\n");
-    $_ = &do_read;
-    $_ = &do_read;
-    if (/ok/){
-	return send_wait;
-    }
-    return 0;
-}
-
-sub wait_for_response
-{
-    my ($pass, $failure, $msg, $found, $loops);
-    $loops = 0;
-    $found = 0;
-    ($pass, $failure, $msg) = @_;
-    while (1){
-      $loops = $loops + 1;
-      fail "timed out waiting for '$pass'" if ($loops > $max_loops);
-      &do_write("ascii\n");
-      while(1){
-        $_ = &do_read;
-        chomp;
-        last unless (/^data:/);
-        $found = 1 if (/$pass/);
-        if ($failure){
-          fail("$msg '$_'") if (/$failure/);
-        }
-      }
-      $_ = &do_read;
-      fail "wait for response failed '$_'" unless (/ok/);
-      last if $found;
-      sleep 1;
-    }
-    return 0;
-}
-
-sub check_response
-{
-    ($action) = @_;
-    $_ = &do_read;
-    $_ = &do_read;
-    fail "$action failed." unless (/ok/);
-}
-
-sub get_options_stdin
-{
-    my $opt;
-    my $line = 0;
-    while( defined($in = <>) )
-    {
-        $_ = $in;
-	      chomp;
-
-        # strip leading and trailing whitespace
-        s/^\s*//;
-        s/\s*$//;
-
-        # skip comments
-        next if /^#/;
-
-	      $line+=1;
-        $opt=$_;
-        next unless $opt;
-
-	      ($name,$val)=split /\s*=\s*/, $opt;
-
-	      if ( $name eq "" )
-        {
-           print stderr "parse error: illegal name in option $line\n";
-           exit 2;
-        }
-
-	      # DO NOTHING -- this field is used by fenced or stomithd
-        elsif ($name eq "agent" ) { }
-
-	      # FIXME -- depricated.  use "userid" and "password" instead.
-        elsif ($name eq "fm" )
-        {
-            (my $dummy,$opt_u,$opt_p) = split /\s+/,$val;
-	          print STDERR "Depricated \"fm\" entry detected.  refer to man page.\n";
-        }
-
-	      elsif ($name eq "ipaddr" )
-        {
-            $opt_a = $val;
-        }
-
-        elsif ($name eq "ipl" )
-        {
-            $opt_r = $val;
-        }
-
-        # FIXME -- depreicated residue of old fencing system
-      	elsif ($name eq "name" ) { }
-
-	      elsif ($name eq "passwd" )
-        {
-            $opt_p = $val;
-        }
-		elsif ($name eq "passwd_script" )
-		{
-			$opt_S = $val;
-		}
-	      elsif ($name eq "userid" )
-        {
-            $opt_u = $val;
-        }
-
-	else
-        {
-           print stderr "parse error: unknown option \"$opt\"\n";
-           #> exit 2;
-        }
-    }
-}
-
-if (@ARGV > 0){
-    getopts("a:hp:S:qr:u:V") || fail_usage;
-    usage if defined $opt_h;
-    version if defined $opt_V;
-
-    fail_usage "Unkown parameter." if (@ARGV > 0);
-
-    fail_usage "No '-a' flag specified." unless defined $opt_a;
-
-    if (defined $opt_S) {
-        $pwd_script_out = `$opt_S`;
-        chomp($pwd_script_out);
-        if ($pwd_script_out) {
-            $opt_p = $pwd_script_out;
-        }
-    }
-
-    fail_usage "No '-p' or '-S' flag specified." unless defined $opt_p;
-    fail_usage "No '-u' flag specified." unless defined $opt_u;
-
-} else {
-    get_options_stdin();
-
-    fail "no IP address" unless defined $opt_a;
-    fail "no userid" unless defined $opt_u;
-
-    if (defined $opt_S) {
-        $pwd_script_out = `$opt_S`;
-        chomp($pwd_script_out);
-        if ($pwd_script_out) {
-            $opt_p = $pwd_script_out;
-        }
-    }
-
-    fail "no password" unless defined $opt_p;
-}
-
-$pid = open2(READ_H, WRITE_H, "$comm_program 2>&1");
-&do_write("connect $opt_a\n");
-$_ = &do_read;
-unless (/^U U U/){
-    chomp;
-    fail "communication program failed with '$_'.";
-}
-$_ = &do_read;
-fail "couldn't connect to $opt_a." unless(/ok/);
-send_wait or fail "couldn't start 3270 session on $opt_a.";
-send_cmd "enter" or fail "couldn't reach logon prompt.";
-look_for "Enter one of the following commands:" or fail "doesn't look like a login prompt\n";
-send_string "logon $opt_u $opt_p norun here" or fail "couldn't login";
-send_cmd "clear" or fail "couldn't send the clear command.";
-send_string "#cp query userid";
-wait_for_response(uc($opt_u),"Enter one of the following commands:", "logon failed");
-fail "machine not in CP READ state" unless in_cp_read_state;
-if (defined $opt_r){
-    send_string "ipl $opt_r" or fail "couldn't send reboot command";
-} else {
-    send_string "stop" or fail "couldn't send stop command\n";
-}
-fail "command failed" if look_for "Unknown CP command";
-if (defined $opt_r && !in_cp_read_state){
-    send_string "#cp disc";
-} else {
-    &do_write("disconnect\n");
-}
-&do_write("quit\n");
-
-print "success: booted userid $opt_u\n" unless defined $opt_q;
-
-exit 0;
diff --git a/make/defines.mk.input b/make/defines.mk.input
index 456a7d1..5cb006a 100644
--- a/make/defines.mk.input
+++ b/make/defines.mk.input
@@ -11,7 +11,6 @@ logdir ?= ${DESTDIR}@LOGDIR@
 logrotatedir ?= ${DESTDIR}@LOGROTATEDIR@
 mandir ?= ${DESTDIR}@MANDIR@
 incdir ?= ${DESTDIR}@INCDIR@
-snmpbin ?= @SNMPBIN@
 notifyddir ?= ${DESTDIR}@CONFDIR@/cman-notify.d
 pkgconfigdir ?= ${DESTDIR}@LIBDIR@/pkgconfig
 
@@ -49,10 +48,6 @@ ncursesincdir ?= @NCURSESINCDIR@
 ncurseslibdir ?= @NCURSESLIBDIR@
 slangincdir ?= @SLANGINCDIR@
 slanglibdir ?= @SLANGLIBDIR@
-nssincdir ?= @NSSINCDIR@
-nsslibdir ?= @NSSLIBDIR@
-nsprincdir ?= @NSPRINCDIR@
-nsprlibdir ?= @NSPRLIBDIR@
 corosyncincdir ?= @COROSYNCINCDIR@
 corosynclibdir ?= @COROSYNCLIBDIR@
 openaisincdir ?= @OPENAISINCDIR@
@@ -60,12 +55,8 @@ openaislibdir ?= @OPENAISLIBDIR@
 corosyncbin ?= @COROSYNCBIN@
 ldapincdir ?= @LDAPINCDIR@
 ldaplibdir ?= @LDAPLIBDIR@
-virtincdir ?= @VIRTINCDIR@
-virtlibdir ?= @VIRTLIBDIR@
 zlibincdir ?= @ZLIBINCDIR@
 zliblibdir ?= @ZLIBLIBDIR@
-fence_agents ?= @FENCE_AGENTS@
-fenceagentslibdir ?= @FENCEAGENTSLIBDIR@
 contrib_code ?= @ENABLE_CONTRIB@
 enable_pacemaker ?= @ENABLE_PACEMAKER@
 without_common ?= @DISABLE_COMMON@
@@ -84,4 +75,3 @@ CONFDIR=@CONFDIR@
 CONFFILE=@CONFFILE@
 
 UNINSTALL = perl @SRCDIR@/scripts/uninstall.pl
-FENCEPARSE = bash @SRCDIR@/scripts/fenceparse
diff --git a/make/fencebuild.mk b/make/fencebuild.mk
deleted file mode 100644
index 30cd26b..0000000
--- a/make/fencebuild.mk
+++ /dev/null
@@ -1,43 +0,0 @@
-ifndef FENCEAGENTSLIB
-	ifndef SBINDIRT
-		SBINDIRT=$(TARGET)
-	endif
-	ifndef MANTARGET
-		MANTARGET=$(TARGET).8
-	endif
-endif
-
-all: $(TARGET) $(MANTARGET)
-
-include $(OBJDIR)/make/clean.mk
-include $(OBJDIR)/make/install.mk
-include $(OBJDIR)/make/uninstall.mk
-
-$(TARGET):
-	${FENCEPARSE} \
-		${SRCDIR}/make/copyright.cf REDHAT_COPYRIGHT \
-		${RELEASE_VERSION} \
-		$(S) $@ | \
-	sed \
-		-e 's#@FENCEAGENTSLIBDIR@#${fenceagentslibdir}#g' \
-		-e 's#@SNMPBIN@#${snmpbin}#g' \
-		-e 's#@LOGDIR@#${logdir}#g' \
-		-e 's#@SBINDIR@#${sbindir}#g' \
-	> $@
-
-ifdef MAKEMAN
-$(MANTARGET): $(MANTARGET:.8=) ${SRCDIR}/fence/agents/lib/fence2man.xsl
-	set -e && \
-	PYTHONPATH=${OBJDIR}/fence/agents/lib \
-		python $^ -o metadata > .$@.tmp && \
-	xsltproc ${SRCDIR}/fence/agents/lib/fence2man.xsl .$@.tmp > $@
-
-clean: generalclean
-	rm -f $(MANTARGET) .$(MANTARGET).tmp
-else
-$(MANTARGET): $(S)/$(MANTARGET)
-	cp $< $@
-
-clean: generalclean
-	if [ "$(OBJDIR)" != "$(SRCDIR)" ]; then rm -f $(MANTARGET); fi
-endif
diff --git a/make/install.mk b/make/install.mk
index e07e7fc..3f23bca 100644
--- a/make/install.mk
+++ b/make/install.mk
@@ -47,10 +47,6 @@ ifdef UDEVT
 		install -m644 $(S)/$$i ${DESTDIR}/etc/udev/rules.d; \
 	done
 endif
-ifdef FENCEAGENTSLIB
-	install -d ${DESTDIR}/${fenceagentslibdir}
-	install -m644 ${FENCEAGENTSLIB} ${DESTDIR}/${fenceagentslibdir}
-endif
 ifdef DOCS
 	install -d ${docdir}
 	set -e; \
@@ -82,7 +78,3 @@ ifdef MANTARGET
 		install -m644 $$i ${mandir}/man$$p; \
 	done
 endif
-ifdef EXTRACONFFILE
-	install -d ${DESTDIR}/${CONFDIR}
-	install -m644 ${EXTRACONFFILE} ${DESTDIR}/${CONFDIR}
-endif
diff --git a/make/release.mk b/make/release.mk
index 01247a7..fb1ab2a 100644
--- a/make/release.mk
+++ b/make/release.mk
@@ -17,12 +17,6 @@ projecttar=$(projectver).tar
 projectgz=$(projecttar).gz
 projectbz=$(projecttar).bz2
 
-fenceproject=fence-agents
-fenceprojectver=$(fenceproject)-$(version)
-fenceprojecttar=$(fenceprojectver).tar
-fenceprojectgz=$(fenceprojecttar).gz
-fenceprojectbz=$(fenceprojecttar).bz2
-
 rgmproject=rgmanager
 rgmprojectver=$(rgmproject)-$(version)
 rgmprojecttar=$(rgmprojectver).tar
@@ -78,9 +72,6 @@ tarballs: tag
 tarballs: $(releasearea)/$(projecttar)
 tarballs: $(releasearea)/$(projectgz)
 tarballs: $(releasearea)/$(projectbz)
-tarballs: $(releasearea)/$(fenceprojecttar)
-tarballs: $(releasearea)/$(fenceprojectgz)
-tarballs: $(releasearea)/$(fenceprojectbz)
 tarballs: $(releasearea)/$(rgmprojecttar)
 tarballs: $(releasearea)/$(rgmprojectgz)
 tarballs: $(releasearea)/$(rgmprojectbz)
@@ -99,21 +90,6 @@ $(releasearea)/$(projecttar):
 	tar cpf $(projecttar) $(projectver) && \
 	rm -rf $(projectver)
 
-$(releasearea)/$(fenceprojecttar): $(releasearea)/$(projecttar)
-	@echo Creating $(fenceproject) tarball
-	cd $(releasearea) && \
-	rm -rf $(projectver) $(fenceprojectver) && \
-	tar xpf $(projecttar) && \
-	mv $(projectver) $(fenceprojectver) && \
-	cd $(fenceprojectver) && \
-	rm -rf bindings cman common config contrib dlm group \
-		rgmanager fence/fenced fence/fence_node \
-		fence/fence_tool fence/include fence/libfence \
-		fence/libfenced fence/man && \
-	cd .. && \
-	tar cpf $(fenceprojecttar) $(fenceprojectver) && \
-	rm -rf $(fenceprojectver)
-
 $(releasearea)/$(rgmprojecttar): $(releasearea)/$(projecttar)
 	@echo Creating $(rgmproject) tarball
 	cd $(releasearea) && \
diff --git a/make/uninstall.mk b/make/uninstall.mk
index cc2c766..8440187 100644
--- a/make/uninstall.mk
+++ b/make/uninstall.mk
@@ -26,9 +26,6 @@ endif
 ifdef UDEVT
 	${UNINSTALL} ${UDEVT} ${DESTDIR}/etc/udev/rules.d
 endif
-ifdef FENCEAGENTSLIB
-	${UNINSTALL} ${FENCEAGENTSLIB}* ${DESTDIR}/${fenceagentslibdir}
-endif
 ifdef DOCS
 	${UNINSTALL} ${DOCS} ${docdir}
 endif
@@ -51,6 +48,3 @@ ifdef MANTARGET
 		${UNINSTALL} $$i ${mandir}/man$$p; \
 	done
 endif
-ifdef EXTRACONFFILE
-	${UNINSTALL} ${EXTRACONFFILE} ${DESTDIR}/${CONFDIR}
-endif
diff --git a/scripts/fenceparse b/scripts/fenceparse
deleted file mode 100644
index b6ed431..0000000
--- a/scripts/fenceparse
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/bash
-
-set -e
-
-export LC_ALL=C
-
-definefile="$1"
-define="$2"
-release="$3"
-srcdir="$4"
-infile="$5"
-
-definedata="$(cat $definefile | grep "^\#define $define" | sed -e 's/.*'$define' //')"
-
-realinfile="$(ls $srcdir/$infile.*{py,pl,sh} 2>/dev/null || true)"
-
-[ -z "$realinfile" ] && exit 1
-
-interpreter="$(cat $realinfile | head -n 1 | awk -F "/" '{print $NF}')"
-interpreter="$(echo $interpreter)"
-
-case "$interpreter" in
-	perl)
-		start="\$"
-		end=";"
-	;;
-	*)
-		start=""
-		end=""
-	;;
-esac
-
-awk "{print}(\$1 ~ /#BEGIN_VERSION_GENERATION/){exit 0}" $realinfile
-echo ${start}RELEASE_VERSION=\"${release}\"${end}
-echo ${start}BUILD_DATE=\"\(built $(date)\)\"${end}
-if awk -v p=0 "(\$1 ~ /#BEGIN_VERSION_GENERATION/){p = 1} (\$1 ~ /#END_VERSION_GENERATION/){p = 0} {if(p==1)print}" $realinfile | \
-		grep -q REDHAT_COPYRIGHT; then
-	echo ${start}REDHAT_COPYRIGHT=${definedata}${end}
-fi
-awk -v p=0 "(\$1 ~ /#END_VERSION_GENERATION/){p = 1} {if(p==1)print}" $realinfile
-
-exit 0


More information about the cluster-commits mailing list