Oscar Rondon added file main/natbib.sty  about 9 years ago

Commit id: aa1c389631c8bc41e824129977cadb331d0eef21

deletions | additions      

         

%%  %% This is file `natbib.sty',  %% generated with the docstrip utility.  %%  %% The original source files were:  %%  %% natbib.dtx (with options: `package,all')  %% =============================================  %% IMPORTANT NOTICE:  %%   %% This program can be redistributed and/or modified under the terms  %% of the LaTeX Project Public License Distributed from CTAN  %% archives in directory macros/latex/base/lppl.txt; either  %% version 1 of the License, or any later version.  %%   %% This is a generated file.  %% It may not be distributed without the original source file natbib.dtx.  %%   %% Full documentation can be obtained by LaTeXing that original file.  %% Only a few abbreviated comments remain here to describe the usage.  %% =============================================  %% Copyright 1993-2010 Patrick W Daly  %% Max-Planck-Institut f\"ur Sonnensystemforschung  %% Max-Planck-Str. 2  %% D-37191 Katlenburg-Lindau  %% Germany  %% E-mail: [email protected]  \NeedsTeXFormat{LaTeX2e}[1995/06/01]  \ProvidesPackage{natbib}  [2010/09/13 8.31b (PWD, AO)]  % This package reimplements the LaTeX \cite command to be used for various  % citation styles, both author-year and numerical. It accepts BibTeX  % output intended for many other packages, and therefore acts as a  % general, all-purpose citation-style interface.  %  % With standard numerical .bst files, only numerical citations are  % possible. With an author-year .bst file, both numerical and  % author-year citations are possible.  %  % If author-year citations are selected, \bibitem must have one of the  % following forms:  % \bibitem[Jones et al.(1990)]{key}...  % \bibitem[Jones et al.(1990)Jones, Baker, and Williams]{key}...  % \bibitem[Jones et al., 1990]{key}...  % \bibitem[\protect\citeauthoryear{Jones, Baker, and Williams}{Jones  % et al.}{1990}]{key}...  % \bibitem[\protect\citeauthoryear{Jones et al.}{1990}]{key}...  % \bibitem[\protect\astroncite{Jones et al.}{1990}]{key}...  % \bibitem[\protect\citename{Jones et al., }1990]{key}...  % \harvarditem[Jones et al.]{Jones, Baker, and Williams}{1990}{key}...  %  % This is either to be made up manually, or to be generated by an  % appropriate .bst file with BibTeX.  % Author-year mode || Numerical mode  % Then, \citet{key} ==>> Jones et al. (1990) || Jones et al. [21]  % \citep{key} ==>> (Jones et al., 1990) || [21]  % Multiple citations as normal:  % \citep{key1,key2} ==>> (Jones et al., 1990; Smith, 1989) || [21,24]  % or (Jones et al., 1990, 1991) || [21,24]  % or (Jones et al., 1990a,b) || [21,24]  % \cite{key} is the equivalent of \citet{key} in author-year mode  % and of \citep{key} in numerical mode  % Full author lists may be forced with \citet* or \citep*, e.g.  % \citep*{key} ==>> (Jones, Baker, and Williams, 1990)  % Optional notes as:  % \citep[chap. 2]{key} ==>> (Jones et al., 1990, chap. 2)  % \citep[e.g.,][]{key} ==>> (e.g., Jones et al., 1990)  % \citep[see][pg. 34]{key}==>> (see Jones et al., 1990, pg. 34)  % (Note: in standard LaTeX, only one note is allowed, after the ref.  % Here, one note is like the standard, two make pre- and post-notes.)  % \citealt{key} ==>> Jones et al. 1990  % \citealt*{key} ==>> Jones, Baker, and Williams 1990  % \citealp{key} ==>> Jones et al., 1990  % \citealp*{key} ==>> Jones, Baker, and Williams, 1990  % Additional citation possibilities (both author-year and numerical modes)  % \citeauthor{key} ==>> Jones et al.  % \citeauthor*{key} ==>> Jones, Baker, and Williams  % \citeyear{key} ==>> 1990  % \citeyearpar{key} ==>> (1990)  % \citetext{priv. comm.} ==>> (priv. comm.)  % \citenum{key} ==>> 11 [non-superscripted]  % Note: full author lists depends on whether the bib style supports them;  % if not, the abbreviated list is printed even when full requested.  %  % For names like della Robbia at the start of a sentence, use  % \Citet{dRob98} ==>> Della Robbia (1998)  % \Citep{dRob98} ==>> (Della Robbia, 1998)  % \Citeauthor{dRob98} ==>> Della Robbia  %  %  % Citation aliasing is achieved with  % \defcitealias{key}{text}  % \citetalias{key} ==>> text  % \citepalias{key} ==>> (text)  %  % Defining the citation mode and punctual (citation style)  % \setcitestyle{  % as the package options>}  % Example: \setcitestyle{square,semicolon}  % Alternatively:  % Use \bibpunct with 6 mandatory arguments:  % 1. opening bracket for citation  % 2. closing bracket  % 3. citation separator (for multiple citations in one \cite)  % 4. the letter n for numerical styles, s for superscripts  % else anything for author-year  % 5. punctuation between authors and date  % 6. punctuation between years (or numbers) when common authors missing  % One optional argument is the character coming before post-notes. It  % appears in square braces before all other arguments. May be left off.  % Example (and default) \bibpunct[, ]{(}{)}{;}{a}{,}{,}  %  % To make this automatic for a given bib style, named newbib, say, make  % a local configuration file, natbib.cfg, with the definition  % \newcommand{\bibstyle@newbib}{\bibpunct...}  % Then the \bibliographystyle{newbib} will cause \bibstyle@newbib to  % be called on THE NEXT LATEX RUN (via the aux file).  %  % Such preprogrammed definitions may be invoked anywhere in the text  % by calling \citestyle{newbib}. This is only useful if the style specified  % differs from that in \bibliographystyle.  %  % With \citeindextrue and \citeindexfalse, one can control whether the  % \cite commands make an automatic entry of the citation in the .idx  % indexing file. For this, \makeindex must also be given in the preamble.  %  % Package Options: (for selecting punctuation)  % round - round parentheses are used (default)  % square - square brackets are used [option]  % curly - curly braces are used {option}  % angle - angle brackets are used   % semicolon - multiple citations separated by semi-colon (default)  % colon - same as semicolon, an earlier confusion  % comma - separated by comma  % authoryear - selects author-year citations (default)  % numbers- selects numerical citations  % super - numerical citations as superscripts  % sort - sorts multiple citations according to order in ref. list  % sort&compress - like sort, but also compresses numerical citations  % compress - compresses without sorting  % longnamesfirst - makes first citation full author list  % sectionbib - puts bibliography in a \section* instead of \chapter*  % merge - allows the citation key to have a * prefix,  % signifying to merge its reference with that of the previous citation.  % elide - if references are merged, repeated portions of later ones may be removed.  % mcite - recognizes and ignores the * prefix for merging.  % Punctuation so selected dominates over any predefined ones.  % Package options are called as, e.g.  % \usepackage[square,comma]{natbib}  % LaTeX the source file natbib.dtx to obtain more details  % or the file natnotes.tex for a brief reference sheet.  %-----------------------------------------------------------  \providecommand\@ifxundefined[1]{%  \ifx#1\@undefined\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi  }%  \providecommand\@ifnum[1]{%  \ifnum#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi  }%  \providecommand\@ifx[1]{%  \ifx#1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi  }%  \providecommand\appdef[2]{%  \toks@\expandafter{#1}\@temptokena{#2}%  \edef#1{\the\toks@\the\@temptokena}%  }%  \@ifclassloaded{agu2001}{\PackageError{natbib}  {The agu2001 class already includes natbib coding,\MessageBreak  so you should not add it explicitly}  {Type for now, but then later remove\MessageBreak  the command \protect\usepackage{natbib} from the document}  \endinput}{}  \@ifclassloaded{agutex}{\PackageError{natbib}  {The AGUTeX class already includes natbib coding,\MessageBreak  so you should not add it explicitly}  {Type for now, but then later remove\MessageBreak  the command \protect\usepackage{natbib} from the document}  \endinput}{}  \@ifclassloaded{aguplus}{\PackageError{natbib}  {The aguplus class already includes natbib coding,\MessageBreak  so you should not add it explicitly}  {Type for now, but then later remove\MessageBreak  the command \protect\usepackage{natbib} from the document}  \endinput}{}  \@ifclassloaded{nlinproc}{\PackageError{natbib}  {The nlinproc class already includes natbib coding,\MessageBreak  so you should not add it explicitly}  {Type for now, but then later remove\MessageBreak  the command \protect\usepackage{natbib} from the document}  \endinput}{}  \@ifclassloaded{egs}{\PackageError{natbib}  {The egs class already includes natbib coding,\MessageBreak  so you should not add it explicitly}  {Type for now, but then later remove\MessageBreak  the command \protect\usepackage{natbib} from the document}  \endinput}{}  \@ifclassloaded{egu}{\PackageError{natbib}  {The egu class already includes natbib coding,\MessageBreak  so you should not add it explicitly}  {Type for now, but then later remove\MessageBreak  the command \protect\usepackage{natbib} from the document}  \endinput}{}  % Define citation punctuation for some author-year styles  % One may add and delete at this point  % Or put additions into local configuration file natbib.cfg  \newcommand\bibstyle@chicago{\bibpunct{(}{)}{;}{a}{,}{,}}  \newcommand\bibstyle@named{\bibpunct{[}{]}{;}{a}{,}{,}}  \newcommand\bibstyle@agu{\bibpunct{[}{]}{;}{a}{,}{,~}}%Amer. Geophys. Union  \newcommand\bibstyle@copernicus{\bibpunct{(}{)}{;}{a}{,}{,}}%Copernicus Publications  \let\bibstyle@egu=\bibstyle@copernicus  \let\bibstyle@egs=\bibstyle@copernicus  \newcommand\bibstyle@agsm{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}}  \newcommand\bibstyle@kluwer{\bibpunct{(}{)}{,}{a}{}{,}\gdef\harvardand{\&}}  \newcommand\bibstyle@dcu{\bibpunct{(}{)}{;}{a}{;}{,}\gdef\harvardand{and}}  \newcommand\bibstyle@aa{\bibpunct{(}{)}{;}{a}{}{,}} %Astronomy & Astrophysics  \newcommand\bibstyle@pass{\bibpunct{(}{)}{;}{a}{,}{,}}%Planet. & Space Sci  \newcommand\bibstyle@anngeo{\bibpunct{(}{)}{;}{a}{,}{,}}%Annales Geophysicae  \newcommand\bibstyle@nlinproc{\bibpunct{(}{)}{;}{a}{,}{,}}%Nonlin.Proc.Geophys.  % Define citation punctuation for some numerical styles  \newcommand\bibstyle@cospar{\bibpunct{/}{/}{,}{n}{}{}%  \gdef\bibnumfmt##1{##1.}}  \newcommand\bibstyle@esa{\bibpunct{(Ref.~}{)}{,}{n}{}{}%  \gdef\bibnumfmt##1{##1.\hspace{1em}}}  \newcommand\bibstyle@nature{\bibpunct{}{}{,}{s}{}{\textsuperscript{,}}%  \gdef\bibnumfmt##1{##1.}}  % The standard LaTeX styles  \newcommand\bibstyle@plain{\bibpunct{[}{]}{,}{n}{}{,}}  \let\bibstyle@alpha=\bibstyle@plain  \let\bibstyle@abbrv=\bibstyle@plain  \let\bibstyle@unsrt=\bibstyle@plain  % The author-year modifications of the standard styles  \newcommand\bibstyle@plainnat{\bibpunct{[}{]}{,}{a}{,}{,}}  \let\bibstyle@abbrvnat=\bibstyle@plainnat  \let\bibstyle@unsrtnat=\bibstyle@plainnat  \newif\ifNAT@numbers \NAT@numbersfalse  \newif\ifNAT@super \NAT@superfalse  \let\NAT@merge\z@  \DeclareOption{numbers}{\NAT@numberstrue  \ExecuteOptions{square,comma,nobibstyle}}  \DeclareOption{super}{\NAT@supertrue\NAT@numberstrue  \renewcommand\NAT@open{}\renewcommand\NAT@close{}  \ExecuteOptions{nobibstyle}}  \DeclareOption{authoryear}{\NAT@numbersfalse  \ExecuteOptions{round,semicolon,bibstyle}}  \DeclareOption{round}{%  \renewcommand\NAT@open{(} \renewcommand\NAT@close{)}  \ExecuteOptions{nobibstyle}}  \DeclareOption{square}{%  \renewcommand\NAT@open{[} \renewcommand\NAT@close{]}  \ExecuteOptions{nobibstyle}}  \DeclareOption{angle}{%  \renewcommand\NAT@open{$<$} \renewcommand\NAT@close{$>$}  \ExecuteOptions{nobibstyle}}  \DeclareOption{curly}{%  \renewcommand\NAT@open{\{} \renewcommand\NAT@close{\}}  \ExecuteOptions{nobibstyle}}  \DeclareOption{comma}{\renewcommand\NAT@sep{,}  \ExecuteOptions{nobibstyle}}  \DeclareOption{semicolon}{\renewcommand\NAT@sep{;}  \ExecuteOptions{nobibstyle}}  \DeclareOption{colon}{\ExecuteOptions{semicolon}}  \DeclareOption{nobibstyle}{\let\bibstyle=\@gobble}  \DeclareOption{bibstyle}{\let\bibstyle=\@citestyle}  \newif\ifNAT@openbib \NAT@openbibfalse  \DeclareOption{openbib}{\NAT@openbibtrue}  \DeclareOption{sectionbib}{\def\NAT@sectionbib{on}}  \def\NAT@sort{\z@}  \def\NAT@cmprs{\z@}  \DeclareOption{sort}{\def\NAT@sort{\@ne}}  \DeclareOption{compress}{\def\NAT@cmprs{\@ne}}  \DeclareOption{sort&compress}{\def\NAT@sort{\@ne}\def\NAT@cmprs{\@ne}}  \DeclareOption{mcite}{\let\NAT@merge\@ne}  \DeclareOption{merge}{\@ifnum{\NAT@merge<\tw@}{\let\NAT@merge\tw@}{}}  \DeclareOption{elide}{\@ifnum{\NAT@merge<\thr@@}{\let\NAT@merge\thr@@}{}}  \@ifpackageloaded{cite}{\PackageWarningNoLine{natbib}  {The `cite' package should not be used\MessageBreak  with natbib. Use option `sort' instead}\ExecuteOptions{sort}}{}  \@ifpackageloaded{mcite}{\PackageWarningNoLine{natbib}  {The `mcite' package should not be used\MessageBreak  with natbib. Use option `merge' instead}\ExecuteOptions{merge}}{}  \@ifpackageloaded{citeref}{\PackageError{natbib}  {The `citeref' package must be loaded after natbib}%  {Move \protect\usepackage{citeref} to after \string\usepackage{natbib}}}{}  \newif\ifNAT@longnames\NAT@longnamesfalse  \DeclareOption{longnamesfirst}{\NAT@longnamestrue}  \DeclareOption{nonamebreak}{\def\NAT@nmfmt#1{\mbox{\NAT@up#1}}}  \def\NAT@nmfmt#1{{\NAT@up#1}}  \renewcommand\bibstyle[1]{\csname bibstyle@#1\endcsname}  \AtBeginDocument{\global\let\bibstyle=\@gobble}  \let\@citestyle\bibstyle  \newcommand\citestyle[1]{\@citestyle{#1}\let\bibstyle\@gobble}  \newcommand\bibpunct[7][, ]%  {\gdef\NAT@open{#2}\gdef\NAT@close{#3}\gdef  \NAT@sep{#4}\global\NAT@numbersfalse  \ifx #5n\global\NAT@numberstrue\global\NAT@superfalse  \else  \ifx #5s\global\NAT@numberstrue\global\NAT@supertrue  \fi\fi  \gdef\NAT@aysep{#6}\gdef\NAT@yrsep{#7}%  \gdef\NAT@cmt{#1}%  \NAT@@setcites  }  \newcommand\setcitestyle[1]{  \@for\@tempa:=#1\do  {\def\@tempb{round}\ifx\@tempa\@tempb  \renewcommand\NAT@open{(}\renewcommand\NAT@close{)}\fi  \def\@tempb{square}\ifx\@tempa\@tempb  \renewcommand\NAT@open{[}\renewcommand\NAT@close{]}\fi  \def\@tempb{angle}\ifx\@tempa\@tempb  \renewcommand\NAT@open{$<$}\renewcommand\NAT@close{$>$}\fi  \def\@tempb{curly}\ifx\@tempa\@tempb  \renewcommand\NAT@open{\{}\renewcommand\NAT@close{\}}\fi  \def\@tempb{semicolon}\ifx\@tempa\@tempb  \renewcommand\NAT@sep{;}\fi  \def\@tempb{colon}\ifx\@tempa\@tempb  \renewcommand\NAT@sep{;}\fi  \def\@tempb{comma}\ifx\@tempa\@tempb  \renewcommand\NAT@sep{,}\fi  \def\@tempb{authoryear}\ifx\@tempa\@tempb  \NAT@numbersfalse\fi  \def\@tempb{numbers}\ifx\@tempa\@tempb  \NAT@numberstrue\NAT@superfalse\fi  \def\@tempb{super}\ifx\@tempa\@tempb  \NAT@numberstrue\NAT@supertrue\fi  \expandafter\NAT@find@eq\@tempa=\relax\@nil  \if\@tempc\relax\else  \expandafter\NAT@rem@eq\@tempc  \def\@tempb{open}\ifx\@tempa\@tempb  \xdef\NAT@open{\@tempc}\fi  \def\@tempb{close}\ifx\@tempa\@tempb  \xdef\NAT@close{\@tempc}\fi  \def\@tempb{aysep}\ifx\@tempa\@tempb  \xdef\NAT@aysep{\@tempc}\fi  \def\@tempb{yysep}\ifx\@tempa\@tempb  \xdef\NAT@yrsep{\@tempc}\fi  \def\@tempb{notesep}\ifx\@tempa\@tempb  \xdef\NAT@cmt{\@tempc}\fi  \def\@tempb{citesep}\ifx\@tempa\@tempb  \xdef\NAT@sep{\@tempc}\fi  \fi  }%  \NAT@@setcites  }  \def\NAT@find@eq#1=#2\@nil{\def\@tempa{#1}\def\@tempc{#2}}  \def\NAT@rem@eq#1={\def\@tempc{#1}}  \def\NAT@@setcites{\global\let\bibstyle\@gobble}  \AtBeginDocument{\let\NAT@@setcites\NAT@set@cites}  \newcommand\NAT@open{(} \newcommand\NAT@close{)}  \newcommand\NAT@sep{;}  \ProcessOptions  \newcommand\NAT@aysep{,} \newcommand\NAT@yrsep{,}  \newcommand\NAT@cmt{, }  \newcommand\NAT@cite%  [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi  #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}  \newcommand\NAT@citenum%  [3]{\ifNAT@swa\NAT@@open\if*#2*\else#2\NAT@spacechar\fi  #1\if*#3*\else\NAT@cmt#3\fi\NAT@@close\else#1\fi\endgroup}  \newcommand\NAT@citesuper[3]{\ifNAT@swa  \if*#2*\else#2\NAT@spacechar\fi  \unskip\kern\p@\textsuperscript{\NAT@@open#1\NAT@@close}%  \if*#3*\else\NAT@spacechar#3\fi\else #1\fi\endgroup}  \providecommand\textsuperscript[1]{\mbox{$^{\mbox{\scriptsize#1}}$}}  \begingroup \catcode`\_=8  \gdef\NAT@ifcat@num#1{%  \ifcat_\ifnum\z@<0#1_\else A\fi  \expandafter\@firstoftwo  \else  \expandafter\@secondoftwo  \fi  }%  \endgroup  \providecommand\@firstofone[1]{#1}  \newcommand\NAT@citexnum{}  \def\NAT@citexnum[#1][#2]#3{%  \NAT@reset@parser  \NAT@sort@cites{#3}%  \NAT@reset@citea  \@cite{\def\NAT@num{-1}\let\NAT@last@yr\relax\let\NAT@nm\@empty  \@for\@citeb:=\NAT@cite@list\do  {\@safe@activestrue  \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%  \@safe@activesfalse  \@ifundefined{b@\@citeb\@extra@b@citeb}{%  {\reset@font\bfseries?}  \NAT@citeundefined\PackageWarning{natbib}%  {Citation `\@citeb' on page \thepage \space undefined}}%  {\let\NAT@last@num\NAT@num\let\NAT@last@nm\NAT@nm  \NAT@parse{\@citeb}%  \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%  \let\NAT@name=\NAT@all@names  \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%  \fi  \ifNAT@full\let\NAT@nm\NAT@all@names\else  \let\NAT@nm\NAT@name\fi  \ifNAT@swa  \@ifnum{\NAT@ctype>\@ne}{%  \@citea  \NAT@hyper@{\@ifnum{\NAT@ctype=\tw@}{\NAT@test{\NAT@ctype}}{\NAT@alias}}%  }{%  \@ifnum{\NAT@cmprs>\z@}{%  \NAT@ifcat@num\NAT@num  {\let\NAT@nm=\NAT@num}%  {\def\NAT@nm{-2}}%  \NAT@ifcat@num\NAT@last@num  {\@tempcnta=\NAT@last@num\relax}%  {\@tempcnta\m@ne}%  \@ifnum{\NAT@nm=\@tempcnta}{%  \@ifnum{\NAT@merge>\@ne}{}{\NAT@last@yr@mbox}%  }{%  \advance\@tempcnta by\@ne  \@ifnum{\NAT@nm=\@tempcnta}{%  \ifx\NAT@last@yr\relax  \def@NAT@last@yr{\@citea}%  \else  \def@NAT@last@yr{--\NAT@penalty}%  \fi  }{%  \NAT@last@yr@mbox  }%  }%  }{%  \@tempswatrue  \@ifnum{\NAT@merge>\@ne}{\@ifnum{\NAT@last@num=\NAT@num\relax}{\@tempswafalse}{}}{}%  \if@tempswa\NAT@citea@mbox\fi  }%  }%  \NAT@def@citea  \else  \ifcase\NAT@ctype  \ifx\NAT@last@nm\NAT@nm \NAT@yrsep\NAT@penalty\NAT@space\else  \@citea \NAT@test{\@ne}\NAT@spacechar\NAT@mbox{\NAT@super@kern\NAT@@open}%  \fi  \if*#1*\else#1\NAT@spacechar\fi  \NAT@mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}%  \NAT@def@citea@box  \or  \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%  \or  \NAT@hyper@citea@space{\NAT@test{\NAT@ctype}}%  \or  \NAT@hyper@citea@space\NAT@alias  \fi  \fi  }%  }%  \@ifnum{\NAT@cmprs>\z@}{\NAT@last@yr}{}%  \ifNAT@swa\else  \@ifnum{\NAT@ctype=\z@}{%  \if*#2*\else\NAT@cmt#2\fi  }{}%  \NAT@mbox{\NAT@@close}%  \fi  }{#1}{#2}%  }%  \def\NAT@citea@mbox{%  \@citea\mbox{\NAT@hyper@{{\citenumfont{\NAT@num}}}}%  }%  \def\NAT@hyper@#1{%  \hyper@natlinkstart{\@citeb\@extra@b@citeb}#1\hyper@natlinkend  }%  \def\NAT@hyper@citea#1{%  \@citea  \NAT@hyper@{#1}%  \NAT@def@citea  }%  \def\NAT@hyper@citea@space#1{%  \@citea  \NAT@hyper@{#1}%  \NAT@def@citea@space  }%  \def\def@NAT@last@yr#1{%  \protected@edef\NAT@last@yr{%  #1%  \noexpand\mbox{%  \noexpand\hyper@natlinkstart{\@citeb\@extra@b@citeb}%  {\noexpand\citenumfont{\NAT@num}}%  \noexpand\hyper@natlinkend  }%  }%  }%  \def\NAT@last@yr@mbox{%  \NAT@last@yr\let\NAT@last@yr\relax  \NAT@citea@mbox  }%  \newcommand\NAT@test[1]{%  \@ifnum{#1=\@ne}{%  \ifx\NAT@nm\NAT@noname  \begingroup\reset@font\bfseries(author?)\endgroup  \PackageWarning{natbib}{%  Author undefined for citation`\@citeb' \MessageBreak on page \thepage%  }%  \else \NAT@nm  \fi  }{%  \if\relax\NAT@date\relax  \begingroup\reset@font\bfseries(year?)\endgroup  \PackageWarning{natbib}{%  Year undefined for citation`\@citeb' \MessageBreak on page \thepage%  }%  \else \NAT@date  \fi  }%  }%  \let\citenumfont=\@empty  \newcommand\NAT@citex{}  \def\NAT@citex%  [#1][#2]#3{%  \NAT@reset@parser  \NAT@sort@cites{#3}%  \NAT@reset@citea  \@cite{\let\NAT@nm\@empty\let\NAT@year\@empty  \@for\@citeb:=\NAT@cite@list\do  {\@safe@activestrue  \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%  \@safe@activesfalse  \@ifundefined{b@\@citeb\@extra@b@citeb}{\@citea%  {\reset@font\bfseries ?}\NAT@citeundefined  \PackageWarning{natbib}%  {Citation `\@citeb' on page \thepage \space undefined}\def\NAT@date{}}%  {\let\NAT@last@nm=\NAT@nm\let\NAT@last@yr=\NAT@year  \NAT@parse{\@citeb}%  \ifNAT@longnames\@ifundefined{bv@\@citeb\@extra@b@citeb}{%  \let\NAT@name=\NAT@all@names  \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}{}%  \fi  \ifNAT@full\let\NAT@nm\NAT@all@names\else  \let\NAT@nm\NAT@name\fi  \ifNAT@swa\ifcase\NAT@ctype  \if\relax\NAT@date\relax  \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}\NAT@date}%  \else  \ifx\NAT@last@nm\NAT@nm\NAT@yrsep  \ifx\NAT@last@yr\NAT@year  \def\NAT@temp{{?}}%  \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%  {Multiple citation on page \thepage: same authors and  year\MessageBreak without distinguishing extra  letter,\MessageBreak appears as question mark}\fi  \NAT@hyper@{\NAT@exlab}%  \else\unskip\NAT@spacechar  \NAT@hyper@{\NAT@date}%  \fi  \else  \@citea\NAT@hyper@{%  \NAT@nmfmt{\NAT@nm}%  \hyper@natlinkbreak{%  \NAT@aysep\NAT@spacechar}{\@citeb\@extra@b@citeb  }%  \NAT@date  }%  \fi  \fi  \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%  \or\@citea\NAT@hyper@{\NAT@date}%  \or\@citea\NAT@hyper@{\NAT@alias}%  \fi \NAT@def@citea  \else  \ifcase\NAT@ctype  \if\relax\NAT@date\relax  \@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%  \else  \ifx\NAT@last@nm\NAT@nm\NAT@yrsep  \ifx\NAT@last@yr\NAT@year  \def\NAT@temp{{?}}%  \ifx\NAT@temp\NAT@exlab\PackageWarningNoLine{natbib}%  {Multiple citation on page \thepage: same authors and  year\MessageBreak without distinguishing extra  letter,\MessageBreak appears as question mark}\fi  \NAT@hyper@{\NAT@exlab}%  \else  \unskip\NAT@spacechar  \NAT@hyper@{\NAT@date}%  \fi  \else  \@citea\NAT@hyper@{%  \NAT@nmfmt{\NAT@nm}%  \hyper@natlinkbreak{\NAT@spacechar\NAT@@open\if*#1*\else#1\NAT@spacechar\fi}%  {\@citeb\@extra@b@citeb}%  \NAT@date  }%  \fi  \fi  \or\@citea\NAT@hyper@{\NAT@nmfmt{\NAT@nm}}%  \or\@citea\NAT@hyper@{\NAT@date}%  \or\@citea\NAT@hyper@{\NAT@alias}%  \fi  \if\relax\NAT@date\relax  \NAT@def@citea  \else  \NAT@def@citea@close  \fi  \fi  }}\ifNAT@swa\else\if*#2*\else\NAT@cmt#2\fi  \if\relax\NAT@date\relax\else\NAT@@close\fi\fi}{#1}{#2}}  \def\NAT@spacechar{\ }%  \def\NAT@separator{\NAT@sep\NAT@penalty}%  \def\NAT@reset@citea{\c@NAT@ctr\@ne\let\@citea\@empty}%  \def\NAT@def@citea{\def\@citea{\NAT@separator\NAT@space}}%  \def\NAT@def@citea@space{\def\@citea{\NAT@separator\NAT@spacechar}}%  \def\NAT@def@citea@close{\def\@citea{\NAT@@close\NAT@separator\NAT@space}}%  \def\NAT@def@citea@box{\def\@citea{\NAT@mbox{\NAT@@close}\NAT@separator\NAT@spacechar}}%  \newif\ifNAT@par \NAT@partrue  \newcommand\NAT@@open{\ifNAT@par\NAT@open\fi}  \newcommand\NAT@@close{\ifNAT@par\NAT@close\fi}  \newcommand\NAT@alias{\@ifundefined{al@\@citeb\@extra@b@citeb}{%  {\reset@font\bfseries(alias?)}\PackageWarning{natbib}  {Alias undefined for citation `\@citeb'  \MessageBreak on page \thepage}}{\@nameuse{al@\@citeb\@extra@b@citeb}}}  \let\NAT@up\relax  \newcommand\NAT@Up[1]{{\let\protect\@unexpandable@protect\let~\relax  \expandafter\NAT@deftemp#1}\expandafter\NAT@UP\NAT@temp}  \newcommand\NAT@deftemp[1]{\xdef\NAT@temp{#1}}  \newcommand\NAT@UP[1]{\let\@tempa\NAT@UP\ifcat a#1\MakeUppercase{#1}%  \let\@tempa\relax\else#1\fi\@tempa}  \newcommand\shortcites[1]{%  \@bsphack\@for\@citeb:=#1\do  {\@safe@activestrue  \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%  \@safe@activesfalse  \global\@namedef{bv@\@citeb\@extra@b@citeb}{}}\@esphack}  \newcommand\NAT@biblabel[1]{\hfill}  \newcommand\NAT@biblabelnum[1]{\bibnumfmt{#1}}  \let\bibnumfmt\@empty  \providecommand\@biblabel[1]{[#1]}  \AtBeginDocument{\ifx\bibnumfmt\@empty\let\bibnumfmt\@biblabel\fi}  \newcommand\NAT@bibsetnum[1]{\settowidth\labelwidth{\@biblabel{#1}}%  \setlength{\leftmargin}{\labelwidth}\addtolength{\leftmargin}{\labelsep}%  \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}%  \ifNAT@openbib  \addtolength{\leftmargin}{\bibindent}%  \setlength{\itemindent}{-\bibindent}%  \setlength{\listparindent}{\itemindent}%  \setlength{\parsep}{0pt}%  \fi  }  \newlength{\bibhang}  \setlength{\bibhang}{1em}  \newlength{\bibsep}  {\@listi \global\bibsep\itemsep \global\advance\bibsep by\parsep}  \newcommand\NAT@bibsetup%  [1]{\setlength{\leftmargin}{\bibhang}\setlength{\itemindent}{-\leftmargin}%  \setlength{\itemsep}{\bibsep}\setlength{\parsep}{\z@}}  \newcommand\NAT@set@cites{%  \ifNAT@numbers  \ifNAT@super \let\@cite\NAT@citesuper  \def\NAT@mbox##1{\unskip\nobreak\textsuperscript{##1}}%  \let\citeyearpar=\citeyear  \let\NAT@space\relax  \def\NAT@super@kern{\kern\p@}%  \else  \let\NAT@mbox=\mbox  \let\@cite\NAT@citenum  \let\NAT@space\NAT@spacechar  \let\NAT@super@kern\relax  \fi  \let\@citex\NAT@citexnum  \let\@biblabel\NAT@biblabelnum  \let\@bibsetup\NAT@bibsetnum  \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@num\NAT@close}%  \def\natexlab##1{}%  \def\NAT@penalty{\penalty\@m}%  \else  \let\@cite\NAT@cite  \let\@citex\NAT@citex  \let\@biblabel\NAT@biblabel  \let\@bibsetup\NAT@bibsetup  \let\NAT@space\NAT@spacechar  \let\NAT@penalty\@empty  \renewcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}%  \def\natexlab##1{##1}%  \fi}  \AtBeginDocument{\NAT@set@cites}  \AtBeginDocument{\ifx\SK@def\@undefined\else  \ifx\SK@cite\@empty\else  \SK@def\@citex[#1][#2]#3{\SK@\SK@@ref{#3}\SK@@citex[#1][#2]{#3}}\fi  \ifx\SK@citeauthor\@undefined\def\HAR@checkdef{}\else  \let\citeauthor\SK@citeauthor  \let\citefullauthor\SK@citefullauthor  \let\citeyear\SK@citeyear\fi  \fi}  \newif\ifNAT@full\NAT@fullfalse  \newif\ifNAT@swa  \DeclareRobustCommand\citet  {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \newcommand\NAT@citetp{\@ifnextchar[{\NAT@@citetp}{\NAT@@citetp[]}}  \newcommand\NAT@@citetp{}  \def\NAT@@citetp[#1]{\@ifnextchar[{\@citex[#1]}{\@citex[][#1]}}  \DeclareRobustCommand\citep  {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\cite  {\begingroup\let\NAT@ctype\z@\NAT@partrue\NAT@swatrue  \@ifstar{\NAT@fulltrue\NAT@cites}{\NAT@fullfalse\NAT@cites}}  \newcommand\NAT@cites{\@ifnextchar [{\NAT@@citetp}{%  \ifNAT@numbers\else  \NAT@swafalse  \fi  \NAT@@citetp[]}}  \DeclareRobustCommand\citealt  {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@parfalse  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\citealp  {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\citenum  {\begingroup  \NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse\let\textsuperscript\NAT@spacechar  \NAT@citexnum[][]}  \DeclareRobustCommand\citeauthor  {\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@parfalse  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\Citet  {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@partrue  \let\NAT@up\NAT@Up  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\Citep  {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@partrue  \let\NAT@up\NAT@Up  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\Citealt  {\begingroup\NAT@swafalse\let\NAT@ctype\z@\NAT@parfalse  \let\NAT@up\NAT@Up  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\Citealp  {\begingroup\NAT@swatrue\let\NAT@ctype\z@\NAT@parfalse  \let\NAT@up\NAT@Up  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\Citeauthor  {\begingroup\NAT@swafalse\let\NAT@ctype\@ne\NAT@parfalse  \let\NAT@up\NAT@Up  \@ifstar{\NAT@fulltrue\NAT@citetp}{\NAT@fullfalse\NAT@citetp}}  \DeclareRobustCommand\citeyear  {\begingroup\NAT@swafalse\let\NAT@ctype\tw@\NAT@parfalse\NAT@citetp}  \DeclareRobustCommand\citeyearpar  {\begingroup\NAT@swatrue\let\NAT@ctype\tw@\NAT@partrue\NAT@citetp}  \newcommand\citetext[1]{\NAT@open#1\NAT@close}  \DeclareRobustCommand\citefullauthor  {\citeauthor*}  \newcommand\defcitealias[2]{%  \@ifundefined{al@#1\@extra@b@citeb}{}  {\PackageWarning{natbib}{Overwriting existing alias for citation #1}}  \@namedef{al@#1\@extra@b@citeb}{#2}}  \DeclareRobustCommand\citetalias{\begingroup  \NAT@swafalse\let\NAT@ctype\thr@@\NAT@parfalse\NAT@citetp}  \DeclareRobustCommand\citepalias{\begingroup  \NAT@swatrue\let\NAT@ctype\thr@@\NAT@partrue\NAT@citetp}  \renewcommand\nocite[1]{\@bsphack  \@for\@citeb:=#1\do{%  \@safe@activestrue  \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%  \@safe@activesfalse  \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi  \if*\@citeb\else  \@ifundefined{b@\@citeb\@extra@b@citeb}{%  \NAT@citeundefined \PackageWarning{natbib}%  {Citation `\@citeb' undefined}}{}\fi}%  \@esphack}  \newcommand\NAT@parse[1]{%  \begingroup  \let\protect=\@unexpandable@protect  \let~\relax  \let\active@prefix=\@gobble  \edef\NAT@temp{\csname b@#1\@extra@b@citeb\endcsname}%  \aftergroup\NAT@split  \expandafter  \endgroup  \NAT@temp{}{}{}{}{}@@%  \expandafter\NAT@parse@date\NAT@date??????@@%  \ifciteindex\NAT@index\fi  }%  \def\NAT@split#1#2#3#4#5@@{%  \gdef\NAT@num{#1}\gdef\NAT@name{#3}\gdef\NAT@date{#2}%  \gdef\NAT@all@names{#4}%  \ifx\NAT@num\@empty\gdef\NAT@num{0}\fi  \ifx\NAT@noname\NAT@all@names \gdef\NAT@all@names{#3}\fi  }%  \def\NAT@reset@parser{%  \global\let\NAT@num\@empty  \global\let\NAT@name\@empty  \global\let\NAT@date\@empty  \global\let\NAT@all@names\@empty  }%  \newcommand\NAT@parse@date{}  \def\NAT@parse@date#1#2#3#4#5#6@@{%  \ifnum\the\catcode`#1=11\def\NAT@year{}\def\NAT@exlab{#1}\else  \ifnum\the\catcode`#2=11\def\NAT@year{#1}\def\NAT@exlab{#2}\else  \ifnum\the\catcode`#3=11\def\NAT@year{#1#2}\def\NAT@exlab{#3}\else  \ifnum\the\catcode`#4=11\def\NAT@year{#1#2#3}\def\NAT@exlab{#4}\else  \def\NAT@year{#1#2#3#4}\def\NAT@exlab{{#5}}\fi\fi\fi\fi}  \newcommand\NAT@index{}  \let\NAT@makeindex=\makeindex  \renewcommand\makeindex{\NAT@makeindex  \renewcommand\NAT@index{\@bsphack\begingroup  \def~{\string~}\@wrindex{\NAT@idxtxt}}}  \newcommand\NAT@idxtxt{\NAT@name\NAT@spacechar\NAT@open\NAT@date\NAT@close}  \@ifxundefined\@indexfile{}{\let\NAT@makeindex\relax\makeindex}  \newif\ifciteindex \citeindexfalse  \newcommand\citeindextype{default}  \newcommand\NAT@index@alt{{\let\protect=\noexpand\let~\relax  \xdef\NAT@temp{\NAT@idxtxt}}\expandafter\NAT@exp\NAT@temp\@nil}  \newcommand\NAT@exp{}  \def\NAT@exp#1\@nil{\index[\citeindextype]{#1}}  \AtBeginDocument{%  \@ifpackageloaded{index}{\let\NAT@index=\NAT@index@alt}{}}  \newcommand\NAT@ifcmd{\futurelet\NAT@temp\NAT@ifxcmd}  \newcommand\NAT@ifxcmd{\ifx\NAT@temp\relax\else\expandafter\NAT@bare\fi}  \def\NAT@bare#1(#2)#3(@)#4\@nil#5{%  \if @#2  \expandafter\NAT@apalk#1, , \@nil{#5}%  \else  \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{#3}{#5}%  \fi  }  \newcommand\NAT@wrout[5]{%  \if@filesw  {\let\protect\noexpand\let~\relax  \immediate  \write\@auxout{\string\bibcite{#5}{{#1}{#2}{{#3}}{{#4}}}}}\fi  \ignorespaces}  \def\NAT@noname{{}}  \renewcommand\bibitem{\@ifnextchar[{\@lbibitem}{\@lbibitem[]}}%  \let\NAT@bibitem@first@sw\@secondoftwo  \def\@lbibitem[#1]#2{%  \if\relax\@extra@b@citeb\relax\else  \@ifundefined{br@#2\@extra@b@citeb}{}{%  \@namedef{br@#2}{\@nameuse{br@#2\@extra@b@citeb}}%  }%  \fi  \@ifundefined{b@#2\@extra@b@citeb}{%  \def\NAT@num{}%  }{%  \NAT@parse{#2}%  }%  \def\NAT@tmp{#1}%  \expandafter\let\expandafter\bibitemOpen\csname NAT@b@open@#2\endcsname  \expandafter\let\expandafter\bibitemShut\csname NAT@b@shut@#2\endcsname  \@ifnum{\NAT@merge>\@ne}{%  \NAT@bibitem@first@sw{%  \@firstoftwo  }{%  \@ifundefined{NAT@b*@#2}{%  \@firstoftwo  }{%  \expandafter\def\expandafter\NAT@num\expandafter{\the\c@NAT@ctr}%  \@secondoftwo  }%  }%  }{%  \@firstoftwo  }%  {%  \global\advance\c@NAT@ctr\@ne  \@ifx{\NAT@tmp\@empty}{\@firstoftwo}{%  \@secondoftwo  }%  {%  \expandafter\def\expandafter\NAT@num\expandafter{\the\c@NAT@ctr}%  \global\NAT@stdbsttrue  }{}%  \bibitem@fin  \item[\hfil\NAT@anchor{#2}{\NAT@num}]%  \global\let\NAT@bibitem@first@sw\@secondoftwo  \NAT@bibitem@init  }%  {%  \NAT@anchor{#2}{}%  \NAT@bibitem@cont  \bibitem@fin  }%  \@ifx{\NAT@tmp\@empty}{%  \NAT@wrout{\the\c@NAT@ctr}{}{}{}{#2}%  }{%  \expandafter\NAT@ifcmd\NAT@tmp(@)(@)\@nil{#2}%  }%  }%  \def\bibitem@fin{%  \@ifxundefined\@bibstop{}{\csname bibitem@\@bibstop\endcsname}%  }%  \def\NAT@bibitem@init{%  \let\@bibstop\@undefined  }%  \def\NAT@bibitem@cont{%  \let\bibitem@Stop\bibitemContinue  \let\bibitem@NoStop\bibitemContinue  }%  \def\BibitemOpen{%  \bibitemOpen  }%  \def\BibitemShut#1{%  \def\@bibstop{#1}%  \let\bibitem@Stop\bibitemStop  \let\bibitem@NoStop\bibitemNoStop  \@ifx{\bibitemShut\relax}{\let\@bibitemShut\@empty}{%  \expandafter\def\expandafter\@bibitemShut\expandafter{\bibitemShut}%  }%  }%  \def\@bibitemShut{}%  \def\bibitemStop{\@bibitemShut}%  \def\bibitemNoStop{%  \@ifx{\@empty\@bibitemShut}{.\spacefactor\@mmm\space}{\@bibitemShut}%  }%  \def\bibitemContinue{%  \@ifx{\@empty\@bibitemShut}{;\spacefactor\@mmm\space}{\@bibitemShut}%  }%  \mathchardef\@mmm=3000 %  \let\bibitemOpen\relax  \let\bibitemShut\relax  \@ifnum{\NAT@merge>\@ne}{%  \providecommand{\bibAnnote}[3]{%  \BibitemShut{#1}%  \def\@tempa{#3}\@ifx{\@tempa\@empty}{}{%  \begin{quotation}\noindent  \textsc{Key:}\ #2\\\textsc{Annotation:}\ \@tempa  \end{quotation}%  }%  \ignorespaces  }%  \providecommand{\bibAnnoteFile}[2]{%  \IfFileExists{#2}{%  \bibAnnote{#1}{#2}{\input{#2}}%  }{%  \bibAnnote{#1}{#2}{}%  }%  }%  }{}%  \def\bibfield{\@ifnum{\NAT@merge>\tw@}{\@bibfield}{\@secondoftwo}}%  \def\@bibfield#1#2{%  \begingroup  \let\Doi\@gobble  \let\bibinfo\relax  \let\restore@protect\@empty  \protected@edef\@tempa{#2}%  \aftergroup\def\aftergroup\@tempa  \expandafter\endgroup\expandafter{\@tempa}%  \expandafter\@ifx\expandafter{\csname @bib#1\endcsname\@tempa}{%  \expandafter\let\expandafter\@tempa\csname @bib@X#1\endcsname  }{%  \expandafter\let\csname @bib#1\endcsname\@tempa  \expandafter\let\expandafter\@tempa\csname @bib@Y#1\endcsname  }%  \@ifx{\@tempa\relax}{\let\@tempa\@firstofone}{}%  \@tempa{#2}%  }%  \def\bibinfo#1{%  \expandafter\let\expandafter\@tempa\csname bibinfo@X@#1\endcsname  \@ifx{\@tempa\relax}{\@firstofone}{\@tempa}%  }%  \def\@bib@Xauthor#1{\let\@bib@Xjournal\@gobble}%  \def\@bib@Xjournal#1{\begingroup\let\bibinfo@X@journal\@bib@Z@journal#1\endgroup}%  \def\@bibibid@#1{\textit{ibid}.}%  \appdef\NAT@bibitem@init{%  \let\@bibauthor \@empty  \let\@bibjournal \@empty  \let\@bib@Z@journal\@bibibid@  }%  \ifx\SK@lbibitem\@undefined\else  \let\SK@lbibitem\@lbibitem  \def\@lbibitem[#1]#2{%  \SK@lbibitem[#1]{#2}\SK@\SK@@label{#2}\ignorespaces}\fi  \newif\ifNAT@stdbst \NAT@stdbstfalse  \AtEndDocument{%  \ifNAT@stdbst\if@filesw  \immediate\write\@auxout{%  \string\providecommand\string\NAT@force@numbers{}%  \string\NAT@force@numbers  }%  \fi\fi  }  \newcommand\NAT@force@numbers{%  \ifNAT@numbers\else  \PackageError{natbib}{Bibliography not compatible with author-year  citations.\MessageBreak  Press to continue in numerical citation style}  {Check the bibliography entries for non-compliant syntax,\MessageBreak  or select author-year BibTeX style, e.g. plainnat}%  \global\NAT@numberstrue\fi}  \providecommand\bibcite{}  \renewcommand\bibcite[2]{%  \@ifundefined{b@#1\@extra@binfo}{\relax}{%  \NAT@citemultiple  \PackageWarningNoLine{natbib}{Citation `#1' multiply defined}%  }%  \global\@namedef{b@#1\@extra@binfo}{#2}%  }%  \AtEndDocument{\NAT@swatrue\let\bibcite\NAT@testdef}  \newcommand\NAT@testdef[2]{%  \def\NAT@temp{#2}%  \expandafter \ifx \csname b@#1\@extra@binfo\endcsname\NAT@temp  \else  \ifNAT@swa \NAT@swafalse  \PackageWarningNoLine{natbib}{%  Citation(s) may have changed.\MessageBreak  Rerun to get citations correct%  }%  \fi  \fi  }%  \newcommand\NAT@apalk{}  \def\NAT@apalk#1, #2, #3\@nil#4{%  \if\relax#2\relax  \global\NAT@stdbsttrue  \NAT@wrout{#1}{}{}{}{#4}%  \else  \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{}{#4}%  \fi  }%  \newcommand\citeauthoryear{}  \def\citeauthoryear#1#2#3(@)(@)\@nil#4{%  \if\relax#3\relax  \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{}{#4}%  \else  \NAT@wrout{\the\c@NAT@ctr}{#3}{#2}{#1}{#4}%  \fi  }%  \newcommand\citestarts{\NAT@open}%  \newcommand\citeends{\NAT@close}%  \newcommand\betweenauthors{and}%  \newcommand\astroncite{}  \def\astroncite#1#2(@)(@)\@nil#3{%  \NAT@wrout{\the\c@NAT@ctr}{#2}{#1}{}{#3}%  }%  \newcommand\citename{}  \def\citename#1#2(@)(@)\@nil#3{\expandafter\NAT@apalk#1#2, \@nil{#3}}  \newcommand\harvarditem[4][]{%  \if\relax#1\relax  \bibitem[#2(#3)]{#4}%  \else  \bibitem[#1(#3)#2]{#4}%  \fi  }%  \newcommand\harvardleft{\NAT@open}  \newcommand\harvardright{\NAT@close}  \newcommand\harvardyearleft{\NAT@open}  \newcommand\harvardyearright{\NAT@close}  \AtBeginDocument{\providecommand{\harvardand}{and}}  \newcommand\harvardurl[1]{\textbf{URL:} \textit{#1}}  \providecommand\bibsection{}  \@ifundefined{chapter}{%  \renewcommand\bibsection{%  \section*{\refname\@mkboth{\MakeUppercase{\refname}}{\MakeUppercase{\refname}}}%  }%  }{%  \@ifxundefined\NAT@sectionbib{%  \renewcommand\bibsection{%  \chapter*{\bibname\@mkboth{\MakeUppercase{\bibname}}{\MakeUppercase{\bibname}}}%  }%  }{%  \renewcommand\bibsection{%  \section*{\bibname\ifx\@mkboth\@gobbletwo\else\markright{\MakeUppercase{\bibname}}\fi}%  }%  }%  }%  \@ifclassloaded{amsart}{\renewcommand\bibsection{\section*{\refname}}}{}%  \@ifclassloaded{amsbook}{\renewcommand\bibsection{\chapter*{\bibname}}}{}%  \@ifxundefined\bib@heading{}{\let\bibsection\bib@heading}%  \newcounter{NAT@ctr}  \renewenvironment{thebibliography}[1]{%  \bibsection  \parindent\z@  \bibpreamble  \bibfont  \list{\@biblabel{\the\c@NAT@ctr}}{\@bibsetup{#1}\global\c@NAT@ctr\z@}%  \ifNAT@openbib  \renewcommand\newblock{\par}%  \else  \renewcommand\newblock{\hskip .11em \@plus.33em \@minus.07em}%  \fi  \sloppy\clubpenalty4000\widowpenalty4000  \sfcode`\.\@m  \let\NAT@bibitem@first@sw\@firstoftwo  \let\citeN\cite \let\shortcite\cite  \let\citeasnoun\cite  }{%  \bibitem@fin  \bibpostamble  \def\@noitemerr{%  \PackageWarning{natbib}{Empty `thebibliography' environment}%  }%  \endlist  \bibcleanup  }%  \let\bibfont\@empty  \let\bibpreamble\@empty  \let\bibpostamble\@empty  \def\bibcleanup{\vskip-\lastskip}%  \providecommand\reset@font{\relax}  \providecommand\bibname{Bibliography}  \providecommand\refname{References}  \newcommand\NAT@citeundefined{\gdef \NAT@undefined {%  \PackageWarningNoLine{natbib}{There were undefined citations}}}  \let \NAT@undefined \relax  \newcommand\NAT@citemultiple{\gdef \NAT@multiple {%  \PackageWarningNoLine{natbib}{There were multiply defined citations}}}  \let \NAT@multiple \relax  \AtEndDocument{\NAT@undefined\NAT@multiple}  \providecommand\@mkboth[2]{}  \providecommand\MakeUppercase{\uppercase}  \providecommand{\@extra@b@citeb}{}  \gdef\@extra@binfo{}  \def\NAT@anchor#1#2{%  \hyper@natanchorstart{#1\@extra@b@citeb}%  \def\@tempa{#2}\@ifx{\@tempa\@empty}{}{\@biblabel{#2}}%  \hyper@natanchorend  }%  \providecommand\hyper@natanchorstart[1]{}%  \providecommand\hyper@natanchorend{}%  \providecommand\hyper@natlinkstart[1]{}%  \providecommand\hyper@natlinkend{}%  \providecommand\hyper@natlinkbreak[2]{#1}%  \AtBeginDocument{%  \@ifpackageloaded{babel}{%  \let\org@@citex\@citex}{}}  \providecommand\@safe@activestrue{}%  \providecommand\@safe@activesfalse{}%  \newcommand\NAT@sort@cites[1]{%  \let\NAT@cite@list\@empty  \@for\@citeb:=#1\do{\expandafter\NAT@star@cite\@citeb\@@}%  \if@filesw  \expandafter\immediate\expandafter\write\expandafter\@auxout  \expandafter{\expandafter\string\expandafter\citation\expandafter{\NAT@cite@list}}%  \fi  \@ifnum{\NAT@sort>\z@}{%  \expandafter\NAT@sort@cites@\expandafter{\NAT@cite@list}%  }{}%  }%  \def\NAT@star@cite{%  \let\NAT@star@sw\@secondoftwo  \@ifnum{\NAT@merge>\z@}{%  \@ifnextchar*{%  \let\NAT@star@sw\@firstoftwo  \NAT@star@cite@star  }{%  \NAT@star@cite@nostar  }%  }{%  \NAT@star@cite@noextension  }%  }%  \def\NAT@star@cite@star*{%  \NAT@star@cite@nostar  }%  \def\NAT@star@cite@nostar{%  \let\nat@keyopt@open\@empty  \let\nat@keyopt@shut\@empty  \@ifnextchar[{\NAT@star@cite@pre}{\NAT@star@cite@pre[]}%  }%  \def\NAT@star@cite@pre[#1]{%  \def\nat@keyopt@open{#1}%  \@ifnextchar[{\NAT@star@cite@post}{\NAT@star@cite@post[]}%  }%  \def\NAT@star@cite@post[#1]#2\@@{%  \def\nat@keyopt@shut{#1}%  \NAT@star@sw{\expandafter\global\expandafter\let\csname NAT@b*@#2\endcsname\@empty}{}%  \NAT@cite@list@append{#2}%  }%  \def\NAT@star@cite@noextension#1\@@{%  \let\nat@keyopt@open\@empty  \let\nat@keyopt@shut\@empty  \NAT@cite@list@append{#1}%  }%  \def\NAT@cite@list@append#1{%  \edef\@citeb{\@firstofone#1\@empty}%  \if@filesw\@ifxundefined\@cprwrite{}{\expandafter\@cprwrite\@citeb=}\fi  \if\relax\nat@keyopt@open\relax\else  \global\expandafter\let\csname NAT@b@open@\@citeb\endcsname\nat@keyopt@open  \fi  \if\relax\nat@keyopt@shut\relax\else  \global\expandafter\let\csname NAT@b@shut@\@citeb\endcsname\nat@keyopt@shut  \fi  \toks@\expandafter{\NAT@cite@list}%  \ifx\NAT@cite@list\@empty  \@temptokena\expandafter{\@citeb}%  \else  \@temptokena\expandafter{\expandafter,\@citeb}%  \fi  \edef\NAT@cite@list{\the\toks@\the\@temptokena}%  }%  \newcommand\NAT@sort@cites@[1]{%  \count@\z@  \@tempcntb\m@ne  \let\@celt\delimiter  \def\NAT@num@list{}%  \let\NAT@cite@list\@empty  \let\NAT@nonsort@list\@empty  \@for \@citeb:=#1\do{\NAT@make@cite@list}%  \ifx\NAT@nonsort@list\@empty\else  \protected@edef\NAT@cite@list{\NAT@cite@list\NAT@nonsort@list}%  \fi  \ifx\NAT@cite@list\@empty\else  \protected@edef\NAT@cite@list{\expandafter\NAT@xcom\NAT@cite@list @@}%  \fi  }%  \def\NAT@make@cite@list{%  \advance\count@\@ne  \@safe@activestrue  \edef\@citeb{\expandafter\@firstofone\@citeb\@empty}%  \@safe@activesfalse  \@ifundefined{b@\@citeb\@extra@b@citeb}%  {\def\NAT@num{A}}%  {\NAT@parse{\@citeb}}%  \NAT@ifcat@num\NAT@num  {\@tempcnta\NAT@num \relax  \@ifnum{\@tempcnta<\@tempcntb}{%  \let\NAT@@cite@list=\NAT@cite@list  \let\NAT@cite@list\@empty  \begingroup\let\@celt=\NAT@celt\NAT@num@list\endgroup  \protected@edef\NAT@num@list{%  \expandafter\NAT@num@celt \NAT@num@list \@gobble @%  }%  }{%  \protected@edef\NAT@num@list{\NAT@num@list \@celt{\NAT@num}}%  \protected@edef\NAT@cite@list{\NAT@cite@list\@citeb,}%  \@tempcntb\@tempcnta  }%  }%  {\protected@edef\NAT@nonsort@list{\NAT@nonsort@list\@citeb,}}%  }%  \def\NAT@celt#1{%  \@ifnum{#1>\@tempcnta}{%  \xdef\NAT@cite@list{\NAT@cite@list\@citeb,\NAT@@cite@list}%  \let\@celt\@gobble  }{%  \expandafter\def@NAT@cite@lists\NAT@@cite@list\@@  }%  }%  \def\NAT@num@celt#1#2{%  \ifx#1\@celt  \@ifnum{#2>\@tempcnta}{%  \@celt{\number\@tempcnta}%  \@celt{#2}%  }{%  \@celt{#2}%  \expandafter\NAT@num@celt  }%  \fi  }%  \def\def@NAT@cite@lists#1,#2\@@{%  \xdef\NAT@cite@list{\NAT@cite@list#1,}%  \xdef\NAT@@cite@list{#2}%  }%  \def\NAT@nextc#1,#2@@{#1,}  \def\NAT@restc#1,#2{#2}  \def\NAT@xcom#1,@@{#1}  \InputIfFileExists{natbib.cfg}  {\typeout{Local config file natbib.cfg used}}{}  %%   %% <<<<< End of generated file <<<<<<  %%  %% End of file `natbib.sty'.