tcl3270 Manual Page
NVT (ANSI) Mode
The PrintText Action
IBM host access tool
tcl3270 [options] [script] session-file.tcl3270
a telnet connection to an IBM
host, then allows a tcl script to control the host login
It is derived from
an X-windows IBM 3270 emulator.
It implements RFCs 2355 (TN3270E), 1576 (TN3270) and 1646 (LU name selection),
and supports IND$FILE file transfer.
The full syntax for host is:
Prepending a P: onto hostname causes the connection to go
through the telnet-passthru service rather than directly to the host.
See PASSTHRU below.
Prepending an S: onto hostname removes the "extended data
stream" option reported to the host.
See -tn below for further information.
Prepending an N: onto hostname
turns off TN3270E support for the session.
Prepending an L: onto hostname
causes tcl3270 to first create an SSL tunnel to the host, and then
create a TN3270 session inside the tunnel. (This function is supported only if
tcl3270 was built with SSL/TLS support).
Note that TLS-encrypted sessions using the TELNET START-TLS option are
negotiated with the host automatically; for these sessions the L: prefix
should not be used.
A specific Logical Unit (LU) name to use may be specified by prepending it to
the hostname with an `@'.
Multiple LU names to try can be separated by commas.
An empty LU can be placed in the list with an extra comma.
(Note that the LU name is used for different purposes by different kinds of
For example, CICS uses the LU name as the Terminal ID.)
The hostname may optionally be placed inside square-bracket
characters `[' and `]'.
This will prevent any colon `:' characters in the hostname
from being interpreted as indicating option prefixes or port numbers.
This allows numeric IPv6 addresses to be used as hostnames.
On systems that support the forkpty library call, the
hostname may be replaced with -e and a command string.
This will cause tcl3270 to connect to a local child process, such as
The port to connect to defaults to
This can be overridden with the -port option, or by appending
a port to the hostname with a colon
(For compatability with previous versions of tcl3270
and with tn3270(1), the port
may also be specified as a second, separate argument.)
the following options:
- -cadir directory
Specifies a directory containing CA (root) certificates to use when verifying a
certificate provided by the host.
- -cafile filename
Specifies a PEM-format file containing CA (root) certificates to use
when verifying a certificate provided by the host.
- -certfile filename
Specifies a file containing a certificate to provide to the host, if
The default file type is PEM.
- -certfiletype type
Specifies the type of the certificate file specified
Type can be pem or asn1.
- -chainfile filename
Specifies a certificate chain file in PEM format, containing a
certificate to provide to the host if requested, as well as one or more
intermediate certificates and the CA certificate used to sign that certificate.
If -chainfile is specified, it
- -charset name
Specifies an EBCDIC host character set.
See CHARACTER SETS below.
- -clear toggle
Sets the initial value of toggle to false.
The list of toggle names is under TOGGLES
- -devname name
Specifies a device name (workstation ID) for RFC 4777 support.
- -im method
Specifies the name of the input method to use for multi-byte input.
(Supported only when tcl3270 is compiled with DBCS support.)
- -keyfile filename
Specifies a file containing the private key for the certificate file
(specified via -certfile or -chainfile).
The default file type is PEM.
- -keyfiletype type
Specifies the type of the private key file specified
Type can be pem or asn1.
- -keypasswd type:value
Specifies the password for the private key file, if it is encrypted.
The argument can be file:filename, specifying that the
password is in a file, or string:string, specifying the
password on the command-line directly.
If the private key file is encrypted and no -keypasswd
option is given,
secure connections will not be allowed.
- -km name
Specifies the local encoding method for multi-byte text.
name is an encoding name recognized by the ICU library.
(Supported only when tcl3270 is compiled with DBCS support, and necessary
only when tcl3270 cannot figure it out from the locale.)
- -model name
The model of 3270 display to be emulated.
The model name is in two parts, either of which may be omitted:
The first part is the
which is either 3278 or 3279.
3278 specifies a monochrome (green on black) 3270 display;
3279 specifies a color 3270 display.
The second part is the
which specifies the number of rows and columns.
Model 4 is the default.
|Model Number ||Columns ||Rows|
|2 ||80 ||24|
|3 ||80 ||32|
|4 ||80 ||43|
|5 ||132 ||27|
Note: Technically, there is no such 3270 display as a 3279-4 or 3279-5, but
most hosts seem to work with them anyway.
The default model
- -oversize colsxrows
Makes the screen larger than the default for the chosen model number.
This option has effect only in combination with extended data stream support
(controlled by the "tcl3270.extended" resource), and only if the host
supports the Query Reply structured field.
The number of columns multiplied by the number of rows must not exceed
16383 (3fff hex), the limit of 14-bit 3270 buffer addressing.
- -port n
Specifies a different TCP port to connect to.
n can be a name from /etc/services like telnet, or a
This option changes the default port number used for all connections.
(The positional parameter affects only the initial connection.)
- -proxy type:host[:port]
Causes tcl3270 to connect via the specified proxy, instead of
using a direct connection.
The host can be an IP address or hostname.
The optional port can be a number or a service name.
For a list of supported proxy types, see PROXY
- -set toggle
Sets the initial value of toggle to true.
The list of toggle names is under TOGGLES
The -p option of x3270if causes it to use this socket,
instead of pipes specified by environment variables.
- -tn name
Specifies the terminal name to be transmitted over the telnet connection.
The default name is
Some hosts are confused by the -E
suffix on the terminal name, and will ignore the extra screen area on
models 3, 4 and 5.
Prepending an s: on the hostname, or setting the "tcl3270.extended"
resource to "false", removes the -E
from the terminal name when connecting to such hosts.
The name can also be specified with the "tcl3270.termName" resource.
Turns on data stream and event tracing at startup.
The default trace file name is
- -tracefile file
Specifies a file to save data stream and event traces into.
If the name starts with `>>', data will be appended to the file.
- -tracefilesize size
Places a limit on the size of a trace file.
If this option is not specified, or is specified as 0 or none,
the trace file size will be unlimited.
The minimum size is 64 Kbytes.
The value of size can have a K or M suffix, indicating
kilobytes or megabytes respectively.
When the trace file reaches the size limit, it will be renamed with a
`-' appended and a new file started.
- -user name
Specifies the user name for RFC 4777 support.
Display the version and build options for tcl3270 and exit.
For SSL or SSL/TLS connections, verify the host certificate, and do not allow
the connection to complete unless it can be validated.
- -xrm "tcl3270.resource: value"
Sets the value of the named resource to value.
Resources control less common tcl3270
options, and are defined under RESOURCES below.
Terminates the list of tcl3270 options.
Whatever follows will be available to the script in the $argv
option or the "tcl3270.charset" resource controls the EBCDIC
host character set used by tcl3270.
Available sets include:
|Charset Name ||Host Code Page ||Character Set|
|belgian ||500 || iso8859-1|
|belgian-euro ||1148 || iso8859-15|
|bracket ||037 || iso8859-1|
|brazilian ||275 || iso8859-1|
|chinese-gb18030 ||1388 || iso8859-1 + iso10646-1|
|cp1047 ||1047 || iso8859-1|
|cp870 ||870 || iso8859-2|
|finnish ||278 || iso8859-1|
|finnish-euro ||1143 || iso8859-15|
|french ||297 || iso8859-1|
|french-euro ||1147 || iso8859-15|
|german ||273 || iso8859-1|
|german-euro ||1141 || iso8859-15|
|greek ||423 || iso8859-7|
|hebrew ||424 || iso8859-8|
|icelandic ||871 || iso8859-1|
|icelandic-euro ||1149 || iso8859-15|
|italian ||280 || iso8859-1|
|italian-euro ||1144 || iso8859-15|
|japanese-kana ||930 ||jisx0201.1976-0 + jisx0208.1983-0|
|japanese-latin ||939 ||jisx0201.1976-0 + jisx0208.1983-0|
|norwegian ||277 || iso8859-1|
|norwegian-euro ||1142 || iso8859-15|
|russian ||880 ||koi8-r|
|simplified-chinese ||935 || iso8859-1 + gb2312.1980-0|
|slovenian ||870 ||iso8859-2|
|spanish ||284 || iso8859-1|
|spanish-euro ||1145 || iso8859-15|
|thai ||1160 ||iso8859-11 tis620.2529-0|
|traditional-chinese ||937 || iso8859-1 + Big5-0|
|turkish ||1026 ||iso8859-9|
|uk ||285 || iso8859-1|
|uk-euro ||1146 || iso8859-15|
|us-euro ||1140 || iso8859-15|
|us-intl ||037 || iso8859-1|
The default character set is
which is useful for common U.S. IBM hosts which use EBCDIC
codes AD and BD for the `[' and `]' characters,
Note that any of the host code pages listed above can be specified by adding
cp to the host code page, e.g., cp037 for host code page 037.
Also note that the code pages available for a given version of tcl3270
are displayed by the -v command-line option.
NVT (ANSI) Mode
Some hosts use an ASCII front-end to do initial login negotiation,
then later switch to 3270 mode.
tcl3270 will emulate an ANSI X.64 terminal until the host
places it in 3270 mode (telnet BINARY and SEND EOR modes, or
TN3270E mode negotiation).
If the host later negotiates to stop functioning in 3270 mode,
tcl3270 will return to ANSI emulation.
In NVT mode, tcl3270
supports both character-at-a-time mode and line mode operation.
You may select the mode with a menu option.
When in line mode, the special characters and operational characteristics are
defined by resources:
|Mode/Character ||Resource ||Default|
|Translate CR to NL ||tcl3270.icrnl ||true|
|Translate NL to CR ||tcl3270.inlcr ||false|
|Erase previous character ||tcl3270.erase ||^?|
|Erase entire line ||tcl3270.kill ||^U|
|Erase previous word ||tcl3270.werase ||^W|
|Redisplay line ||tcl3270.rprnt ||^R|
|Ignore special meaning of next character ||tcl3270.lnext ||^V|
|Interrupt ||tcl3270.intr ||^C|
|Quit ||tcl3270.quit ||^\|
|End of file ||tcl3270.eof ||^D|
tcl3270 has a number of configurable modes which may be selected by
the -set and -clear options.
If set, tcl3270 operates in uppercase-only mode.
If set, tcl3270 behaves in some un-3270-like ways.
First, when a character is typed into a field, all nulls in the field to the
left of that character are changed to blanks.
This eliminates a common 3270 data-entry surprise.
Second, in insert mode, trailing blanks in a field are treated like nulls,
eliminating the annoying `lock-up' that often occurs when inserting
into an field with (apparent) space at the end.
If set, the ANSI terminal emulator automatically assumes
a NEWLINE character when it reaches the end of a line.
The names of the toggles for use with the -set
options are as follows:
|Blank Fill ||blankFill|
|Track Cursor ||cursorPos|
|Trace Data Stream ||dsTrace|
|Trace Events ||eventTrace|
|Save Screen(s) in File ||screenTrace|
These names are also used as the first parameter to the Toggle
tcl3270 supports the following additional tcl commands:
Actions marked with an asterisk (*) may block, sending data to the host and
possibly waiting for a response.
|Ascii ||return entire screen contents as text|
|Ascii length ||return screen contents at cursor as text|
|Ascii row col length ||return screen contents as text|
|Ascii row col rows cols ||return screen region as text|
|AsciiField ||return current field as text|
|*Attn ||attention key|
|BackSpace ||move cursor left (or send ASCII BS)|
|BackTab ||tab to start of previous input field|
|CircumNot ||input "^" in NVT mode, or "¬" in 3270 mode|
|*Clear ||clear screen|
|Cols ||report screen size|
|*Connect host ||connect to host|
|*CursorSelect ||Cursor Select AID|
|Delete ||delete character under cursor (or send ASCII DEL)|
|DeleteField ||delete the entire field|
|DeleteWord ||delete the current or previous word|
|*Disconnect ||disconnect from host|
|Down ||move cursor down|
|Dup ||duplicate field|
|Ebcdic ||return entire screen contents in EBCDIC|
|Ebcdic length ||return screen contents at cursor in EBCDIC|
|Ebcdic row col length ||return screen contents in EBCDIC|
|Ebcdic row col rows cols ||return screen region in EBCDIC|
|EbcdicField ||return current field in EBCDIC|
|*Enter ||Enter AID (or send ASCII CR)|
|Erase ||erase previous character (or send ASCII BS)|
|EraseEOF ||erase to end of current field|
|EraseInput ||erase all input fields|
|FieldEnd ||move cursor to end of field|
|FieldMark ||mark field|
|HexString hex_digits ||insert control-character string|
|Home ||move cursor to first input field|
|Insert ||set insert mode|
|*Interrupt ||send TELNET IP to host|
|Key keysym ||insert key keysym|
|Key 0xxx ||insert key with character code xx|
|Left ||move cursor left|
|Left2 ||move cursor left 2 positions|
|MonoCase ||toggle uppercase-only mode|
|MoveCursor row col ||move cursor to (row,col)|
|Newline ||move cursor to first field on next line (or send ASCII LF)|
|NextWord ||move cursor to next word|
|*PA n ||Program Attention AID (n from 1 to 3)|
|*PF n ||Program Function AID (n from 1 to 24)|
|PreviousWord ||move cursor to previous word|
|Quit ||exit tcl3270|
|Redraw ||redraw window|
|Reset ||reset locked keyboard|
|Right ||move cursor right|
|Right2 ||move cursor right 2 positions|
|ReadBuffer Ascii ||dump screen buffer as text|
|ReadBuffer Ebcdic ||dump screen buffer in EBCDIC|
|Rows ||report screen size|
|Snap ||same as Snap Save|
|Snap Ascii ||report saved screen data (see Ascii)|
|Snap Cols ||report saved screen size|
|Snap Ebcdic ||report saved screen data (see Ebcdic)|
|Snap ReadBuffer ||report saved screen data (see ReadBuffer)|
|Snap Rows ||report saved screen size|
|Snap Save ||save screen image|
|Snap Status ||report saved connection status|
|*Snap Wait [timeout] Output ||wait for host output and save screen image|
|Status ||report connection status|
|*String string ||insert string (simple macro facility)|
|*SysReq ||System Request AID|
|Tab ||move cursor to next input field|
|set|clear]>Toggle option[ ||toggle an option|
|ToggleInsert ||toggle insert mode|
|ToggleReverse ||toggle reverse-input mode|
|*Transfer option=value... ||file transfer|
|Up ||move cursor up|
|*Wait [timeout] 3270mode ||wait for 3270 mode|
|*Wait [timeout] Disconnect ||wait for host to disconnect|
|*Wait [timeout] InputField ||wait for valid input field|
|*Wait [timeout] NVTMode ||wait for NVT mode|
|*Wait [timeout] Output ||wait for more host output|
The Transfer command implements IND$FILE file transfer.
This command requires that the IND$FILE
program be installed on the IBM host, and that the 3270 cursor
be located in a field that will accept a TSO or VM/CMS command.
Because of the complexity and number of options for file transfer, the
parameters to the Transfer command take the unique form
of option=value, and can appear in any order.
Note that if the value contains spaces (such as a VM/CMS file name),
then the entire parameter must be quoted, e.g., "HostFile=xxx foo a".
The options are:
|Option ||Required? ||Default ||Other Values|
|Direction ||No ||receive ||send|
|HostFile ||Yes || || |
|LocalFile ||Yes || || |
|Host ||No ||tso ||vm|
|Mode ||No ||ascii ||binary|
|Cr ||No ||remove ||add, keep|
|Remap ||No ||yes ||no|
|Exist ||No ||keep ||replace, append|
|Recfm ||No || ||fixed, variable, undefined|
|Lrecl ||No || || |
|Blksize ||No || || |
|Allocation ||No || ||tracks, cylinders, avblock|
|PrimarySpace ||No || || |
|SecondarySpace ||No || || |
|BufferSize ||No ||4096 || |
The option details are as follows.
send to send a file to the host,
receive to receive a file from the host.
The name of the file on the host.
The name of the file on the local workstation.
The type of host (which dictates the form of the IND$FILE command):
tso (the default) or vm.
Use ascii (the default) for a text file, which will be translated
between EBCDIC and ASCII as necessary.
Use binary for non-text files.
Controls how Newline characters are handled when transferring
remove (the default) strips Newline characters in local files
before transferring them to the host.
add adds Newline characters to each host file record before
transferring it to the local workstation.
keep preserves Newline characters when transferring a local file
to the host.
Controls text translation for Mode=ascii files.
The value yes (the default) causes tcl3270 to remap the text to ensure
maximum compatibility between the workstation's character set and encoding
and the host's EBCDIC code page.
The value no causes tcl3270 to pass the text to or from the host
as-is, leaving all translation to the IND$FILE program on the host.
Controls what happens when the destination file already exists.
keep (the default) preserves the file, causing the
Transfer command to fail.
replace overwrites the destination file with the source file.
append appends the source file to the destination file.
Controls the record format of files created on the host.
fixed creates a file with fixed-length records.
variable creates a file with variable-length records.
undefined creates a file with undefined-length records (TSO hosts only).
The Lrecl option controls the record length or maximum record length for
Recfm=fixed and Recfm=variable files, respectively.
Specifies the record length (or maximum record length) for files created on
Specifies the block size for files created on the host. (TSO hosts only.)
Specifies the units for the TSO host PrimarySpace and
SecondarySpace options: tracks, cylinders or
Primary allocation for a file created on a TSO host.
The units are given by the Allocation option.
Secondary allocation for a file created on a TSO host.
The units are given by the Allocation option.
Buffer size for DFT-mode transfers.
Can range from 256 to 32768.
Larger values give better performance, but some hosts may not be able to
The PrintText Action
The PrintText produces screen snapshots in a number of different
The default form wth no arguments sends a copy of the screen to the default
A single argument is
the command to use to print, e.g., lpr.
Multiple arguments can include keywords to control the output of
- file filename
Save the output in a file.
Save the output as HTML. This option implies file.
Save the output as RichText. This option implies file.
The font defaults to Courier New and the
point size defaults to 8.
These can be overridden by the printTextFont and printTextSize
Return the output as a string. This can only be used from scripts.
Render modified fields in italics.
- caption text
Add the specified text as a caption above the output.
Within text, the special sequence %T% will be replaced with
- command command
Directs the output to a command.
This allows one or more of the other keywords to be specified, while still
sending the output to the printer.
- The String Command
The simplest method for
nested scripts is provided via the String
The arguments to String are one or more double-quoted strings which are
inserted directly as if typed.
The C backslash conventions are honored as follows.
(Entries marked * mean that after sending the AID code to the host,
tcl3270 will wait for the host to unlock the keyboard before further
processing the string.)
|\exxxx ||EBCDIC character in hex|
|\uxxxx ||Unicode character in hex|
|\xxxxx ||Unicode character in hex|
Note that the numeric values for the \e, \u and \x sequences
can be abbreviated to 2 digits.
Note also that EBCDIC codes greater than 255 and some Unicode character codes
represent DBCS characters, which will work only if tcl3270 is built with
DBCS support and the host allows DBCS input in the current field.
The strings are in ASCII and converted to EBCDIC,
so beware of inserting
There is also an alternate form of the String command, HexString,
which is used to enter non-printing data.
The argument to HexString is a string of hexadecimal digits, two per
character. A leading 0x or 0X is optional.
In 3270 mode, the hexadecimal data represent EBCDIC characters, which
are entered into the current field.
In NVT mode, the hexadecimal data represent ASCII characters,
which are sent directly to the host.
tcl3270 supports the Sun telnet-passthru
service provided by the in.telnet-gw server.
This allows outbound telnet connections through a firewall machine.
When a p: is prepended to a hostname, tcl3270
acts much like the itelnet(1) command.
It contacts the machine named internet-gateway at the port defined in
/etc/services as telnet-passthru
(which defaults to 3514).
It then passes the requested hostname and port to the
The -proxy option or the tcl3270.proxy resource
causes tcl3270 to use a proxy server to connect to the host.
The syntax of the option or resource is:
The supported values for type are:
|Proxy Type ||Protocol ||Default Port|
|http ||RFC 2817 HTTP tunnel (squid) ||3128|
|passthru ||Sun in.telnet-gw ||none|
|socks4 ||SOCKS version 4 ||1080|
|socks5 ||SOCKS version 5 (RFC 1928) ||1080|
|telnet ||No protocol (just send connect host port) ||none|
The special types socks4a and socks5d can also be used to force
the proxy server to do the hostname resolution for the SOCKS protocol.
options can be configured via resources.
Resources are defined
by -xrm options.
The definitions are similar to X11 resources, and use a similar syntax.
The resources available in tcl3270 are:
|Resource ||Default ||Option ||Purpose|
|blankFill ||False ||-set blankFill ||Blank Fill mode|
|charset ||bracket ||-charset ||EBCDIC character set|
|dbcsCgcsgid || || ||Override DBCS CGCSGID|
|dsTrace ||False ||-trace ||Data stream tracing|
|eof ||^D || ||NVT-mode EOF character|
|erase ||^H || ||NVT-mode erase character|
|extended ||True || ||Use 3270 extended data stream|
|eventTrace ||False ||-trace ||Event tracing|
|icrnl ||False || ||Map CR to NL on NVT-mode input|
|inlcr ||False || ||Map NL to CR in NVT-mode input|
|intr ||^C || ||NVT-mode interrupt character|
|kill ||^U || ||NVT-mode kill character|
|lineWrap ||False ||-set lineWrap ||NVT line wrap mode|
|lnext ||^V || ||NVT-mode lnext character|
|m3279 ||(note 1) ||-model ||3279 (color) emulation|
|monoCase ||False ||-set monoCase ||Mono-case mode|
|numericLock ||False || ||Lock keyboard for numeric field error|
|oerrLock ||False || ||Lock keyboard for input error|
|oversize || ||-oversize ||Oversize screen dimensions|
|port ||telnet ||-port ||Non-default TCP port|
|quit ||^\ || ||NVT-mode quit character|
|rprnt ||^R || ||NVT-mode reprint character|
|sbcsCgcsgid || || ||Override SBCS CGCSGID|
|secure ||False || ||Disable "dangerous" options|
|termName ||(note 2) ||-tn ||TELNET terminal type string|
|traceDir ||/tmp || ||Directory for trace files|
|traceFile ||(note 3) ||-tracefile ||File for trace output|
|werase ||^W || ||NVT-mode word-erase character|
Note 1: m3279 defaults to
It can be forced to True with the proper -model
The default terminal type string is constructed from the model number, color
emulation, and extended data stream modes.
E.g., a model 2 with color emulation and the extended data stream option
would be sent as IBM-3279-2-E.
Note also that when TN3270E
mode is used, the terminal type is always sent as 3278, but this does not
affect color capabilities.
Note 3: The default trace file is
x3trc.pid in the directory specified by
the traceDir resource.
If more than one -xrm option is given for the same resource,
the last one on the command line is used.
x3270(1), s3270(1), c3270(1), telnet(1), tn3270(1)
Data Stream Programmer's Reference, IBM GA23-0059
Character Set Reference, IBM GA27-3831
RFC 1576, TN3270 Current Practices
RFC 1646, TN3270 Extensions for LUname and Printer Selection
RFC 2355, TN3270 Enhancements
Copyright © 1993-2013, Paul Mattes.
Copyright © 2004-2005, Don Russell.
Copyright © 2004, Dick Altenbern.
Copyright © 1990, Jeff Sparkes.
Copyright © 1989, Georgia Tech Research Corporation (GTRC), Atlanta, GA
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
Neither the names of Paul Mattes, Don Russell, Dick Altenbern, Jeff Sparkes,
the names of their contributors may be used to endorse or promote
products derived from this software without specific prior written
THIS SOFTWARE IS PROVIDED BY PAUL MATTES, DON RUSSELL, DICK ALTENBERN, JEFF
SPARKES AND GTRC
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL PAUL MATTES, DON RUSSELL, DICK
SPARKES OR GTRC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
This HTML document and the accompanying troff document were generated with
a set of write-only m4 macros and the powerful vi editor.
Last modified 02 May 2013.