% \iffalse
% Source File: hluatex.dtx
% 2024-07-10 v7.01j
%
% Copyright
% 2016-2019 Oberdiek Package Support Group
% 2019-2024 The LaTeX Project
%      https://github.com/latex3/hyperref/issues%%
%
% Derived from hpdftex.def
%
% This file may be distributed under the terms of the LPPL.
% See README for details.
%
%<*driver>
\documentclass{ltxdoc}
\ifx\Umathchardef\undefined\usepackage[T1]{fontenc}\fi
\begin{document}
   \GetFileInfo{hluatex.def}%
   \title{hluatex.def}
   \date{}%
   \author{Maintained by The \LaTeX\ Project\\%
    \texttt{https://github.com/latex3/hyperref/issues}%
}
   \maketitle
  \DocInput{hluatex.dtx}%
\end{document}
%</driver>
% \fi
% \StopEventually{}
%
%    \begin{macrocode}
%<*luatex>
%% 2024-07-10 v7.01j
%% force unicode encoding, see issue #101
%% code mostly copied from hxetex.def
\HyPsd@LoadUnicode
\Hy@unicodetrue
\let\HyPsd@pdfencoding\HyPsd@pdfencoding@unicode
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% remains of luatex85 package
\protected\def\pdfcatalog        {\pdfextension catalog }

\protected\def\pdflastannot      {\numexpr\pdffeedback lastannot\relax}
\protected\def\pdflastlink       {\numexpr\pdffeedback lastlink\relax}
\protected\def\pdflastobj        {\numexpr\pdffeedback lastobj\relax}


\protected\edef\pdflinkmargin          {\pdfvariable linkmargin}
\protected\def\pdfliteral        {\pdfextension literal}

\protected\def\pdfobj            {\pdfextension obj }
\protected\edef\pdfcompresslevel       {\pdfvariable compresslevel}
\protected\edef\pdfpageattr            {\pdfvariable pageattr}

\protected\edef\pdfpageresources       {\pdfvariable pageresources}
\protected\edef\pdfpagesattr           {\pdfvariable pagesattr}

\protected\def\pdfrefobj         {\pdfextension refobj }

\protected\def\pdfstartlink      {\pdfextension startlink }
\protected\def\pdfendlink        {\pdfextension endlink\relax}

\protected\def\pdfoutline        {\pdfextension outline }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\pdf@ifdraftmode{%
  \let\Hy@PutCatalog\@gobble
}{%
  \let\Hy@PutCatalog\pdfcatalog
}
\ifHy@pdfpagelabels
  \def\HyPL@StorePageLabel#1{%
    \toks@\expandafter{\HyPL@Labels}%
    \xdef\HyPL@Labels{%
      \the\toks@
      \the\Hy@abspage<<#1>>%
    }%
  }%
  \RequirePackage{atveryend}[2009/12/07]%
  \AtVeryEndDocument{%
    \HyPL@SetPageLabels
  }%
