+\def\NAT@citex
+ [#1][#2]#3{%
+ \NAT@sort@cites{#3}%
+ \let\@citea\@empty
+ \let\@citec\@empty
+ \ifNAT@swa
+ \if*#1*\if*#2*\def\@citea{\def\@citec{\NAT@@close}\NAT@@open}\else
+ \NAT@@open\def\@citea{\def\@citec
+ {\NAT@cmt#2\NAT@@close}}\def\@citec{#2\NAT@@close}\fi\else
+ \NAT@@open#1\ \if*#2*\def\@citec{\unskip\NAT@@close}\else
+ \def\@citec{#2\NAT@@close}\def\@citea{\def\@citec
+ {\NAT@cmt#2\NAT@@close}}\fi\fi
+ \fi
+ \let\NAT@nm\@empty\let\NAT@year\@empty
+ \@for\@citeb:=\NAT@cite@list\do
+ {\edef\@citeb{\expandafter\@firstofone\@citeb}%
+ \if@filesw\immediate\write\@auxout{\string\citation{\@citeb}}\fi
+ \@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*\NAT@date*
+ \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}\NAT@date\hyper@natlinkend
+ \else
+ \ifx\NAT@last@nm\NAT@nm\NAT@yrsep
+ \ifx\NAT@last@yr\@empty\let\NAT@last@yr\relax\fi
+ \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
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+ \hyper@natlinkend
+ \else\unskip
+ \ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+ \hyper@natlinkend
+ \fi
+ \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}%
+ \hyper@natlinkbreak{\NAT@aysep\ }{\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend
+ \fi
+ \fi
+ \def\@citea{\NAT@sep\ }%
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+ \def\@citea{\NAT@sep\ }%
+ \or\if*\NAT@date*\else
+ \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend
+ \def\@citea{\NAT@sep\ }\fi
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@alias\hyper@natlinkend
+ \def\@citea{\NAT@sep\ }%
+ \fi
+ \else\ifcase\NAT@ctype
+ \if*\NAT@date*
+ \@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+ \if*#1*\def\@citea{\NAT@sep\ }%
+ \if*#2*\let\@citec\@empty\else
+ \def\@citec{\ \NAT@@open#2\NAT@@close}\fi
+ \else\ \NAT@@open\def\@citea{\NAT@@close\NAT@sep\ }
+ \if*#2*\def\@citec{\NAT@@close}\else
+ \def\@citec{\ #2\NAT@@close}\fi\fi
+ \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
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@exlab
+ \hyper@natlinkend
+ \else\unskip
+ \ \hyper@natlinkstart{\@citeb\@extra@b@citeb}\NAT@date
+ \hyper@natlinkend
+ \fi
+ \else\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}%
+ \hyper@natlinkbreak{\ \NAT@@open\if*#1*\else#1\ \fi}%
+ {\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend\fi
+ \if*#2*\def\@citec{\NAT@@close}\else
+ \def\@citec{\NAT@cmt#2\NAT@@close}\fi
+ \def\@citea{\NAT@@close\NAT@sep\ }%
+ \fi
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@nmfmt{\NAT@nm}\hyper@natlinkend
+ \if*#2*\let\@citec\@empty\else
+ \def\@citec{ \NAT@@open#2\NAT@@close}\fi
+ \def\@citea{\NAT@sep\ }%
+ \or\if*\NAT@date*\else\@citea
+ \NAT@@open
+ \def\@citea{\NAT@@close\NAT@sep\ }%
+ \if*#2*\def\@citec{\NAT@@close}\else
+ \def\@citec{\NAT@cmt#2\NAT@@close}\fi
+ \hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@date\hyper@natlinkend\fi
+ \or\@citea\hyper@natlinkstart{\@citeb\@extra@b@citeb}%
+ \NAT@alias\hyper@natlinkend
+ \def\@citea{\NAT@sep\ }%
+ \fi
+ \fi
+ }}%
+ \@citec\ifhmode\unskip\fi\endgroup}