%%
%% This is file `envlab.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% envlab.dtx  (with options: `package')
%% 
%% IMPORTANT NOTICE:
%% 
%% For the copyright see the source file.
%% 
%% Any modified versions of this file must be renamed
%% with new filenames distinct from envlab.sty.
%% 
%% For distribution of the original source see the terms
%% for copying and modification in the file envlab.dtx.
%% 
%% This generated file may be distributed as long as the
%% original source files, as listed above, are part of the
%% same distribution. (The sources need not necessarily be
%% in the same archive or directory.)
\ProvidesPackage{envlab}
[1997/07/16 v1.2 Envelopes and Labels]
%%
%% Copyright Boris Veytsman 1996, 1997
%%
%%
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%% \changes{v1.2}{1996/07/16}{Updated User Guide}
\NeedsTeXFormat{LaTeX2e}
\def\envlab@oops{%
  \PackageError{envlab}%
  {Envlab is used outside of \MessageBreak%
   a letter-compatible documentclass}%
  {You are trying to use Envelopes & Labels\MessageBreak%
   package, but your documentclass does not\MessageBreak%
   understand address formatting commands.\MessageBreak%
   Try standard document class letter\MessageBreak}}
\def\envlab@ok{%
  \PackageInfo{envlab}%
  {Envelopes & Labels package: found makelabels...\MessageBreak%
  Seems everything is OK. Good luck.}}