\fi
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdf@escapestring\endcsname\relax
  \begingroup
    \catcode`\|=0 %
    \@makeother\\%
  |@firstofone{|endgroup
    |def|Hy@pstringdef#1#2{%
      |begingroup
        |edef~{|string~}%
        |xdef|Hy@gtemp{#2}%
      |endgroup
      |let#1|Hy@gtemp
      |@onelevel@sanitize#1%
      |edef#1{|expandafter|Hy@ExchangeBackslash#1\|@nil}%
      |edef#1{|expandafter|Hy@ExchangeLeftParenthesis#1(|@nil}%
      |edef#1{|expandafter|Hy@ExchangeRightParenthesis#1)|@nil}%
    }%
    |def|Hy@ExchangeBackslash#1\#2|@nil{%
      #1%
      |ifx|\#2|\%%
      |else
        \\%
        |Hy@ReturnAfterFi{%
          |Hy@ExchangeBackslash#2|@nil
        }%
      |fi
    }%
  }%
  \def\Hy@ExchangeLeftParenthesis#1(#2\@nil{%
    #1%
    \ifx\\#2\\%
    \else
      \@backslashchar(%
      \Hy@ReturnAfterFi{%
        \Hy@ExchangeLeftParenthesis#2\@nil
      }%
    \fi
  }%
  \def\Hy@ExchangeRightParenthesis#1)#2\@nil{%
    #1%
    \ifx\\#2\\%
    \else
      \@backslashchar)%
      \Hy@ReturnAfterFi{%
        \Hy@ExchangeRightParenthesis#2\@nil
      }%
    \fi
  }%
\else
  \def\Hy@pstringdef#1#2{%
    \begingroup
      \edef~{\string~}%
      \xdef\Hy@gtemp{\pdf@escapestring{#2}}%
    \endgroup
    \let#1\Hy@gtemp
  }%
\fi
\providecommand*{\XR@ext}{pdf}
\Hy@setbreaklinks{true}
\def\HyPat@ObjRef{%
  [0-9]*[1-9][0-9]* 0 R%
}

\edef\Hy@pdfminorversion{\pdfvariable minorversion}%
\edef\Hy@pdfmajorversion{\pdfvariable majorversion}%

\ifHy@ocgcolorlinks
    \ifnum\Hy@pdfmajorminor@version<105 %
      \kvsetkeys{Hyp}{pdfversion=1.5}%
    \fi
  \fi
  \ifHy@setpdfversion
    \ifnum\Hy@pdf@majorminor@version<105 %
      \@ifundefined{pdfobjcompresslevel}{%
      }{%
        \ifHy@verbose
          \Hy@InfoNoLine{%
            PDF object streams are disabled, because they are%
            \MessageBreak
            not supported in requested PDF version %
            \Hy@pdf@majorversion.\Hy@pdf@minorversion
          }%
        \fi
        \pdfobjcompresslevel=\z@
      }%
    \fi
    \ifnum\Hy@pdfmajorminor@version=\Hy@pdf@majorminor@version\relax
    \else
      \let\Hy@temp\@empty
      \def\Hy@temp@A#1#2{%
        \ifnum#1>\z@
          \edef\Hy@temp{%
            \Hy@temp
            \space\space
            \the#1\space #2%
            \ifnum#1=\@ne\else s\fi
            \MessageBreak
          }%
        \fi
      }%
      \Hy@temp@A\pdflastobj{PDF object}%
      \Hy@temp@A\lastsavedboxresourceindex{form XObject}%
      \Hy@temp@A\lastsavedimageresourceindex{image XObject}%
      \Hy@temp@A\pdflastannot{annotation}%
      \@ifundefined{pdflastlink}{%
      }{%
         \Hy@temp@A\pdflastlink{link}%
      }%
      \ifx\Hy@temp\@empty
        \Hy@pdfmajorversion=\Hy@pdf@majorversion\relax
        \Hy@pdfminorversion=\Hy@pdf@minorversion\relax
      \else
        \let\Hy@temp@A\@empty
        \ifnum\Hy@pdf@majorminor@version=104 %
          \IfFileExists{pdf14.sty}{%
            \def\Hy@temp@A{%
              \MessageBreak
              Or \string\RequirePackage{pdf14} can be used%
              \MessageBreak
              before \string\documentclass\space as shortcut%
            }%
          }{}%
        \fi
        \Hy@WarningNoLine{%
          The PDF version number could not be set,\MessageBreak
          because some PDF objects are already written:%
          \MessageBreak
          \Hy@temp
          The version should be set as early as possible:%
          \MessageBreak
          \space\space
          \expandafter\string\Hy@pdfmajorversion=\Hy@pdf@majorversion, %
          \expandafter\string\Hy@pdfminorversion=\Hy@pdf@minorversion
          \string\relax
          \ifnum\Hy@pdf@majorminor@version<105 %
            \@ifundefined{pdfobjcompresslevel}{%
            }{%
              \MessageBreak
              \space\space
              \string\pdfobjcompresslevel=0\string\relax
            }%
          \fi
          \Hy@temp@A
        }%
      \fi
    \fi
    \PackageInfo{hyperref}{%
      \expandafter\string\Hy@pdfmajorversion.%
      \expandafter\string\Hy@pdfminorversion
      :=\number\Hy@pdf@majorversion.\number\Hy@pdf@minorversion\space
    }%
  \fi
  \edef\Hy@pdf@majorversion{\number\Hy@pdfmajorversion}%
  \edef\Hy@pdf@minorversion{\number\Hy@pdfminorversion}%

\Hy@DisableOption{pdfversion}%
\ifHy@ocgcolorlinks
  \pdf@ifdraftmode{}{%
    \immediate\pdfobj{%
      <<%
        /Type/OCG%
        /Name(View)%
        /Usage<<%
          /Print<<%
            /PrintState/OFF%
          >>%
          /View<<%
            /ViewState/ON%
          >>%
        >>%
      >>%
    }%
    \edef\OBJ@OCG@view{\the\pdflastobj\space 0 R}%
    \immediate\pdfobj{%
      <<%
        /Type/OCG%
        /Name(Print)%
        /Usage<<%
          /Print<<%
            /PrintState/ON%
          >>%
          /View<<%
            /ViewState/OFF%
          >>%
        >>%
      >>%
    }%
    \edef\OBJ@OCG@print{\the\pdflastobj\space 0 R}%
    \immediate\pdfobj{%
      [%
        \OBJ@OCG@view\space\OBJ@OCG@print
      ]%
    }%
    \edef\OBJ@OCGs{\the\pdflastobj\space 0 R}%
    \pdfcatalog{%
      /OCProperties<<%
        /OCGs \OBJ@OCGs
        /D<<%
          /OFF[\OBJ@OCG@print]%
          /AS[%
            <<%
              /Event/View%
              /OCGs \OBJ@OCGs
              /Category[/View]%
            >>%
            <<%
              /Event/Print%
              /OCGs \OBJ@OCGs
              /Category[/Print]%
            >>%
            <<%
              /Event/Export%
              /OCGs \OBJ@OCGs
              /Category[/Print]%
            >>%
          ]%
        >>%
      >>%
    }%
    \begingroup
      \edef\x{\endgroup
        \pdfpageresources{%
          \the\pdfpageresources
          /Properties<<%
            /OCView \OBJ@OCG@view
            /OCPrint \OBJ@OCG@print
          >>%
        }%
      }%
    \x
  }%
  \Hy@AtBeginDocument{%
    \def\Hy@colorlink#1{%
      \begingroup
        \ifHy@ocgcolorlinks
          \def\Hy@ocgcolor{#1}%
          \setbox0=\hbox\bgroup\color@begingroup
        \else
          \HyColor@UseColor#1%
        \fi
    }%
    \def\Hy@endcolorlink{%
      \ifHy@ocgcolorlinks
        \color@endgroup\egroup
        \mbox{%
          \pdfliteral page{/OC/OCPrint BDC}%
          \rlap{\copy0}%
          \pdfliteral page{EMC/OC/OCView BDC}%
          \begingroup
            \expandafter\HyColor@UseColor\Hy@ocgcolor
            \box0 %
          \endgroup
          \pdfliteral page{EMC}%
        }%
      \fi
      \endgroup
    }%
  }%
\else
  \Hy@DisableOption{ocgcolorlinks}%
\fi
\def\setpdflinkmargin#1{%
  \begingroup
    \setlength{\dimen@}{#1}%
  \expandafter\endgroup
  \expandafter\pdflinkmargin\the\dimen@\relax
}
\ifx\pdfstartlink\@undefined% less than version 14
  \let\pdfstartlink\pdfannotlink
  \let\pdflinkmargin\@tempdima
  \let\saveboxresource\pdfform
  \let\lastsavedboxresourceindex\pdflastform
  \let\useboxresource\pdfrefform
\else
  \pdflinkmargin1pt %
\fi
\providecommand*\@pdfview{XYZ}
\Hy@WrapperDef\new@pdflink#1{%
  \ifhmode
    \@savsf\spacefactor
  \fi
  \Hy@SaveLastskip
  \Hy@VerboseAnchor{#1}%
  \Hy@pstringdef\Hy@pstringDest{\HyperDestNameFilter{#1}}%
  \Hy@DestName\Hy@pstringDest\@pdfview
  \Hy@RestoreLastskip
  \ifhmode
    \spacefactor\@savsf
  \fi
}
\let\pdf@endanchor\@empty
\def\Hy@DestName#1#2{%
  \pdfextension dest name{#1}#2\relax
}
\providecommand*\@pdfborder{0 0 1}
\providecommand*\@pdfborderstyle{}
\def\Hy@undefinedname{UNDEFINED}
\def\find@pdflink#1#2{%
  \leavevmode
  \protected@edef\Hy@testname{#2}%
  \ifx\Hy@testname\@empty
    \Hy@Warning{%
      Empty destination name,\MessageBreak
      using `\Hy@undefinedname'%
    }%
    \let\Hy@testname\Hy@undefinedname
  \else
    \Hy@pstringdef\Hy@testname{%
      \expandafter\HyperDestNameFilter\expandafter{\Hy@testname}%
    }%
  \fi
  \Hy@StartlinkName{%
    \ifHy@pdfa /F 4\fi
    \Hy@setpdfborder
    \Hy@setpdfhighlight
    \ifx\CurrentBorderColor\relax
    \else
      /C[\CurrentBorderColor]%
    \fi
  }\Hy@testname
  \expandafter\Hy@colorlink\csname @#1color\endcsname
}
\def\Hy@StartlinkName#1#2{%
  \pdfstartlink attr{#1}goto name{#2}\relax
}
\def\close@pdflink{%
  \Hy@endcolorlink
  \Hy@VerboseLinkStop
  \pdfendlink
}
\def\hyper@anchor#1{%
  \new@pdflink{#1}\anchor@spot\pdf@endanchor
}
\def\hyper@anchorstart#1{%
  \new@pdflink{#1}%
  \Hy@activeanchortrue
}
\def\hyper@anchorend{%
  \pdf@endanchor
  \Hy@activeanchorfalse
}
\def\hyper@linkstart#1#2{%
  \Hy@VerboseLinkStart{#1}{#2}%
  \@ifundefined{@#1bordercolor}{%
    \let\CurrentBorderColor\relax
  }{%
    \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}%
  }%
  \find@pdflink{#1}{#2}%
}
\def\hyper@linkend{\close@pdflink}
\def\hyper@link#1#2#3{%
  \Hy@VerboseLinkStart{#1}{#2}%
  \@ifundefined{@#1bordercolor}{%
    \let\CurrentBorderColor\relax
  }{%
    \edef\CurrentBorderColor{\csname @#1bordercolor\endcsname}%
  }%
  \find@pdflink{#1}{#2}#3\Hy@xspace@end
  \close@pdflink
}
\let\CurrentBorderColor\@linkbordercolor
\def\hyper@linkurl#1#2{%
  \begingroup
    \Hy@pstringdef\Hy@pstringURI{#2}%
    \hyper@chars
    \leavevmode
    \pdfstartlink
      attr{%
        \Hy@setpdfborder
        \Hy@setpdfhighlight
        \ifx\@urlbordercolor\relax
        \else
          /C[\@urlbordercolor]%
        \fi
      }%
      user{%
       /Subtype/Link%
       \ifHy@pdfa /F 4\fi
       /A<<%
         /Type/Action%
         /S/URI%
         /URI(\Hy@pstringURI)%
         \ifHy@href@ismap
           /IsMap true%
         \fi
         \Hy@href@nextactionraw
       >>%
      }%
      \relax
    \Hy@colorlink\@urlcolor#1\Hy@xspace@end
    \close@pdflink
  \endgroup
}
\def\hyper@linkfile#1#2#3{% anchor text, filename, linkname
  \begingroup
    \def\Hy@pstringF{#2}%
    \Hy@CleanupFile\Hy@pstringF
    \Hy@pstringdef\Hy@pstringF\Hy@pstringF
    \Hy@pstringdef\Hy@pstringD{#3}%
    \Hy@MakeRemoteAction
    \leavevmode
    \pdfstartlink
      attr{%
        \Hy@setpdfborder
        \Hy@setpdfhighlight
        \ifx\@filebordercolor\relax
        \else
          /C[\@filebordercolor]%
        \fi
      }%
      user {%
        /Subtype/Link%
        \ifHy@pdfa /F 4\fi
        /A<<%
          /F(\Hy@pstringF)%
          /S/GoToR%
          \Hy@SetNewWindow
          \ifx\\#3\\%
            /D[\Hy@href@page\@pdfremotestartview]%
          \else
            /D(\Hy@pstringD)%
          \fi
          \Hy@href@nextactionraw
        >>%
      }%
      \relax
    \Hy@colorlink\@filecolor#1\Hy@xspace@end
    \close@pdflink
  \endgroup
}
\def\@hyper@launch run:#1\\#2#3{% filename, anchor text linkname
  \begingroup
    \Hy@pstringdef\Hy@pstringF{#1}%
    \Hy@pstringdef\Hy@pstringP{#3}%
    \leavevmode
    \pdfstartlink
      attr{%
        \Hy@setpdfborder
        \Hy@setpdfhighlight
        \ifx\@runbordercolor\relax
        \else
          /C[\@runbordercolor]%
        \fi
      }%
      user {%
        /Subtype/Link%
        \ifHy@pdfa /F 4\fi
        /A<<%
          /F(\Hy@pstringF)%
          /S/Launch%
          \Hy@SetNewWindow
          \ifx\\#3\\%
          \else
            /Win<</P(\Hy@pstringP)/F(\Hy@pstringF)>>%
          \fi
          \Hy@href@nextactionraw
        >>%
      }%
      \relax
    \Hy@colorlink\@runcolor#2\Hy@xspace@end
    \close@pdflink
  \endgroup
}


\def\PDF@SetupDoc{%
  \ifx\@pdfpagescrop\@empty
  \else
    \edef\process@me{%
      \pdfpagesattr={%
        /CropBox[\@pdfpagescrop]%
        \expandafter\ifx\expandafter\\\the\pdfpagesattr\\%
        \else
          ^^J\the\pdfpagesattr
        \fi
      }%
    }%
    \process@me
  \fi
  \Hy@pstringdef\Hy@pstringB{\@baseurl}%
  \pdfcatalog{%
    /PageMode/\@pdfpagemode
    \ifx\@baseurl\@empty
    \else
      /URI<</Base(\Hy@pstringB)>>%
    \fi
  }%
  \ifx\@pdfstartpage\@empty
  \else
    \ifx\@pdfstartview\@empty
    \else
      openaction goto page\@pdfstartpage{\@pdfstartview}%
    \fi
  \fi
  \edef\Hy@temp{%
    \ifHy@pdftoolbar\else /HideToolbar true\fi
    \ifHy@pdfmenubar\else /HideMenubar true\fi
    \ifHy@pdfwindowui\else /HideWindowUI true\fi
    \ifHy@pdffitwindow /FitWindow true\fi
    \ifHy@pdfcenterwindow /CenterWindow true\fi
    \ifHy@pdfdisplaydoctitle /DisplayDocTitle true\fi
    \Hy@UseNameKey{NonFullScreenPageMode}\@pdfnonfullscreenpagemode
    \Hy@UseNameKey{Direction}\@pdfdirection
    \Hy@UseNameKey{ViewArea}\@pdfviewarea
    \Hy@UseNameKey{ViewClip}\@pdfviewclip
    \Hy@UseNameKey{PrintArea}\@pdfprintarea
    \Hy@UseNameKey{PrintClip}\@pdfprintclip
    \Hy@UseNameKey{PrintScaling}\@pdfprintscaling
    \Hy@UseNameKey{Duplex}\@pdfduplex
    \ifx\@pdfpicktraybypdfsize\@empty
    \else
      /PickTrayByPDFSize \@pdfpicktraybypdfsize
    \fi
    \ifx\@pdfprintpagerange\@empty
    \else
      /PrintPageRange[\@pdfprintpagerange]%
    \fi
    \ifx\@pdfnumcopies\@empty
    \else
      /NumCopies \@pdfnumcopies
    \fi
  }%
  \pdfcatalog{%
    \ifx\Hy@temp\@empty
    \else
      /ViewerPreferences<<\Hy@temp>>%
    \fi
    \Hy@UseNameKey{PageLayout}\@pdfpagelayout
    \ifx\@pdflang\relax
    \else
      /Lang(\@pdflang)%
    \fi
  }%
}
\def\PDF@FinishDoc{%
  \pdf@ifdraftmode{}{%
    \Hy@UseMaketitleInfos
    \HyInfo@GenerateAddons
    \pdfextension info{%
      /Author(\@pdfauthor)%
      /Title(\@pdftitle)%
      /Subject(\@pdfsubject)%
      /Creator(\@pdfcreator)%
      \ifx\@pdfcreationdate\@empty
      \else
        /CreationDate(\@pdfcreationdate)%
      \fi
      \ifx\@pdfmoddate\@empty
      \else
        /ModDate(\@pdfmoddate)%
      \fi
      \ifx\@pdfproducer\relax
      \else
        /Producer(\@pdfproducer)%
      \fi
      /Keywords(\@pdfkeywords)%
      \ifx\@pdftrapped\@empty
      \else
        /Trapped/\@pdftrapped
      \fi
      \HyInfo@Addons
    }%
  }%
  \Hy@DisableOption{pdfauthor}%
  \Hy@DisableOption{pdftitle}%
  \Hy@DisableOption{pdfsubject}%
  \Hy@DisableOption{pdfcreator}%
  \Hy@DisableOption{pdfcreationdate}%
  \Hy@DisableOption{pdfmoddate}%
  \Hy@DisableOption{pdfproducer}%
  \Hy@DisableOption{pdfkeywords}%
  \Hy@DisableOption{pdftrapped}%
  \Hy@DisableOption{pdfinfo}%
}
\def\hyper@pagetransition{%
  \ifx\@pdfpagetransition\relax
  \else
    \expandafter\Hy@RemoveTransPageAttr
    \the\pdfpageattr^^J/Trans{}>>\END
    \ifx\@pdfpagetransition\@empty
    \else
      \edef\@processme{%
        \global\pdfpageattr{%
          \the\pdfpageattr
          ^^J/Trans << /S /\@pdfpagetransition\space >>%
        }%
      }%
      \@processme
    \fi
  \fi
}
\gdef\Hy@RemoveTransPageAttr#1^^J/Trans#2#3>>#4\END{%
  \ifx\\#2\\%
    \global\pdfpageattr{#1}%
  \else
    \Hy@RemoveTransPageAttr#1#4\END
  \fi
}
\def\hyper@pageduration{%
  \ifx\@pdfpageduration\relax
  \else
    \expandafter
    \Hy@RemoveDurPageAttr\the\pdfpageattr^^J/Dur{} \END
    \ifx\@pdfpageduration\@empty
    \else
      \edef\@processme{%
        \global\pdfpageattr{%
          \the\pdfpageattr
          ^^J/Dur \@pdfpageduration\space
        }%
      }%
      \@processme
    \fi
  \fi
}
\gdef\Hy@RemoveDurPageAttr#1^^J/Dur#2#3 #4\END{%
  \ifx\\#2\\%
    \global\pdfpageattr{#1}%
  \else
    \Hy@RemoveDurPageAttr#1#4\END
  \fi
}
\pdf@ifdraftmode{}{%
  \g@addto@macro\Hy@EveryPageHook{%
    \hyper@pagetransition
    \hyper@pageduration
  }%
}
\Hy@AtBeginDocument{%
  \ifHy@setpagesize
    \expandafter\@firstofone
  \else
    \expandafter\@gobble
  \fi
  {%
    \@ifclassloaded{seminar}{%
      \setlength{\pdfvariable horigin}{1truein}%
      \setlength{\pdfvariable vorigin}{1truein}%
      \ifportrait
        \ifdim\paperwidth=\z@
        \else
          \setlength{\pagewidth}{\strip@pt\paperwidth truept}%
        \fi
        \ifdim\paperheight=\z@
        \else
          \setlength{\pageheight}{\strip@pt\paperheight truept}%
        \fi
      \else
        \ifdim\paperheight=\z@
        \else
          \setlength{\pagewidth}{\strip@pt\paperheight truept}%
        \fi
        \ifdim\paperwidth=\z@
        \else
          \setlength{\pageheight}{\strip@pt\paperwidth truept}%
        \fi
      \fi
    }{%
      \@ifundefined{stockwidth}{%
        \ifdim\paperwidth>\z@
          \setlength{\pagewidth}{\paperwidth}%
        \fi
        \ifdim\paperheight>\z@
          \setlength{\pageheight}{\paperheight}%
        \fi
      }{%
        \ifdim\stockwidth>\z@
          \ifdim\stockheight>\z@
           \setlength{\pagewidth}{\stockwidth}%
           \setlength{\pageheight}{\stockheight}%
          \else
            \ifdim\paperwidth>\z@
              \ifdim\paperheight>\z@
                \setlength{\pagewidth}{\paperwidth}%
                \setlength{\pageheight}{\paperheight}%
              \fi
            \fi
          \fi
        \else
          \ifdim\stockwidth=\z@
            \ifdim\paperwidth>\z@
              \ifdim\paperheight>\z@
                \setlength{\pagewidth}{\paperwidth}%
                \setlength{\pageheight}{\paperheight}%
              \fi
            \fi
          \fi
        \fi
      }%
    }%
  }%
  \Hy@DisableOption{setpagesize}%
}
\def\Acrobatmenu#1#2{%
  \Hy@Acrobatmenu{#1}{#2}{%
    \leavevmode
    \EdefEscapeName\Hy@temp@menu{#1}%
    \pdfstartlink
      attr{%
        \Hy@setpdfborder
        \Hy@setpdfhighlight
        \ifx\@menubordercolor\relax
        \else
          /C[\@menubordercolor]%
        \fi
      }%
      user{%
        /Subtype/Link%
        \ifHy@pdfa /F 4\fi
        /A<<%
          /S/Named%
          /N/\Hy@temp@menu
          \Hy@href@nextactionraw
        >>%
      }%
      \relax
    \Hy@colorlink\@menucolor#2%
    \close@pdflink
  }%
}
\def\@Gauge[#1]#2#3#4{% parameters, label, minimum, maximum
  \Hy@Message{Sorry, pdftex does not support FORM gauges}%
}
\def\MakeFieldObject#1#2{\sbox0{#1}%
  \immediate\saveboxresource0 %
  \expandafter\edef\csname #2Object\endcsname{%
    \the\lastsavedboxresourceindex\space 0 R%
  }%
}%
\let\HyField@afields\@empty
\let\HyField@cofields\@empty
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdflastlink\endcsname\relax
  \let\HyField@AddToFields\relax
  \PackageInfo{hyperref}{%
    You need pdfTeX 1.40.0 for setting the /Fields entry.%
    \MessageBreak
    Adobe Reader/Acrobat accepts an empty /Field array,%
    \MessageBreak
    but other PDF viewers might complain%
  }%
\else
  \let\HyField@AuxAddToFields\@gobble
  \let\HyField@AuxAddToCoFields\@gobbletwo
  \def\HyField@AfterAuxOpen{\Hy@AtBeginDocument}%
  \def\HyField@ABD@AuxAddToCoFields#1#2{%
    \begingroup
      \Hy@safe@activestrue
      \let\@secondoftwo\relax
      \ifx\HyField@cofields\@empty
        \xdef\HyField@cofields{%
          \@secondoftwo{#1}{ #2 0 R}%
        }%
      \else
        \let\@secondoftwo\relax
        \def\HyField@AddCoField##1##2##3{%
          \ifx##1\@empty
            \@secondoftwo{#1}{ #2 0 R}%
            \expandafter\@gobble
          \else
            \ifnum\pdf@strcmp{##2}{#1}>\z@
              \@secondoftwo{#1}{ #2 0 R}%
              \@secondoftwo{##2}{##3}%
              \expandafter\expandafter\expandafter\@gobble
            \else
              \@secondoftwo{##2}{##3}%
            \fi
          \fi
          \HyField@AddCoField
        }%
        \xdef\HyField@cofields{%
          \expandafter\HyField@AddCoField
          \HyField@cofields\@empty\@empty\@empty
        }%
      \fi
    \endgroup
  }%
  \Hy@AtBeginDocument{%
    \if@filesw
      \immediate\write\@mainaux{%
        \string\providecommand\string\HyField@AuxAddToFields[1]{}%
      }%
      \immediate\write\@mainaux{%
        \string\providecommand\string\HyField@AuxAddToCoFields[2]{}%
      }%
    \fi
    \let\HyField@AfterAuxOpen\@firstofone
    \def\HyField@AuxAddToFields#1{%
      \xdef\HyField@afields{%
        \ifx\HyField@afields\@empty
        \else
          \HyField@afields
          \space
        \fi
        #1 0 R%
      }%
    }%
    \let\HyField@AuxAddToCoFields\HyField@ABD@AuxAddToCoFields
  }%
  \def\HyField@AddToFields{%
    \expandafter\HyField@@AddToFields\expandafter{%
      \the\pdflastlink
    }%
    \ifx\Fld@calculate@code\@empty
    \else
      \begingroup
        \Hy@safe@activestrue
        \edef\Hy@temp{%
          \endgroup
          \if@filesw
            \write\@mainaux{%
              \string\HyField@AuxAddToCoFields{%
                \Fld@calculate@sortkey
              }{%
                \the\pdflastlink
              }%
            }%
          \fi
        }%
      \Hy@temp
    \fi
  }%
  \def\HyField@@AddToFields#1{%
    \HyField@AfterAuxOpen{%
      \if@filesw
        \write\@mainaux{%
          \string\HyField@AuxAddToFields{#1}%
        }%
      \fi
    }%
  }%
\fi
\def\@Form[#1]{%
  \@ifundefined{textcolor}{\let\textcolor\@gobble}{}%
  \kvsetkeys{Form}{#1}%
  \pdf@ifdraftmode{}{%
    \Hy@FormObjects
      \pdfrefobj\OBJ@pdfdocencoding
      \pdfrefobj\OBJ@ZaDb
      \pdfrefobj\OBJ@Helv
    \AtVeryEndDocument{%
      \immediate\pdfobj{%
        <<%
          /Fields[\HyField@afields]%
          \ifx\HyField@cofields\@empty
          \else
            /CO[\romannumeral-`\Q\HyField@cofields]%
          \fi
          /DR<<%
            /Font<<%
              /ZaDb \OBJ@ZaDb\space 0 R%
              /Helv \OBJ@Helv\space 0 R%
            >>%
          >>%
          /DA(/Helv 10 Tf 0 g)%
          \ifHy@pdfa
          \else
            \ifHyField@NeedAppearances
              /NeedAppearances true%
            \fi
          \fi
        >>%
      }%
      \edef\OBJ@acroform{\the\pdflastobj}%
      \pdfcatalog{/AcroForm \OBJ@acroform\space 0 R}%
    }%
  }%
  \MakeFieldObject{%
    \begingroup
      \fontfamily{pzd}%
      \fontencoding{U}%
      \fontseries{m}%
      \fontshape{n}%
      \selectfont
      \char123 %
    \endgroup
  }{Ding}%
  \MakeFieldObject{%
    \fbox{\textcolor{yellow}{\textsf{Submit}}}%
  }{Submit}%
  \MakeFieldObject{%
    \fbox{\textcolor{yellow}{\textsf{SubmitP}}}%
  }{SubmitP}%
}
\let\@endForm\@empty
\let\HyAnn@AbsPageLabel\@empty
\let\Fld@pageobjref\@empty
\@ifundefined{pdfpageref}{%
}{%
  \@ifpackageloaded{zref-abspage}{%
    \newcount\HyAnn@Count
    \HyAnn@Count=\z@
    \def\HyAnn@AbsPageLabel{%
      \global\advance\HyAnn@Count by\@ne
      \zref@labelbyprops{HyAnn@\the\HyAnn@Count}{abspage}%
      \zref@refused{HyAnn@\the\HyAnn@Count}%
    }%
    \def\Fld@pageobjref{%
      \zref@ifrefundefined{HyAnn@\the\HyAnn@Count}{%
      }{%
        \zref@ifrefcontainsprop{HyAnn@\the\HyAnn@Count}{abspage}{%
          /P \pdfpageref
          \zref@extractdefault{HyAnn@\the\HyAnn@Count}{abspage}{1} %
          \space 0 R%
        }{%
        }%
      }%
    }%
  }{%
  }%
}
\def\@TextField[#1]#2{% parameters, label
  \def\Fld@name{#2}%
  \let\Fld@default\@empty
  \let\Fld@value\@empty
  \def\Fld@width{\DefaultWidthofText}%
  \def\Fld@height{%
    \ifFld@multiline
      \DefaultHeightofTextMultiline
    \else
      \DefaultHeightofText
    \fi
  }%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofText,#1%
    }%
    \PDFForm@Name
    \HyField@FlagsText
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \ifx\Fld@value\@empty\def\Fld@value{\Fld@default}\fi
    \LayoutTextField{#2}{%
      \leavevmode
      \HyAnn@AbsPageLabel
      \Hy@escapeform\PDFForm@Text
      \pdfstartlink user {\PDFForm@Text}\relax
      \MakeTextField{\Fld@width}{\Fld@height}\pdfendlink
      \HyField@AddToFields
    }%
  \endgroup
}
\def\@ChoiceMenu[#1]#2#3{% parameters, label, choices
  \def\Fld@name{#2}%
  \let\Fld@default\relax
  \let\Fld@value\relax
  \def\Fld@width{\DefaultWidthofChoiceMenu}%
  \def\Fld@height{\DefaultHeightofChoiceMenu}%
  \begingroup
    \Fld@menulength=0 %
    \@tempdima\z@
    \@for\@curropt:=#3\do{%
      \expandafter\Fld@checkequals\@curropt==\\%
      \Hy@StepCount\Fld@menulength
      \settowidth{\@tempdimb}{\@currDisplay}%
      \ifdim\@tempdimb>\@tempdima\@tempdima\@tempdimb\fi
    }%
    \advance\@tempdima by 15\p@
    \begingroup
      \HyField@SetKeys{#1}%
    \edef\x{\endgroup
      \noexpand\expandafter
      \noexpand\HyField@SetKeys
      \noexpand\expandafter{%
        \expandafter\noexpand\csname DefaultOptionsof%
          \ifFld@radio
            Radio%
          \else
            \ifFld@combo
              \ifFld@popdown
                PopdownBox%
              \else
                ComboBox%
              \fi
            \else
              ListBox%
            \fi
          \fi
        \endcsname
      }%
    }\x
    \HyField@SetKeys{#1}%
    \PDFForm@Name
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \ifx\Fld@value\relax
      \let\Fld@value\Fld@default
    \fi
    \LayoutChoiceField{#2}{%
      \ifFld@radio
        \HyField@FlagsRadioButton
        \@@Radio{#3}%
      \else
        \begingroup
          \HyField@FlagsChoice
          \ifdim\Fld@width<\@tempdima
            \ifdim\@tempdima<1cm\@tempdima1cm\fi
            \edef\Fld@width{\the\@tempdima}%
          \fi
          \ifFld@combo
          \else
            \@tempdima=\the\Fld@menulength\Fld@charsize
            \advance\@tempdima by \Fld@borderwidth bp %
            \advance\@tempdima by \Fld@borderwidth bp %
            \edef\Fld@height{\the\@tempdima}%
          \fi
          \@@Listbox{#3}%
        \endgroup
      \fi
    }%
  \endgroup
}
\def\@@Radio#1{%
  \Fld@listcount=0 %
  \EdefEscapeName\Fld@default{\Fld@default}%
  \@for\@curropt:=#1\do{%
    \expandafter\Fld@checkequals\@curropt==\\%
    \EdefEscapeName\@currValue{\@currValue}%
    \Hy@StepCount\Fld@listcount
    \@currDisplay\space
    \leavevmode
    \HyAnn@AbsPageLabel
    \Hy@escapeform\PDFForm@Radio
    \pdfstartlink user {%
      \PDFForm@Radio
      /AP<<%
        /N<<%
          /\@currValue\space \DingObject
        >>%
      >>%
    }%
    \relax
    \MakeRadioField{\Fld@width}{\Fld@height}\pdfendlink
    \ifnum\Fld@listcount=1 %
      \HyField@AddToFields
    \fi
    \space % deliberate space between radio buttons
  }%
}
\newcount\Fld@listcount
\def\@@Listbox#1{%
  \HyField@PDFChoices{#1}%
  \leavevmode
  \HyAnn@AbsPageLabel
  \Hy@escapeform\PDFForm@List
  \pdfstartlink user {\PDFForm@List}\relax
  \MakeChoiceField{\Fld@width}{\Fld@height}%
  \pdfendlink
  \HyField@AddToFields
}
\def\@PushButton[#1]#2{% parameters, label
  \def\Fld@name{#2}%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofPushButton,#1%
    }%
    \PDFForm@Name
    \ifHy@pdfa
      \Hy@Error{%
        PDF/A: Push button with JavaScript is prohibited%
      }\@ehc
      \LayoutPushButtonField{%
        \leavevmode
        \MakeButtonField{#2}%
      }%
    \else
      \HyField@FlagsPushButton
      \ifFld@hidden\def\Fld@width{1sp}\fi
      \LayoutPushButtonField{%
        \leavevmode
        \HyAnn@AbsPageLabel
        \Hy@escapeform\PDFForm@Push
        \pdfstartlink user {\PDFForm@Push}\relax
        \MakeButtonField{#2}%
        \pdfendlink
        \HyField@AddToFields
      }%
    \fi
  \endgroup
}
\def\@Submit[#1]#2{%
  \def\Fld@width{\DefaultWidthofSubmit}%
  \def\Fld@height{\DefaultHeightofSubmit}%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofSubmit,#1%
    }%
    \HyField@FlagsPushButton
    \HyField@FlagsSubmit
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \leavevmode
    \HyAnn@AbsPageLabel
    \Hy@escapeform\PDFForm@Submit
    \pdfstartlink user {%
      \PDFForm@Submit
      /AP<</N \SubmitObject/D \SubmitPObject>>%
    }%
    \relax
    \MakeButtonField{#2}%
    \pdfendlink
    \HyField@AddToFields
  \endgroup
}
\def\@Reset[#1]#2{%
  \def\Fld@width{\DefaultWidthofReset}%
  \def\Fld@height{\DefaultHeightofReset}%
  \begingroup
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofReset,#1%
    }%
    \leavevmode
    \ifHy@pdfa
      \Hy@Error{%
        PDF/A: Reset action is prohibited%
      }\@ehc
      \MakeButtonField{#2}%
    \else
      \HyField@FlagsPushButton
      \ifFld@hidden\def\Fld@width{1sp}\fi
      \HyAnn@AbsPageLabel
      \Hy@escapeform\PDFForm@Reset
      \pdfstartlink user {\PDFForm@Reset}\relax
      \MakeButtonField{#2}%
      \pdfendlink
      \HyField@AddToFields
    \fi
  \endgroup
}
\def\@CheckBox[#1]#2{% parameters, label
  \def\Fld@name{#2}%
  \def\Fld@default{0}%
  \begingroup
    \def\Fld@width{\DefaultWidthofCheckBox}%
    \def\Fld@height{\DefaultHeightofCheckBox}%
    \expandafter\HyField@SetKeys\expandafter{%
      \DefaultOptionsofCheckBox,#1%
    }%
    \PDFForm@Name
    \HyField@FlagsCheckBox
    \ifFld@hidden\def\Fld@width{1sp}\fi
    \LayoutCheckField{#2}{%
      \leavevmode
      \HyAnn@AbsPageLabel
      \Hy@escapeform\PDFForm@Check
      \pdfstartlink user {\PDFForm@Check}\relax
      \MakeCheckField{\Fld@width}{\Fld@height}%
      \pdfendlink
      \HyField@AddToFields
    }%
  \endgroup
}
\def\Hy@FormObjects{%
  \pdfobj {%
    <<%
      /Type/Encoding%
      /Differences[%
        24/breve/caron/circumflex/dotaccent/hungarumlaut/ogonek%
          /ring/tilde %
        39/quotesingle %
        96/grave %
        128/bullet/dagger/daggerdbl/ellipsis/emdash/endash/florin%
           /fraction/guilsinglleft/guilsinglright/minus/perthousand%
           /quotedblbase/quotedblleft/quotedblright/quoteleft%
           /quoteright/quotesinglbase/trademark/fi/fl/Lslash/OE%
           /Scaron/Ydieresis/Zcaron/dotlessi/lslash/oe/scaron/zcaron %
        164/currency %
        166/brokenbar %
        168/dieresis/copyright/ordfeminine %
        172/logicalnot/.notdef/registered/macron/degree/plusminus%
           /twosuperior/threesuperior/acute/mu %
        183/periodcentered/cedilla/onesuperior/ordmasculine %
        188/onequarter/onehalf/threequarters %
        192/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE%
           /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave%
           /Iacute/Icircumflex/Idieresis/Eth/Ntilde/Ograve/Oacute%
           /Ocircumflex/Otilde/Odieresis/multiply/Oslash/Ugrave%
           /Uacute/Ucircumflex/Udieresis/Yacute/Thorn/germandbls%
           /agrave/aacute/acircumflex/atilde/adieresis/aring/ae%
           /ccedilla/egrave/eacute/ecircumflex/edieresis/igrave%
           /iacute/icircumflex/idieresis/eth/ntilde/ograve/oacute%
           /ocircumflex/otilde/odieresis/divide/oslash/ugrave%
           /uacute/ucircumflex/udieresis/yacute/thorn/ydieresis%
      ]%
    >>%
  }%
  \xdef\OBJ@pdfdocencoding{\the\pdflastobj}%
  \pdfobj{%
    <<%
      /Type/Font%
      /Subtype/Type1%
      /Name/ZaDb%
      /BaseFont/ZapfDingbats%
    >>%
  }%
  \xdef\OBJ@ZaDb{\the\pdflastobj}%
  \pdfobj{%
    <<%
      /Type/Font%
      /Subtype/Type1%
      /Name/Helv%
      /BaseFont/Helvetica%
      /Encoding \OBJ@pdfdocencoding\space 0 R%
    >>%
  }%
  \xdef\OBJ@Helv{\the\pdflastobj}%
  \global\let\Hy@FormObjects\relax
}
\providecommand*{\Fld@pageobjref}{}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdf@escapestring\endcsname\relax
  \let\Hy@escapestring\@firstofone
  \def\Hy@escapeform#1{%
    \ifHy@pdfescapeform
      \def\Hy@escapestring##1{%
        \noexpand\Hy@escapestring{\noexpand##1}%
      }%
      \edef\Hy@temp{#1}%
      \expandafter\Hy@@escapeform\Hy@temp\Hy@escapestring{}\@nil
      \def\Hy@escapestring##1{%
        \@ifundefined{Hy@esc@\string##1}{%
          ##1%
          \ThisShouldNotHappen
        }{%
          \csname Hy@esc@\string##1\endcsname
        }%
      }%
    \else
      \let\Hy@escapestring\@firstofone
    \fi
  }%
  \def\Hy@@escapeform#1\Hy@escapestring#2#3\@nil{%
    \ifx\\#3\\%
    \else
      \expandafter
      \Hy@pstringdef\csname Hy@esc@\string#2\endcsname{#2}%
      \Hy@ReturnAfterFi{%
        \Hy@@escapeform#3\@nil
      }%
    \fi
  }%
\else
  \def\Hy@escapeform#1{%
    \ifHy@pdfescapeform
      \let\Hy@escapestring\pdfescapestring
    \else
      \let\Hy@escapestring\@firstofone
    \fi
  }%
  \Hy@escapeform{}%
\fi
\def\PDFForm@Name{%
  \PDFForm@@Name\Fld@name
  \ifx\Fld@altname\relax
  \else
    \PDFForm@@Name\Fld@altname
  \fi
  \ifx\Fld@mappingname\relax
  \else
    \PDFForm@@Name\Fld@mappingname
  \fi
}
\def\PDFForm@@Name#1{%
  \begingroup
    \ifnum\Hy@pdf@majorminor@version<105 % implementation note 117, PDF spec 1.7
      \ifHy@unicode
        \Hy@unicodefalse
      \fi
    \fi
    \pdfstringdef\Hy@gtemp#1%
  \endgroup
  \let#1\Hy@gtemp
}
\def\Fld@@additionalactions{%
  \ifx\Fld@keystroke@code\@empty
  \else
    /K<</S/JavaScript/JS(\Hy@escapestring{\Fld@keystroke@code})>>%
  \fi
  \ifx\Fld@format@code\@empty
  \else
    /F<</S/JavaScript/JS(\Hy@escapestring{\Fld@format@code})>>%
  \fi
  \ifx\Fld@validate@code\@empty
  \else
    /V<</S/JavaScript/JS(\Hy@escapestring{\Fld@validate@code})>>%
  \fi
  \ifx\Fld@calculate@code\@empty
  \else
    /C<</S/JavaScript/JS(\Hy@escapestring{\Fld@calculate@code})>>%
  \fi
  \ifx\Fld@onfocus@code\@empty
  \else
    /Fo<</S/JavaScript/JS(\Hy@escapestring{\Fld@onfocus@code})>>%
  \fi
  \ifx\Fld@onblur@code\@empty
  \else
    /Bl<</S/JavaScript/JS(\Hy@escapestring{\Fld@onblur@code})>>%
  \fi
  \ifx\Fld@onmousedown@code\@empty
  \else
    /D<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmousedown@code})>>%
  \fi
  \ifx\Fld@onmouseup@code\@empty
  \else
    /U<</S/JavaScript/JS(\Hy@escapestring{\Fld@onmouseup@code})>>%
  \fi
  \ifx\Fld@onenter@code\@empty
  \else
    /E<</S/JavaScript/JS(\Hy@escapestring{\Fld@onenter@code})>>%
  \fi
  \ifx\Fld@onexit@code\@empty
  \else
    /X<</S/JavaScript/JS(\Hy@escapestring{\Fld@onexit@code})>>%
  \fi
}
\def\Fld@additionalactions{%
  \if-\Fld@@additionalactions-%
  \else
    \ifHy@pdfa
    \else
      /AA<<\Fld@@additionalactions>>%
    \fi
  \fi
}
\def\Fld@annotnames{%
  /T(\Fld@name)%
  \ifx\Fld@altname\relax
  \else
    /TU(\Fld@altname)%
  \fi
  \ifx\Fld@mappingname\relax
  \else
    /TM(\Fld@mappingname)%
  \fi
}
\def\PDFForm@Check{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Btn%
  \Fld@flags
  /Q \Fld@align
  /BS<</W \Fld@borderwidth /S/\Fld@borderstyle>>%
  /AP<< /N <</Yes<<>>>> >>  %new string /Yes is from below
  /MK<<%
    \ifnum\Fld@rotation=\z@
    \else
      /R \Fld@rotation
    \fi
    \ifx\Fld@bordercolor\relax
    \else
      /BC[\Fld@bordercolor]%
    \fi
    \ifx\Fld@bcolor\relax
    \else
      /BG[\Fld@bcolor]%
    \fi
    /CA(\Hy@escapestring{\Fld@cbsymbol})%
  >>%
  /DA(/ZaDb \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  /H/P%
  \ifFld@checked /V/Yes/AS/Yes\else /V/Off/AS/Off\fi
  \Fld@additionalactions
}
\ifHy@pdfa
\else
  \def\PDFForm@Push{%
    /Subtype/Widget%
    \Fld@annotflags
    \Fld@pageobjref
    \Fld@annotnames
    /FT/Btn%
    \Fld@flags
    /H/P%
    /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
    \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
            \ifx\Fld@bordercolor\relax\else 1\fi
            \space
    \else
      /MK<<%
        \ifnum\Fld@rotation=\z@
        \else
          /R \Fld@rotation
        \fi
        \ifx\Fld@bordercolor\relax
        \else
          /BC[\Fld@bordercolor]%
        \fi
      >>%
    \fi
    /A<</S/JavaScript/JS(\Hy@escapestring{\Fld@onclick@code})>>%
    \Fld@additionalactions
  }%
\fi
\def\PDFForm@List{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Ch%
  \Fld@flags
  /Q \Fld@align
  /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
  \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
          \ifx\Fld@bordercolor\relax\else 1\fi
          \ifx\fld@bcolor\relax     \else 1\fi
          \space
  \else
    /MK<<%
      \ifnum\Fld@rotation=\z@
      \else
        /R \Fld@rotation
      \fi
      \ifx\Fld@bordercolor\relax
      \else
        /BC[\Fld@bordercolor]%
      \fi
      \ifx\Fld@bcolor\relax
      \else
        /BG[\Fld@bcolor]%
      \fi
    >>%
  \fi
  /DA(/Helv \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  \Fld@choices
  \Fld@additionalactions
}
\def\PDFForm@Radio{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Btn%
  \Fld@flags
  /H/P%
  /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
  /MK<<%
    \ifnum\Fld@rotation=\z@
    \else
      /R \Fld@rotation
    \fi
    \ifx\Fld@bordercolor\relax
    \else
      /BC[\Fld@bordercolor]%
    \fi
    \ifx\Fld@bcolor\relax
    \else
      /BG[\Fld@bcolor]%
    \fi
    /CA(\Hy@escapestring{\Fld@radiosymbol})%
  >>%
  /DA(/ZaDb \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  \ifx\Fld@default\@empty
    /V/Off%
    /DV/Off%
  \else
   /V/\Fld@default
   /DV/\Fld@default
  \fi
  \Fld@additionalactions
}
\def\PDFForm@Text{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Tx%
  \Fld@flags
  /Q \Fld@align
  /BS<</W \Fld@borderwidth\space /S /\Fld@borderstyle>>%
  \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
          \ifx\Fld@bordercolor\relax\else 1\fi
          \ifx\Fld@bcolor\relax     \else 1\fi
          \space
  \else
    /MK<<%
      \ifnum\Fld@rotation=\z@
      \else
        /R \Fld@rotation
      \fi
      \ifx\Fld@bordercolor\relax
      \else
        /BC[\Fld@bordercolor]%
      \fi
      \ifx\Fld@bcolor\relax
      \else
        /BG[\Fld@bcolor]%
      \fi
    >>%
  \fi
  /DA(/Helv \strip@pt\Fld@charsize\space Tf%
      \ifx\Fld@color\@empty\else\space\Fld@color\fi)%
  /DV(\Hy@escapestring{\Fld@default})%
  /V(\Hy@escapestring{\Fld@value})%
  \Fld@additionalactions
  \ifnum\Fld@maxlen>\z@/MaxLen \Fld@maxlen \fi
}
\def\PDFForm@Submit{%
  /Subtype/Widget%
  \Fld@annotflags
  \Fld@pageobjref
  \Fld@annotnames
  /FT/Btn%
  \Fld@flags
  /H/P%
  /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
  \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
          \ifx\Fld@bordercolor\relax\else 1\fi
          \space
  \else
    /MK<<%
      \ifnum\Fld@rotation=\z@
      \else
        /R \Fld@rotation
      \fi
      \ifx\Fld@bordercolor\relax
      \else
        /BC[\Fld@bordercolor]%
      \fi
    >>%
  \fi
  /A<<%
    /S/SubmitForm%
    /F<<%
      /FS/URL%
      /F(\Hy@escapestring{\Form@action})%
    >>%
    \Fld@submitflags
  >>%
  \Fld@additionalactions
}
\ifHy@pdfa
\else
  \def\PDFForm@Reset{%
    /Subtype/Widget%
    \Fld@annotflags
    \Fld@pageobjref
    \Fld@annotnames
    /FT/Btn%
    \Fld@flags
    /H/P%
    /DA(/Helv \strip@pt\Fld@charsize\space Tf 0 0 1 rg)%
    \ifcase0\ifnum\Fld@rotation=\z@   \else 1\fi
            \ifx\Fld@bordercolor\relax\else 1\fi
            \space
    \else
      /MK<<%
        \ifnum\Fld@rotation=\z@
        \else
          /R \Fld@rotation
        \fi
        \ifx\Fld@bordercolor\relax
        \else
          /BC[\Fld@bordercolor]%
        \fi
      >>%
    \fi
    /BS<</W \Fld@borderwidth/S/\Fld@borderstyle>>%
    /A<</S/ResetForm>>%
    \Fld@additionalactions
  }%
\fi
\def\Hy@writebookmark#1#2#3#4#5{%
    % section number, text, label, level, file
  \ifx\WriteBookmarks\relax%
  \else
    \ifnum#4>\Hy@bookmarksdepth\relax
    \else
      \@@writetorep{#1}{#2}{#3}{#4}{#5}%
    \fi
  \fi
}
\def\Hy@currentbookmarklevel{0}
\def\Hy@numberline#1{#1 }
\def\@@writetorep#1#2#3#4#5{%
  \begingroup
    \edef\Hy@tempa{#5}%
    \ifx\Hy@tempa\Hy@bookmarkstype
      \edef\Hy@level{#4}%
      \ifx\Hy@levelcheck Y%
        \@tempcnta\Hy@level\relax
        \advance\@tempcnta by -1 %
        \ifnum\Hy@currentbookmarklevel<\@tempcnta
          \advance\@tempcnta by -\Hy@currentbookmarklevel\relax
          \advance\@tempcnta by 1 %
          \Hy@Warning{%
            Difference (\the\@tempcnta) between bookmark levels is %
            greater \MessageBreak than one, level fixed%
          }%
          \@tempcnta\Hy@currentbookmarklevel
          \advance\@tempcnta by 1 %
          \edef\Hy@level{\the\@tempcnta}%
        \fi
      \else
        \global\let\Hy@levelcheck Y%
      \fi
      \global\let\Hy@currentbookmarklevel\Hy@level
      \@tempcnta\Hy@level\relax
      \expandafter\xdef\csname Parent\Hy@level\endcsname{#3}%
      \advance\@tempcnta by -1 %
      \edef\Hy@tempa{#3}%
      \edef\Hy@tempb{\csname Parent\the\@tempcnta\endcsname}%
      \ifx\Hy@tempa\Hy@tempb
        \Hy@Warning{%
          The anchor of a bookmark and its parent's must not%
          \MessageBreak be the same. Added a new anchor%
        }%
        \phantomsection
      \fi
      \ifHy@bookmarksnumbered
        \let\numberline\Hy@numberline
        \let\booknumberline\Hy@numberline
        \let\partnumberline\Hy@numberline
        \let\chapternumberline\Hy@numberline
      \else
        \let\numberline\@gobble
        \let\booknumberline\@gobble
        \let\partnumberline\@gobble
        \let\chapternumberline\@gobble
      \fi
      \pdfstringdef\Hy@tempa{#2}%
      \HyPsd@SanitizeForOutFile\Hy@tempa
      \if@filesw
        \stepcounter{bookmark@seq@number}%
        \@ifundefined{@outlinefile}{%
        }{%
          \protected@write\@outlinefile{}{%
            \protect\BOOKMARK
              [\Hy@level][\@bookmarkopenstatus{\Hy@level}]{#3}%
              {\Hy@tempa}{\Hy@tempb}%
              \@percentchar\space\thebookmark@seq@number
          }%
        }%
      \fi
    \fi
  \endgroup
}
\newcounter{bookmark@seq@number}
\begingroup
  \lccode`(=`{%
  \lccode`)=`}%
  \lccode`1=\z@
  \lccode`2=\z@
  \lccode`3=\z@
  \lccode`5=\z@
  \lccode`7=\z@
  \lccode`\#=\z@
  \lccode`\`=\z@
  \lccode`\{=\z@
  \lccode`\}=\z@
\lowercase{%
  \endgroup
  \def\HyPsd@SanitizeForOutFile#1{%
    \@onelevel@sanitize\Hy@tempa
    \escapechar`\\%
    \edef\Hy@tempa{%
      \expandafter\HyPsd@SanitizeOut@BraceLeft\Hy@tempa(\@nil
    }%
    \edef\Hy@tempa{%
      \expandafter\HyPsd@SanitizeOut@BraceRight\Hy@tempa)\@nil
    }%
  }%
  \def\HyPsd@SanitizeOut@BraceLeft#1(#2\@nil{%
    #1%
    \ifx\\#2\\%
      \expandafter\@gobble
    \else
      \expandafter\@firstofone
    \fi
    {%
      \string\173%
      \HyPsd@SanitizeOut@BraceLeft#2\@nil
    }%
  }%
  \def\HyPsd@SanitizeOut@BraceRight#1)#2\@nil{%
    #1%
    \ifx\\#2\\%
      \expandafter\@gobble
    \else
      \expandafter\@firstofone
    \fi
    {%
      \string\175%
      \HyPsd@SanitizeOut@BraceRight#2\@nil
    }%
  }%
}
\newcommand{\currentpdfbookmark}{%
  \pdfbookmark[\Hy@currentbookmarklevel]%
}
\newcommand{\subpdfbookmark}{%
  \@tempcnta\Hy@currentbookmarklevel
  \Hy@StepCount\@tempcnta
  \expandafter\pdfbookmark\expandafter[\the\@tempcnta]%
}
\newcommand{\belowpdfbookmark}[2]{%
  \@tempcnta\Hy@currentbookmarklevel
  \Hy@StepCount\@tempcnta
  \expandafter\pdfbookmark\expandafter[\the\@tempcnta]{#1}{#2}%
  \advance\@tempcnta by -1 %
  \xdef\Hy@currentbookmarklevel{\the\@tempcnta}%
}
\renewcommand\pdfbookmark[3][0]{%
  \Hy@writebookmark{}{#2}{#3.#1}{#1}{toc}%
  \hyper@anchorstart{#3.#1}\hyper@anchorend
}
\def\BOOKMARK{%
  \@ifnextchar[{\@BOOKMARK}{\@@BOOKMARK[1][-]}%
}
\def\@BOOKMARK[#1]{%
  \@ifnextchar[{\@@BOOKMARK[{#1}]}{\@@BOOKMARK[{#1}][-]}%
}
\RequirePackage{rerunfilecheck}[2009/12/10]
\def\Hy@OutlineRerunCheck{%
  \RerunFileCheck{\jobname.out}{%
    \immediate\closeout\@outlinefile
  }{%
    Rerun to get outlines right\MessageBreak
    or use package `bookmark'%
  }%
}
\def\ReadBookmarks{%
  \pdf@ifdraftmode{}{%
    \begingroup
      \def\do##1{%
        \ifnum\catcode`##1=\active
          \@makeother##1%
        \else
          \ifnum\catcode`##1=6 %
            \@makeother##1%
          \fi
        \fi
      }%
      \dospecials
      \Hy@safe@activestrue
      \escapechar=`\\%
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
        \calc@bm@number{##5}%
      }%
      \InputIfFileExists{\jobname.out}{}{}%
      \ifx\WriteBookmarks\relax
        \global\let\WriteBookmarks\relax
      \fi
      \def\@@BOOKMARK[##1][##2]##3##4##5{%
        \def\Hy@temp{##4}%
        \Hy@pstringdef\Hy@pstringName{\HyperDestNameFilter{##3}}%
        \Hy@OutlineName{}\Hy@pstringName{%
          ##2\check@bm@number{##3}%
        }{%
          \expandafter\strip@prefix\meaning\Hy@temp
        }%
      }%
      \begingroup
        \def\WriteBookmarks{0}%
        \InputIfFileExists{\jobname.out}{}{}%
      \endgroup
      %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}%
    \endgroup
  }%
  \ifx\WriteBookmarks\relax
  \else
    \if@filesw
      \newwrite\@outlinefile
      \Hy@OutlineRerunCheck
      \immediate\openout\@outlinefile=\jobname.out\relax
    \fi
  \fi
}
\def\Hy@OutlineName#1#2#3#4{%
  \pdfextension outline goto name{#2}count#3{#4}%
}
\def\check@bm@number#1{%
  \expandafter\ifx\csname B_#1\endcsname\relax
    0%
  \else
    \csname B_#1\endcsname
  \fi
}
\def\calc@bm@number#1{%
  \@tempcnta=\check@bm@number{#1}\relax
  \advance\@tempcnta by 1 %
  \expandafter\xdef\csname B_#1\endcsname{\the\@tempcnta}%
}
\ifHy@implicit
\else
  \expandafter\endinput
\fi
\newlength\Hy@SectionHShift
\def\Hy@SectionAnchorHref#1{%
  \ifx\protect\@typeset@protect
    \Hy@@SectionAnchor{#1}%
  \fi
}
\DeclareRobustCommand*{\Hy@@SectionAnchor}[1]{%
  \leavevmode
  \hbox to 0pt{%
    \kern-\Hy@SectionHShift
    \Hy@raisedlink{%
      \hyper@anchorstart{#1}\hyper@anchorend
    }%
    \hss
  }%
}
\let\H@old@ssect\@ssect
\def\@ssect#1#2#3#4#5{%
  \Hy@MakeCurrentHrefAuto{section*}%
  \setlength{\Hy@SectionHShift}{#1}%
  \begingroup
    \toks@{\H@old@ssect{#1}{#2}{#3}{#4}}%
    \toks\tw@\expandafter{%
      \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
      #5%
    }%
  \edef\x{\endgroup
    \the\toks@{\the\toks\tw@}%
  }\x
}
\let\H@old@schapter\@schapter
\def\@schapter#1{%
  \begingroup
    \let\@mkboth\@gobbletwo
    \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
    \Hy@raisedlink{%
      \hyper@anchorstart{\@currentHref}\hyper@anchorend
    }%
  \endgroup
  \H@old@schapter{#1}%
}
\@ifundefined{@chapter}{}{%
  \let\Hy@org@chapter\@chapter
  \def\@chapter{%
    \def\Hy@next{%
      \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
      \Hy@raisedlink{%
        \hyper@anchorstart{\@currentHref}\hyper@anchorend
      }%
    }%
    \ifnum\c@secnumdepth>\m@ne
      \@ifundefined{if@mainmatter}%
      \iftrue{\csname if@mainmatter\endcsname}%
        \let\Hy@next\relax
      \fi
    \fi
    \Hy@next
    \Hy@org@chapter
  }%
}
\let\H@old@part\@part
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname chapter\endcsname\relax
  \let\Hy@secnum@part\z@
\else
  \let\Hy@secnum@part\m@ne
\fi
\def\@part{%
  \ifnum\Hy@secnum@part>\c@secnumdepth
    \phantomsection
  \fi
  \H@old@part
}
\let\H@old@spart\@spart
\def\@spart#1{%
  \Hy@MakeCurrentHrefAuto{part*}%
  \Hy@raisedlink{%
    \hyper@anchorstart{\@currentHref}\hyper@anchorend
  }%
  \H@old@spart{#1}%
}
\let\H@old@sect\@sect
\def\@sect#1#2#3#4#5#6[#7]#8{%
  \ifnum #2>\c@secnumdepth
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {%
    \Hy@MakeCurrentHrefAuto{section*}%
    \setlength{\Hy@SectionHShift}{#3}%
    \begingroup
      \toks@{\H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]}%
      \toks\tw@\expandafter{%
        \expandafter\Hy@SectionAnchorHref\expandafter{\@currentHref}%
        #8%
      }%
    \edef\x{\endgroup
      \the\toks@{\the\toks\tw@}%
    }\x
  }{%
    \H@old@sect{#1}{#2}{#3}{#4}{#5}{#6}[{#7}]{#8}%
  }%
}
\expandafter\def\csname Parent-4\endcsname{}
\expandafter\def\csname Parent-3\endcsname{}
\expandafter\def\csname Parent-2\endcsname{}
\expandafter\def\csname Parent-1\endcsname{}
\expandafter\def\csname Parent0\endcsname{}
\expandafter\def\csname Parent1\endcsname{}
\expandafter\def\csname Parent2\endcsname{}
\expandafter\def\csname Parent3\endcsname{}
\expandafter\def\csname Parent4\endcsname{}
\def\Hy@tempa{%
  \def\@addchap[##1]##2{%
    \typeout{##2}%
    \if@twoside
      \@mkboth{##1}{}%
    \else
      \@mkboth{}{##1}%
    \fi
    \addtocontents{lof}{\protect\addvspace{10\p@}}%
    \addtocontents{lot}{\protect\addvspace{10\p@}}%
    \Hy@MakeCurrentHrefAuto{\Hy@chapapp*}%
    \Hy@raisedlink{%
      \hyper@anchorstart{\@currentHref}\hyper@anchorend
    }%
    \if@twocolumn
       \@topnewpage[\@makeschapterhead{##2}]%
    \else
       \@makeschapterhead{##2}%
       \@afterheading
    \fi
    \addcontentsline{toc}{chapter}{##1}%
  }%
}
\@ifclassloaded{scrbook}{%
  \@ifclasslater{scrbook}{2001/01/01}{%
    \let\Hy@tempa\@empty
  }{}%
}{%
  \@ifclassloaded{scrreprt}{%
    \@ifclasslater{scrreprt}{2001/01/01}{%
      \let\Hy@tempa\@empty
    }{}%
  }{%
    \let\Hy@tempa\@empty
  }%
}%
\Hy@tempa
%%
%% End of file `hluatex.def'.
%</luatex>
%    \end{macrocode}
\endinput
%