\@ifundefined{makelabels}{\envlab@oops}{\envlab@ok}
\newif\if@envelope
\@envelopetrue
\newif\if@biglabel
\@biglabelfalse
\newif\if@rotateenvelopes
\@rotateenvelopestrue
\newif\if@printreturnaddress
\@printreturnaddresstrue
\newcount\@envelopeposition
\@envelopeposition=0\relax
\newif\if@pswait
\@pswaitfalse
\newif\if@psautotray
\@psautotrayfalse
\newtoks\PSEnvelopeTray
\PSEnvelopeTray={/otherenvelopetray }
\newif\if@barcodes
\newif\if@alwaysbarcodes
\@barcodestrue
\@alwaysbarcodesfalse
\newif\if@EL@redefine@opening
\@EL@redefine@openingfalse
\newif\if@capitalizeaddress
\@capitalizeaddresstrue
\newlength{\EnvelopeWidth}
\newlength{\EnvelopeHeight}
\newlength{\EnvelopeTopMargin}
\newlength{\EnvelopeLeftMargin}
\setlength{\EnvelopeLeftMargin}{0pt}
\newlength{\LabelWidth}
\newlength{\LabelHeight}
\newlength{\LabelTopMargin}
\newlength{\LabelLeftMargin}
\newlength{\LabelRightMargin}
\newcounter{LabelMaxCol}
\newcounter{LabelMaxRow}
\newlength{\FromAddressTopMargin}
\newlength{\FromAddressLeftMargin}
\newlength{\FromAddressHeight}
\newlength{\FromAddressWidth}
\newlength{\ToAddressTopMargin}
\newlength{\ToAddressLeftMargin}
\newlength{\ToAddressWidth}
\DeclareRobustCommand{\SetEnvelope}[3][0pt]{%
  \@envelopetrue%
  \@biglabelfalse%
  \setlength{\EnvelopeTopMargin}{#1}%
  \setlength{\EnvelopeWidth}{#2}%
  \setlength{\EnvelopeHeight}{#3}%
  \setlength{\FromAddressTopMargin}{0.5in}%
  \setlength{\FromAddressLeftMargin}{0.5in}%
  \setlength{\FromAddressHeight}{0.33\EnvelopeHeight}%
  \setlength{\FromAddressWidth}{0.5\EnvelopeWidth}%
  \setlength{\ToAddressTopMargin}{0.5in}%
  \setlength{\ToAddressLeftMargin}{0.5in}%
  \setlength{\ToAddressWidth}{3in}}
\DeclareRobustCommand{\SetLabel}[7]{%
  \@envelopefalse%
  \@biglabelfalse%
  \setlength{\LabelWidth}{#1}%
  \setlength{\LabelHeight}{#2}%
  \setlength{\LabelTopMargin}{#3}%
  \setlength{\LabelLeftMargin}{#4}%
  \setlength{\LabelRightMargin}{#5}%
  \setcounter{LabelMaxCol}{#6}%
  \setcounter{LabelMaxRow}{#7}%
  \setlength{\ToAddressTopMargin}{0.1in}%
  \setlength{\ToAddressLeftMargin}{0.2in}%
  \setlength{\ToAddressWidth}{\LabelWidth}%
  \addtolength{\ToAddressWidth}{-\ToAddressLeftMargin}%
  \addtolength{\ToAddressWidth}{-\LabelRightMargin}}
\DeclareRobustCommand{\SetBigLabel}[7]{%
  \@envelopefalse%
  \@biglabeltrue%
  \setlength{\LabelWidth}{#1}%
  \setlength{\LabelHeight}{#2}%
  \setlength{\LabelTopMargin}{#3}%
  \setlength{\LabelLeftMargin}{#4}%
  \setlength{\LabelRightMargin}{#5}%
  \setcounter{LabelMaxCol}{#6}%
  \setcounter{LabelMaxRow}{#7}%
  \setlength{\FromAddressTopMargin}{0.0in}%
  \setlength{\FromAddressLeftMargin}{0.5in}%
  \setlength{\FromAddressHeight}{0.33\LabelHeight}%
  \setlength{\ToAddressTopMargin}{0.1in}%
  \setlength{\ToAddressLeftMargin}{0.5in}%
  \setlength{\ToAddressWidth}{\LabelWidth}%
  \addtolength{\ToAddressWidth}{-\ToAddressLeftMargin}%
  \addtolength{\ToAddressWidth}{-\LabelRightMargin}%
  \setlength{\FromAddressWidth}{\ToAddressWidth}}
\DeclareOption{businessenvelope}{\SetEnvelope{9.5in}{4.125in}%
  \PSEnvelopeTray={/com10envelopetray }}
\DeclareOption{executiveenvelope}{\SetEnvelope{7.5in}{3.875in}%
  \PSEnvelopeTray={/monarcenvelopetray }}
\DeclareOption{bookletenvelope}{\SetEnvelope{10.5in}{7.5in}}
\DeclareOption{personalenvelope}{\SetEnvelope{6.5in}{3.625in}}
\DeclareOption{c6envelope}{\SetEnvelope{162mm}{114mm}}
\DeclareOption{c65envelope}{\SetEnvelope{224mm}{114mm}}
\DeclareOption{c5envelope}{\SetEnvelope{229mm}{162mm}%
  \PSEnvelopeTray={/162x229cenvelopetray }}
\DeclareOption{dlenvelope}{\SetEnvelope{220mm}{110mm}%
  \PSEnvelopeTray={/dlenvelopetray }}
\DeclareOption{avery5160label}{%
  \SetLabel{2.75in}{1in}{0.5in}{0.19in}{0.12in}{3}{10}}
\DeclareOption{avery5161label}{%
  \SetLabel{4.19in}{1in}{0.5in}{0.16in}{0.19in}{2}{10}}
\DeclareOption{avery5162label}{%
  \SetLabel{4.19in}{1.33in}{0.83in}{0.16in}{0.19in}{2}{7}}
\DeclareOption{avery5163label}{%
  \SetLabel{4.19in}{2in}{0.5in}{0.16in}{0.19in}{2}{5}}
\DeclareOption{avery5164label}{%
  \SetLabel{4.19in}{3.33in}{0.5in}{0.16in}{0.19in}{2}{3}}
\DeclareOption{herma4625label}{%
  \SetLabel{105mm}{42.3mm}{0mm}{5mm}{5mm}{2}{7}}
\DeclareOption{avery5262label}{%
  \SetLabel{110mm}{34mm}{21mm}{4mm}{5mm}{2}{7}}
\DeclareOption{avery5163biglabel}{%
  \SetBigLabel{4.19in}{2in}{0.5in}{0.16in}{0.19in}{2}{5}%
  \setlength{\ToAddressTopMargin}{0.1in}}%
\DeclareOption{avery5164biglabel}{%
  \SetBigLabel{4.19in}{3.33in}{0.5in}{0.16in}{0.19in}{2}{3}}%
\DeclareOption{rotateenvelopes}{\@rotateenvelopestrue}
\DeclareOption{norotateenvelopes}{\@rotateenvelopesfalse}
\DeclareOption{centerenvelopes}{\@envelopeposition=0\relax}
\DeclareOption{leftenvelopes}{\@envelopeposition=1\relax}
\DeclareOption{rightenvelopes}{\@envelopeposition=2\relax}
\DeclareOption{customenvelopes}{\@envelopeposition=3\relax}
\DeclareOption{printbarcodes}{\@barcodestrue}
\DeclareOption{noprintbarcodes}{\@barcodesfalse\@alwaysbarcodesfalse}
\DeclareOption{alwaysbarcodes}{\@alwaysbarcodestrue\@barcodestrue}
\DeclareOption{noalwaysbarcodes}{\@alwaysbarcodesfalse}
\DeclareOption{capaddress}{\@capitalizeaddresstrue}
\DeclareOption{nocapaddress}{\@capitalizeaddressfalse}
\DeclareOption{printreturnaddress}{\@printreturnaddresstrue}
\DeclareOption{noprintreturnaddress}{\@printreturnaddressfalse}
\DeclareOption{pswait}{\@pswaittrue\@psautotrayfalse}
\DeclareOption{nopswait}{\@pswaitfalse}
\DeclareOption{psautotray}{\@psautotraytrue\@pswaitfalse}
\DeclareOption{nopsautotray}{\@psautotrayfalse}
\DeclareOption{re}{\@EL@redefine@openingtrue}
\DeclareOption{nore}{\@EL@redefine@openingfalse}
\DeclareOption*{\PassOptionsToPackage{\CurrentOption}{graphics}}
\ExecuteOptions{businessenvelope,rotateenvelopes,centerenvelopes}
\ExecuteOptions{printbarcodes,capaddress}
\ExecuteOptions{nopswait,printreturnaddress,nopsautotray,nore}
\InputIfFileExists{envlab.cfg}{%
  \typeout{Loading configuration file envlab.cfg}}{%
  \typeout{Configuration file envlab.cfg is not found}}
\ProcessOptions
\IfFileExists{graphics.sty}{%
  \RequirePackage{graphics}}{%
  \PackageWarning{envlab}{%
    You don't have the graphics package!\MessageBreak
    Probably you will not be able to print\MessageBreak
    envelopes sidewise. \MessageBreak}}
\def\@beginlabelshook{\relax}
\def\@beginlabelpagehook{\relax}
\def\AtBeginLabels{\g@addto@macro\@beginlabelshook}
\def\AtBeginLabelPage{\g@addto@macro\@beginlabelpagehook}
\def\PSwait{\special{ps: clear grestore @manualfeed 0 0 bop}}
\edef\PSautotray{%
  \special{ps:clear grestore
    statusdict begin false setduplexmode
    /manualfeed true def
    \the\PSEnvelopeTray end 0 0 bop }}
\if@pswait
  \AtBeginLabels{\PSwait}%
\else
  \if@psautotray
    \AtBeginLabels{\PSautotray}%
  \fi
\fi
\newcounter{LabelCountCol}
\newcounter{LabelCountRow}
\newcounter{LabelOffsetCol}
\newcounter{LabelOffsetRow}
\setcounter{LabelOffsetCol}{1}
\setcounter{LabelOffsetRow}{1}
\DeclareRobustCommand{\FirstLabel}[2]{%
  \setcounter{LabelOffsetRow}{#1}%
  \setcounter{LabelOffsetCol}{#2}}
\def\@toaddressfont{%
  \ifcase\@ptsize \large\or\normalsize\or\small\fi%
  \sffamily\selectfont}
\def\@fromaddressfont{%
  \ifcase\@ptsize \normalsize\or\small\or\footnotesize\fi%
  \normalfont}
\def\returnaddress{\fromaddress}
\def\startlabels{%
  \clearpage%
  \pagestyle{empty}%
  \setlength{\topmargin}{-1.0in}%
  \if@envelope%
    \addtolength{\topmargin}{\EnvelopeTopMargin}%
    \else \addtolength{\topmargin}{\LabelTopMargin}%
  \fi%
  \setlength{\headheight}{0pt}%
  \setlength{\headsep}{0pt}%
  \setlength{\footskip}{0pt}%
  \setlength{\textheight}{200in}%
  \setlength\paperheight{\textheight}%
  \global\vsize=200in\relax%
  \addtolength{\textheight}{-\topmargin}%
  \addtolength{\textheight}{-1.0in}%
  \setlength{\oddsidemargin}{-1.0in}%
  \if@envelope\relax%
  \else%
     \addtolength{\oddsidemargin}{\LabelLeftMargin}%
  \fi%
  \setlength{\evensidemargin}{\oddsidemargin}%
  \setlength{\textwidth}{20in}%
  \hsize=20in%
  \baselineskip=0pt%
  \lineskip=0pt%
  \parindent=0pt%
  \if@envelope
    \ifcase\the\@envelopeposition%
      \setlength{\EnvelopeLeftMargin}{\paperwidth}%
      \if@rotateenvelopes%
        \addtolength{\EnvelopeLeftMargin}{-\EnvelopeHeight}%
      \else%
        \addtolength{\EnvelopeLeftMargin}{-\EnvelopeWidth}%
      \fi%
      \setlength{\EnvelopeLeftMargin}{0.5\EnvelopeLeftMargin}%
    \or%
      \setlength{\EnvelopeLeftMargin}{0pt}%
    \or%
      \setlength{\EnvelopeLeftMargin}{\paperwidth}%
      \if@rotateenvelopes%
        \addtolength{\EnvelopeLeftMargin}{-\EnvelopeHeight}%
      \else%
        \addtolength{\EnvelopeLeftMargin}{-\EnvelopeWidth}%
      \fi%
    \else%
      \relax%
    \fi%
  \else%
    \setcounter{LabelCountCol}{\theLabelOffsetCol}%
    \setcounter{LabelCountRow}{\theLabelOffsetRow}%
    \ifnum\theLabelOffsetRow>1%
      \null%
      \loop \vspace*{\LabelHeight}%
        \addtocounter{LabelOffsetRow}{-1} \ifnum\theLabelOffsetRow>1%
      \repeat%
    \fi%
    \ifnum\theLabelOffsetCol>1%
      \loop \hspace*{\LabelWidth}\nolinebreak%
        \addtocounter{LabelOffsetCol}{-1} \ifnum\theLabelOffsetCol>1%
      \repeat%
    \fi%
    \nopagebreak%
  \fi%
  \spaceskip0pt\relax%
  \xspaceskip 0pt\relax%
  \clubpenalty=0%
  \widowpenalty=0%
  \raggedbottom%
  \sloppy%
  \setlength\hfuzz{5in}%
  \setlength\vfuzz{5in}%
  \ignorespaces%
  \@beginlabelshook%
  \@beginlabelpagehook%
  \nopagebreak}%
\newcommand{\PrintReturnAddress}[1]{%
  \vspace*{\FromAddressTopMargin}
  \null\hspace{\FromAddressLeftMargin}
  \parbox[t][\FromAddressHeight]{\FromAddressWidth}%
    {\@fromaddressfont \lineskip=1pt
      \if@printreturnaddress #1\else\relax\fi}}
\newcommand{\PrintAddress}[1]{%
  \vspace*{\ToAddressTopMargin}
  \leavevmode
  \null\hspace*{\ToAddressLeftMargin}
  \parbox[t]{\ToAddressWidth}{%
    \lineskip=1pt
    \if@barcodes \PrintBarCode{#1} \fi
    \@toaddressfont
    \if@capitalizeaddress \@make@capitalize{#1} \else #1 \fi}}
\newcommand{\PrintLabel}[1]{%
  \parbox[t][\LabelHeight]{\LabelWidth}{%
    \PrintAddress{#1}}}
\newcommand{\PrintBigLabel}[2]{%
  \begin{minipage}[t][\LabelHeight]{\LabelWidth}%
    \baselineskip=0pt%
    \lineskip=0pt%
    \parindent=0pt%
    \begin{center}%
      \PrintReturnAddress{#1}\\%
      \rule{\ToAddressWidth}{0.1pt}%
      \PrintAddress{#2}%
    \end{center}%
  \end{minipage}}
\newcommand{\PrintEnvelope}[2]{%
  \begin{minipage}[t][\EnvelopeHeight]{\EnvelopeWidth}%
    \baselineskip=0pt%
    \lineskip=0pt%
    \parindent=0pt%
    \PrintReturnAddress{#1}\\%
    \begin{center}%
      \PrintAddress{#2}%
    \end{center}%
  \end{minipage}}
\newcommand{\@PrintEnvelope}[2]{%
  \if@rotateenvelopes\rotatebox{90}{\PrintEnvelope{#1}{#2}}%
  \else\PrintEnvelope{#1}{#2}%
  \fi}
\renewcommand{\mlabel}[2]{\ignorespaces%
  \spaceskip 0pt\relax%
  \xspaceskip 0pt\relax%
  \if@envelope%
    \leavevmode%
    \hspace*{\EnvelopeLeftMargin}%
    \@PrintEnvelope{#1}{#2}%
    \clearpage%
    \@beginlabelpagehook%
  \else%
    \ignorespaces%
    \ifnum\theLabelCountCol>\theLabelMaxCol%
      \\\nopagebreak%
      \stepcounter{LabelCountRow}%
      \setcounter{LabelCountCol}{1}%
    \fi%
    \ifnum\theLabelCountRow>\theLabelMaxRow%
      \vfill\eject\@beginlabelpagehook%
      \setcounter{LabelCountRow}{1}%
      \setcounter{LabelCountCol}{1}%
    \fi%
    \if@biglabel%
        \PrintBigLabel{#1}{#2}%
    \else%
        \PrintLabel{#2}%
    \fi%
    \ignorespaces\nolinebreak%
    \stepcounter{LabelCountCol}%
  \fi}%
\newcount\@numreturnlabels
\newcommand{\printreturnlabels}[2]{%
  \@numreturnlabels=#1
  \def\@toaddressfont{\@fromaddressfont}
  \@capitalizeaddressfalse
  \@barcodesfalse
  \startlabels
  \loop \mlabel{\relax}{#2} \advance\@numreturnlabels by -1
    \ifnum\@numreturnlabels>0\repeat}
\newcommand{\PrintBarCode}[1]{%
  \@extractbarcode{#1}
  \@printbarcode}
\newtoks\@zipcode
\newcount\@zipcodesum
\newif\if@zipcodefound
\long\def\@finishzipcode#1{}
\long\def\@firstzipcode#1{%
  \@zipcode{#1}
  \@zipcodesum=#1\relax
  \@zipcodefoundtrue
  \@zipcodeloop}
\long\def\@continuezipcode#1{%
  \@zipcode=\expandafter{\the\@zipcode#1}
  \advance\@zipcodesum by #1
  \@zipcodeloop}
\long\def\@dashzipcode#1{\@zipcodeloop}
\def\@spacezipcode{%
  \@zipcodefoundfalse
  \afterassignment\@zipcodeloop\let\EL@temp= }
\long\def\@abortzipcode#1{%
  \@zipcodefoundfalse
  \@zipcodeloop}
\def\@zipcodeloop{\futurelet\EL@temp\@zipcodeloop@}
\def\@zipcodeloop@{%
  \ifx \@endaddress\EL@temp      \def\EL@tempa{\@finishzipcode}    \else
  \ifx 0\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 1\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 2\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 3\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 4\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 5\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 6\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 7\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 8\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx 9\EL@temp \if@zipcodefound \def\EL@tempa{\@continuezipcode}
               \else           \def\EL@tempa{\@firstzipcode} \fi \else
  \ifx -\EL@temp \if@zipcodefound \def\EL@tempa{\@dashzipcode}
               \else           \def\EL@tempa{\@abortzipcode} \fi \else
  \ifx \@sptoken\EL@temp         \def\EL@tempa{\@spacezipcode}     \else
                               \def\EL@tempa{\@abortzipcode}
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
  \EL@tempa}
\long\def\@extractbarcode#1{%
  \@zipcodefoundfalse
  \@zipcodeloop#1\@endaddress
  \if@alwaysbarcodes \@zipcodefoundtrue \fi
  \if@zipcodefound
    \ifnum\the\@zipcodesum>0
      \loop \advance \@zipcodesum by -10 \ifnum\the\@zipcodesum>0
      \repeat
    \fi
    \multiply\@zipcodesum by -1
  \fi}
\newlength{\@barcodewidth}
\newlength{\@barcodeLheight}
\newlength{\@barcodeSheight}
\newlength{\@barcodeskip}
\setlength{\@barcodewidth}{0.020in}
\setlength{\@barcodeLheight}{0.125in}
\setlength{\@barcodeSheight}{0.050in}
\setlength{\@barcodeskip}{0.026in}
\DeclareRobustCommand{\@barL}{%
  \rule{\@barcodewidth}{\@barcodeLheight}\hspace{\@barcodeskip}}
\DeclareRobustCommand{\@barS}{%
  \rule{\@barcodewidth}{\@barcodeSheight}\hspace{\@barcodeskip}}
\def\@printonezip#1{%
  \ifx1#1\@barS\@barS\@barS\@barL\@barL\else
  \ifx2#1\@barS\@barS\@barL\@barS\@barL\else
  \ifx3#1\@barS\@barS\@barL\@barL\@barS\else
  \ifx4#1\@barS\@barL\@barS\@barS\@barL\else
  \ifx5#1\@barS\@barL\@barS\@barL\@barS\else
  \ifx6#1\@barS\@barL\@barL\@barS\@barS\else
  \ifx7#1\@barL\@barS\@barS\@barS\@barL\else
  \ifx8#1\@barL\@barS\@barS\@barL\@barS\else
  \ifx9#1\@barL\@barS\@barL\@barS\@barS\else
  \ifx0#1\@barL\@barL\@barS\@barS\@barS\else
  \ifx S#1\def\EL@tempa{\relax}%
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
  \EL@tempa}
\def\@printbarcode{%
  \if@zipcodefound
   \mbox{%
    \@barL%
    \def\EL@tempa{\@printonezip}%
    \expandafter\EL@tempa\the\@zipcode S%
    \def\EL@tempa{\@printonezip}%
    \expandafter\EL@tempa\the\@zipcodesum S%
    \@barL}
    \\[1ex]
  \fi}
\newtoks\@addr@cap
\long\def\@finishaddrcap#1{}
\long\def\@dotcommaaddrcap#1{%
  \@addrcaploop}
\long\def\@newlineaddrcap#1{%
  \@addr@cap=\expandafter{\the\@addr@cap #1}
  \@addrcaploop}
\long\def\@bgroupaddrcap#1{%
  \@addr@cap=\expandafter{\the\@addr@cap {\MakeUppercase{#1}}}
  \@addrcaploop}
\def\@spaceaddrcap{%
  \@addr@cap=\expandafter{\the\@addr@cap\hspace{0.6em}}
  \afterassignment\@addrcaploop\let\EL@temp= }
\def\@otheraddrcap#1{%
  \@addr@cap=\expandafter{\the\@addr@cap%
     \MakeUppercase{#1}\kern1pt\relax}
  \@addrcaploop}
\def\@addrcaploop{\futurelet\EL@temp\@addrcaploop@}
\def\@addrcaploop@{%
  \ifx \@endaddress\EL@temp      \def\EL@tempa{\@finishaddrcap}    \else
  \ifx .\EL@temp                 \def\EL@tempa{\@dotcommaaddrcap}  \else
  \ifx ,\EL@temp                 \def\EL@tempa{\@dotcommaaddrcap}  \else
  \ifx \voidb@x\EL@temp          \def\EL@tempa{\@dotcommaaddrcap}  \else
  \ifx \unhbox\EL@temp            \def\EL@tempa{\@dotcommaaddrcap} \else
  \ifx \\\EL@temp                \def\EL@tempa{\@newlineaddrcap}   \else
  \ifx \bgroup\EL@temp           \def\EL@tempa{\@bgroupaddrcap}    \else
  \ifx \@sptoken\EL@temp         \def\EL@tempa{\@spaceaddrcap}     \else
                               \def\EL@tempa{\@otheraddrcap}
  \fi\fi\fi\fi\fi\fi\fi\fi
  \EL@tempa}
\long\def\@make@capitalize#1{%
  \@addr@cap={\relax}
  \@addrcaploop#1\@endaddress
  \the\@addr@cap}
\let\@@mlabel=\@gobbletwo
\AtEndDocument{\let\@@mlabel=\@mlabel}
\def\suppresslabels{\if@filesw\immediate\write\@auxout{%
  \string\@suppresslabels}\fi}
\def\@suppresslabels{\let\@mlabel=\@gobbletwo}
\def\resumelabels{\if@filesw\immediate\write\@auxout{%
  \string\@resumelabels}\fi}
\def\@resumelabels{\let\@mlabel=\@@mlabel}
\def\suppressonelabel{\if@filesw\immediate\write\@auxout{%
  \string\@suppressonelabel}\fi}
\def\@suppressonelabel{\let\@old@mlabel=\@mlabel%
  \def\@mlabel{%
    \let\@mlabel=\@old@mlabel%
    \@gobbletwo}}
\def\printonelabel{\if@filesw\immediate\write\@auxout{%
  \string\@printonelabel}\fi}
\def\@printonelabel{\let\@old@mlabel=\@mlabel%
  \def\@mlabel{%
    \let\@mlabel=\@old@mlabel%
    \@@mlabel}}
\def\ChangeEnvelope{\@ifstar{\@ChangeEnvelopeStar}{\@ChangeEnvelope}}
\newcommand\@ChangeEnvelopeStar[3][0pt]{%
  \if@filesw\immediate\write\@auxout{%
       \string\@SetEnvelope[#1]{#2}{#3}}%
   \fi}
\newcommand\@ChangeEnvelope[3][0pt]{%
  \if@filesw\immediate\write\@auxout{%
       \string\@SetEnvelope[#1]{#2}{#3}}
     \immediate\write\@auxout{\string\@startlabels}
  \fi}
\def\@SetEnvelope[#1]#2#3{}
\AtEndDocument{\let\@SetEnvelope=\SetEnvelope}
\def\ChangeLabel{\@ifstar{\@ChangeLabelStar}{\@ChangeLabel}}
\newcommand\@ChangeLabelStar[7]{%
  \if@filesw\immediate\write\@auxout{%
       \string\@SetLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
   \fi}
\newcommand\@ChangeLabel[7]{%
  \if@filesw\immediate\write\@auxout{%
       \string\@SetLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
     \immediate\write\@auxout{\string\@startlabels}
  \fi}
\def\@SetLabel#1#2#3#4#5#6#7{}
\AtEndDocument{\let\@SetLabel=\SetLabel}
\def\ChangeBigLabel{\@ifstar{\@ChangeBigLabelStar}{\@ChangeBigLabel}}
\newcommand\@ChangeBigLabelStar[7]{%
  \if@filesw\immediate\write\@auxout{%
       \string\@SetBigLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}%
   \fi}
\newcommand\@ChangeBigLabel[7]{%
  \if@filesw\immediate\write\@auxout{%
       \string\@SetBigLabel{#1}{#2}{#3}{#4}{#5}{#6}{#7}}
     \immediate\write\@auxout{\string\@startlabels}
  \fi}
\def\@SetBigLabel#1#2#3#4#5#6#7{}
\AtEndDocument{\let\@SetBigLabel=\SetBigLabel}
\if@EL@redefine@opening
  \newcommand*{\re}[1]{\def\recontents{#1}}%
  \def\ReName{Re: }%
  \renewcommand*{\opening}[1]{\ifx\@empty\fromaddress
    \thispagestyle{firstpage}%
      {\raggedleft\@date\par}%
    \else  % home address
      \thispagestyle{empty}%
      {\raggedleft\begin{tabular}{l}\ignorespaces
          \fromaddress \\*[2\parskip]%
          \@date \end{tabular}\par}%
    \fi
    \vspace{2\parskip}%
    {\raggedright \toname \\ \toaddress \par}%
    \ifx\@empty\recontents\relax
    \else
       {\raggedright \ReName \recontents \par}%
    \fi
    \vspace{2\parskip}%
    #1\par\nobreak}%
\fi
\endinput
%%
%% End of file `envlab.sty'.
